FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Gestion d'un système client-serveur.
KGF_prerelease - Page 2 Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
KGF_prerelease - Page 2 Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
KGF_prerelease - Page 2 Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
KGF_prerelease - Page 2 Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
KGF_prerelease - Page 2 Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
KGF_prerelease - Page 2 Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
KGF_prerelease - Page 2 Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
KGF_prerelease - Page 2 Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
KGF_prerelease - Page 2 Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
KGF_prerelease - Page 2 Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
KGF_prerelease - Page 2 Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
KGF_prerelease - Page 2 Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
KGF_prerelease - Page 2 Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
KGF_prerelease - Page 2 Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
KGF_prerelease - Page 2 Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le deal à ne pas rater :
ETB Pokémon Fable Nébuleuse : où acheter le coffret dresseur ...
Voir le deal

 

 KGF_prerelease

Aller en bas 
5 participants
Aller à la page : Précédent  1, 2
AuteurMessage
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_prerelease - Page 2 Empty
MessageSujet: Re: KGF_prerelease   KGF_prerelease - Page 2 EmptyDim 27 Mar 2016 - 10:13

@Papudall:
Citation :
<CTRL> <Z> est inopérant sur Texte LED et sur Charger JPG
Oui et non. C'est volontaire, et entièrement paramétré en Panoramic. Voici la section du code qui imprime le texte:

Code:
form7:
  res% = dll_call4("KGraphicFunction",KG%,10,0,0)
  res% = dll_call4("KGraphicFunction",KG%,11,0,0)
'  res% = dll_call4("KGraphicFunction",KG%,12,0,0)
  res% = dll_call4("KGraphicFunction",KG%,13,0,1)  : ' interdire le ctrl/z, effacer historique !
  res% = dll_call4("SetKGraphicPen",KG%,0,3,255*256*256)
  res% = dll_call3("SetKGraphicBrush",KG%,0,255*256+255)
  txt$ = time$
  res% = dll_call5("DrawKGraphicTextAsLED",KG%,adr(txt$),1,6,1)
  txt$ = date$
  res% = dll_call4("KGraphicFunction",KG%,11,40,60)
  res% = dll_call5("DrawKGraphicTextAsLED",KG%,adr(txt$),1,4,1)
  res% = dll_call4("KGraphicFunction",KG%,13,1,1)  : ' autoriser le ctrl/z, effacer historique !
  return
Tu vois la 4ème ligne ? Elle bloque le ctrl/Z. Si tu mets cette ligne en commentaire, alors ctrl/Z marchera...

Avec les excuses pour le nom de la DLL - ça m'a encore échappé !

@Jiocehel:
Merci ! J'espère bien en faire un objet graphique souple et complet. En ce moment, je lui ajoute l'impression de textes normales, en préservant le fond.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_prerelease - Page 2 Empty
MessageSujet: Re: KGF_prerelease   KGF_prerelease - Page 2 EmptyDim 27 Mar 2016 - 12:24

Nouvelle version de KGF_prerelease.cll:
Il y a maintenant deux fonctions pour gérer l'impression de textes normaux (pas en LED) dans l'objet KGraphic. La première permet de spécifier police, taille, couleur et attributs graphiques. La seconde permet d'imprimer un texte à partir d'une position ciblée, à un angle donné en 10èmes de degrés. En voici un exemple de texte gras en italique, imprimé à 30 degrés:
KGF_prerelease - Page 2 Aa112

En voici le code (bouton "Texte normal"):
Code:
' test_KGraphic.bas

label creer, supprimer
label form1, form2, form3, form4, form5, form6, form7, form8
label sauver1, sauver2, sauver3, charger3, cacher, mode3d

dim res%, KG%, bmp$, jpg$, v%, m3d%, txt$, fnt$
v% = 1

dll_on "KGF_prerelease.dll"
width 0,1000 : height 0,600
panel 1 : top 1,10 : left 1,20 : width 1,700 : height 1,300
color 1,127,255,255
dlist 2
  item_add 2,"5,5"
  item_add 2,"35,235"
  item_add 2,"350,18"
  item_add 2,"90,140"
dlist 3
  item_add 3,"10,220"
  item_add 3,"70,40"
  item_add 3,"130,200"
  item_add 3,"200,120"
  item_add 3,"270,160"
  item_add 3,"340,80"

button 11 : top 11,10 : left 11,750 : width 11,120 : caption 11,"Créer KGraphic"
  on_click 11,creer
button 12 : top 12,40 : left 12,750 : width 12,120 : caption 12,"Supprimer KGraphic"
  on_click 12,supprimer
button 13 : top 13,70 : left 13,770 : width 13,170 : caption 13,"Rectangle rouge bord noir"
  on_click 13,form1
button 14 : top 14,100 : left 14,770 : width 14,170 : caption 14,"Rectangle bleu arrondi bord jaune"
  on_click 14,form2
button 15 : top 15,130 : left 15,770 : width 15,170 : caption 15,"Oval violet bord noir"
  on_click 15,form3
button 16 : top 16,160 : left 16,770 : width 16,170 : caption 16,"Rectangle transparent bord noir"
  on_click 16,form4
button 17 : top 17,190 : left 17,770 : width 17,170 : caption 17,"Polygone jaune"
  on_click 17,form5
button 24 : top 24,220 : left 24,770 : width 24,170 : caption 24,"Histogramme bleu"
  on_click 24,form6
button 25 : top 25,250 : left 25,770 : width 25,170 : caption 25,"Texte LED"
  on_click 25,form7
button 26 : top 26,280 : left 26,770 : width 26,170 : caption 26,"Texte normal"
  on_click 26,form8

button 18 : top 18,310 : left 18,750 : width 18,120 : caption 18,"Copier -> presse-papier"
  on_click 18,sauver1
button 19 : top 19,340 : left 19,750 : width 19,120 : caption 19,"Copier -> BMP"
  on_click 19,sauver2
button 20 : top 20,370 : left 20,750 : width 20,120 : caption 20,"Copier -> JPG"
  on_click 20,sauver3
button 21 : top 21,400 : left 21,750 : width 21,120 : caption 21,"Charger JPG"
  on_click 21,charger3
button 22 : top 22,430 : left 22,750 : width 22,120 : caption 22,"Cacher/Montrer"
  on_click 22,cacher
button 23 : top 23,460 : left 23,750 : width 23,120 : caption 23,"3D/2D"
  on_click 23,mode3d

alpha 31 : top 31,350 : left 31,10 : font_size 31,16 : font_bold 31
  caption 31,"Taper ctrl/Z pour annuler une étape..."

open_dialog 41 : filter 41,"Image JPG|*.jpg"
  
end

creer:
  if KG%<>0
    message "Cet objet existe déjà"
    return
  end_if
  KG% = dll_call6("CreateKGraphic",handle(1),20,20,650,250,0)
  return

supprimer:
  KG% = dll_call1("DeleteKGraphic",KG%)
  if KG%<0
    message "Erreur"
    KG% = 0
  end_if
  return
  
form1:
  if KG%=0
    message "KGraphic inexistant"
    return
  end_if
  res% = dll_call4("SetKGraphicPen",KG%,0,3,0)
  res% = dll_call3("SetKGraphicBrush",KG%,0,255)
  res% = dll_call5("DrawKGrapicShape",KG%,0,20*65536+30,320*65536+180,0)
  return
  
form2:
  res% = dll_call4("SetKGraphicPen",KG%,0,3,255*256+255)
  res% = dll_call3("SetKGraphicBrush",KG%,0,255*256*256)
  res% = dll_call5("DrawKGrapicShape",KG%,1,10*65536+90,280*65536+150,30*65536+20)
  return
  
form3:
  res% = dll_call4("SetKGraphicPen",KG%,0,5,0)
  res% = dll_call3("SetKGraphicBrush",KG%,0,127*256*256)
  res% = dll_call5("DrawKGrapicShape",KG%,2,80*65536+50,120*65536+180,0)
  return
  
form4:
  res% = dll_call4("SetKGraphicPen",KG%,0,2,0)
  res% = dll_call5("DrawKGrapicShape",KG%,3,190*65536+140,120*65536+60,0)
  return
  
form5:
  res% = dll_call4("SetKGraphicPen",KG%,0,2,255*256+255)
  res% = dll_call3("DrawKGraphicPolygon",KG%,1,object_internal(2))
  return
  
form6:
  res% = dll_call4("SetKGraphicPen",KG%,0,1,255*256*256)
  res% = dll_call3("SetKGraphicBrush",KG%,0,127*256*256)
'   res% = dll_call4("KGraphicFunction",KG%,9,30,50) : ' 30°, profondeur 50 pixels (par défaut)  res% = dll_call3("DrawKGraphicPolygon",KG%,0,object_internal(3))
  res% = dll_call3("DrawKGraphicPolygon",KG%,0,object_internal(3))
  return
  
form7:
  res% = dll_call4("KGraphicFunction",KG%,10,0,0)
  res% = dll_call4("KGraphicFunction",KG%,11,0,0)
'  res% = dll_call4("KGraphicFunction",KG%,12,0,0)
   res% = dll_call4("KGraphicFunction",KG%,13,0,1)   : ' interdire le ctrl/z, effacer historique !
  res% = dll_call4("SetKGraphicPen",KG%,0,3,255*256*256)
  res% = dll_call3("SetKGraphicBrush",KG%,0,255*256+255)
  txt$ = time$
  res% = dll_call5("DrawKGraphicTextAsLED",KG%,adr(txt$),1,6,1)
  txt$ = date$
  res% = dll_call4("KGraphicFunction",KG%,11,40,60)
  res% = dll_call5("DrawKGraphicTextAsLED",KG%,adr(txt$),1,4,1)
   res% = dll_call4("KGraphicFunction",KG%,13,1,1)   : ' autoriser le ctrl/z, effacer historique !
  return

form8:
  txt$ = "Texte à 30°"
  fnt$ = "Arial"
  res% = dll_call5("SetKGraphicFontAttributes",KG%,adr(fnt$),12,255,1+2)
  res% = dll_call5("DrawKGraphicText",KG%,30,100,300,adr(txt$))
  return

sauver1:
  res% = dll_call3("SaveKGraphicImage",KG%,0,0)
  return
  
sauver2:
  bmp$ = "KGraphic.bmp"
  res% = dll_call3("SaveKGraphicImage",KG%,1,adr(bmp$))
  return
  
sauver3:
  jpg$ = "KGraphic.jpg"
  res% = dll_call3("SaveKGraphicImage",KG%,2,adr(jpg$))
  return

charger3:
  jpg$ = "KGraphic.jpg"
  jpg$ = file_name$(41)
  if jpg$="_" then return
  res% = dll_call3("LoadKGraphicImage",KG%,2,adr(jpg$))
  return

cacher:
  v% = 1 - v%
  res% = dll_call4("KGraphicFunction",KG%,7,v%,0)
  return
  
mode3d:
  m3d% = 1 - m3d%
  res% = dll_call4("KGraphicFunction",KG%,8,m3d%,0)
  return

Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

KGF_prerelease - Page 2 Empty
MessageSujet: Re: KGF_prerelease   KGF_prerelease - Page 2 EmptyDim 27 Mar 2016 - 14:06

Klaus a écrit:
… angle donné en 10èmes de degrés.

Je pense qu’une telle précision (angle en dixième de degré) n’a pas trop d’intérêt.
Il suffit que l’angle soit indiqué en degré : par exemple pour un texte à 45°, c’est plus simple de coder 45 au lieu de 450 (c’est plus intuitif) et c'est largement suffisant.
Mais bon, c’était simplement pour pinailler.  tongue
De toutes les façons, MERCI , c'est du beau travail.
Continue à nous épater. king

Code:

form8:
  txt$ = "Texte à 180°"
  fnt$ = "Arial"
  res% = dll_call5("SetKGraphicFontAttributes",KG%,adr(fnt$),12,255,1+2)
  res% = dll_call5("DrawKGraphicText",KG%,100,100,1800,adr(txt$))
  txt$ = "Texte à 270°"
  res% = dll_call5("DrawKGraphicText",KG%,300,100,2700,adr(txt$))
  txt$ = "Texte à 300°"
  res% = dll_call5("DrawKGraphicText",KG%,400,100,3000,adr(txt$))
  txt$ = "Texte à 45°"
  res% = dll_call5("DrawKGraphicText",KG%,500,200,450,adr(txt$))
  return

KGF_prerelease - Page 2 Sans_t12
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_prerelease - Page 2 Empty
MessageSujet: Re: KGF_prerelease   KGF_prerelease - Page 2 EmptyDim 27 Mar 2016 - 14:32

Merci, Papydall !

Alors, voici la suite. J'ai fait des codes fonction pour KGraphicFunction pour gérer l'aspect visuel.
On peut maintenant déplacer l'origine virtuelle des coordonnées en n'importe quel pixel de l'espace de travail.
On peut aussi changer indépendamment le taux d'agrandissement (scale factor) pour les axes X et Y, toujours de façon relative à l'origine.
La position par défaut de l'origine est (0,0).
Les facteurs par défaut sont (1,1).
Un facteur négatif produit un effet "miroir" pour l'axe concerné.

Voici le résultat visuel, appliqué à la deuxième ligne de texte LED. La nouvelle origine est fixée à (0,300) et les facteurs ) (1,-1):
KGF_prerelease - Page 2 Aa113

Et le code associé:
Code:
' test_KGraphic.bas

label creer, supprimer
label form1, form2, form3, form4, form5, form6, form7, form8
label sauver1, sauver2, sauver3, charger3, cacher, mode3d

dim res%, KG%, bmp$, jpg$, v%, m3d%, txt$, fnt$
v% = 1

dll_on "KGF_prerelease.dll"
width 0,1000 : height 0,600
panel 1 : top 1,10 : left 1,20 : width 1,700 : height 1,300
color 1,127,255,255
dlist 2
  item_add 2,"5,5"
  item_add 2,"35,235"
  item_add 2,"350,18"
  item_add 2,"90,140"
dlist 3
  item_add 3,"10,220"
  item_add 3,"70,40"
  item_add 3,"130,200"
  item_add 3,"200,120"
  item_add 3,"270,160"
  item_add 3,"340,80"

button 11 : top 11,10 : left 11,750 : width 11,120 : caption 11,"Créer KGraphic"
  on_click 11,creer
button 12 : top 12,40 : left 12,750 : width 12,120 : caption 12,"Supprimer KGraphic"
  on_click 12,supprimer
button 13 : top 13,70 : left 13,770 : width 13,170 : caption 13,"Rectangle rouge bord noir"
  on_click 13,form1
button 14 : top 14,100 : left 14,770 : width 14,170 : caption 14,"Rectangle bleu arrondi bord jaune"
  on_click 14,form2
button 15 : top 15,130 : left 15,770 : width 15,170 : caption 15,"Oval violet bord noir"
  on_click 15,form3
button 16 : top 16,160 : left 16,770 : width 16,170 : caption 16,"Rectangle transparent bord noir"
  on_click 16,form4
button 17 : top 17,190 : left 17,770 : width 17,170 : caption 17,"Polygone jaune"
  on_click 17,form5
button 24 : top 24,220 : left 24,770 : width 24,170 : caption 24,"Histogramme bleu"
  on_click 24,form6
button 25 : top 25,250 : left 25,770 : width 25,170 : caption 25,"Texte LED"
  on_click 25,form7
button 26 : top 26,280 : left 26,770 : width 26,170 : caption 26,"Texte normal"
  on_click 26,form8

button 18 : top 18,310 : left 18,750 : width 18,120 : caption 18,"Copier -> presse-papier"
  on_click 18,sauver1
button 19 : top 19,340 : left 19,750 : width 19,120 : caption 19,"Copier -> BMP"
  on_click 19,sauver2
button 20 : top 20,370 : left 20,750 : width 20,120 : caption 20,"Copier -> JPG"
  on_click 20,sauver3
button 21 : top 21,400 : left 21,750 : width 21,120 : caption 21,"Charger JPG"
  on_click 21,charger3
button 22 : top 22,430 : left 22,750 : width 22,120 : caption 22,"Cacher/Montrer"
  on_click 22,cacher
button 23 : top 23,460 : left 23,750 : width 23,120 : caption 23,"3D/2D"
  on_click 23,mode3d

alpha 31 : top 31,350 : left 31,10 : font_size 31,16 : font_bold 31
  caption 31,"Taper ctrl/Z pour annuler une étape..."

open_dialog 41 : filter 41,"Image JPG|*.jpg"
 
end

creer:
  if KG%<>0
    message "Cet objet existe déjà"
    return
  end_if
  KG% = dll_call6("CreateKGraphic",handle(1),20,20,650,250,0)
  return

supprimer:
  KG% = dll_call1("DeleteKGraphic",KG%)
  if KG%<0
    message "Erreur"
    KG% = 0
  end_if
  return
 
form1:
  if KG%=0
    message "KGraphic inexistant"
    return
  end_if
  res% = dll_call4("SetKGraphicPen",KG%,0,3,0)
  res% = dll_call3("SetKGraphicBrush",KG%,0,255)
  res% = dll_call5("DrawKGrapicShape",KG%,0,20*65536+30,320*65536+180,0)
  return
 
form2:
  res% = dll_call4("SetKGraphicPen",KG%,0,3,255*256+255)
  res% = dll_call3("SetKGraphicBrush",KG%,0,255*256*256)
  res% = dll_call5("DrawKGrapicShape",KG%,1,10*65536+90,280*65536+150,30*65536+20)
  return
 
form3:
  res% = dll_call4("SetKGraphicPen",KG%,0,5,0)
  res% = dll_call3("SetKGraphicBrush",KG%,0,127*256*256)
  res% = dll_call5("DrawKGrapicShape",KG%,2,80*65536+50,120*65536+180,0)
  return
 
form4:
  res% = dll_call4("SetKGraphicPen",KG%,0,2,0)
  res% = dll_call5("DrawKGrapicShape",KG%,3,190*65536+140,120*65536+60,0)
  return
 
form5:
  res% = dll_call4("SetKGraphicPen",KG%,0,2,255*256+255)
  res% = dll_call3("DrawKGraphicPolygon",KG%,1,object_internal(2))
  return
 
form6:
  res% = dll_call4("SetKGraphicPen",KG%,0,1,255*256*256)
  res% = dll_call3("SetKGraphicBrush",KG%,0,127*256*256)
'  res% = dll_call4("KGraphicFunction",KG%,9,30,50) : ' 30°, profondeur 50 pixels (par défaut)  res% = dll_call3("DrawKGraphicPolygon",KG%,0,object_internal(3))
  res% = dll_call3("DrawKGraphicPolygon",KG%,0,object_internal(3))
  return
 
form7:
  res% = dll_call4("KGraphicFunction",KG%,10,0,0)
  res% = dll_call4("KGraphicFunction",KG%,11,0,0)
'  res% = dll_call4("KGraphicFunction",KG%,12,0,0)
  res% = dll_call4("KGraphicFunction",KG%,13,0,1)  : ' interdire le ctrl/z, effacer historique !
  res% = dll_call4("SetKGraphicPen",KG%,0,3,255*256*256)
  res% = dll_call3("SetKGraphicBrush",KG%,0,255*256+255)
  txt$ = time$
  res% = dll_call5("DrawKGraphicTextAsLED",KG%,adr(txt$),1,6,1)
  txt$ = date$
  res% = dll_call4("KGraphicFunction",KG%,11,40,60)
  res% = dll_call4("KGraphicFunction",KG%,14,0,300)
  res% = dll_call4("KGraphicFunction",KG%,15,1,0-1)
  res% = dll_call5("DrawKGraphicTextAsLED",KG%,adr(txt$),1,4,1)
  res% = dll_call4("KGraphicFunction",KG%,14,0,0)
  res% = dll_call4("KGraphicFunction",KG%,15,1,1)
  res% = dll_call4("KGraphicFunction",KG%,13,1,1)  : ' autoriser le ctrl/z, effacer historique !
  return

form8:
  txt$ = "Texte à 30°"
  fnt$ = "Arial"
  res% = dll_call5("SetKGraphicFontAttributes",KG%,adr(fnt$),12,255,1+2)
'  res% = dll_call5("DrawKGraphicText",KG%,30,100,300,adr(txt$))
    res% = dll_call4("KGraphicFunction",KG%,14,0,300)
    res% = dll_call4("KGraphicFunction",KG%,15,1,0-1)
  res% = dll_call5("DrawKGraphicText",KG%,30,100,300,adr(txt$))
  return

sauver1:
  res% = dll_call3("SaveKGraphicImage",KG%,0,0)
  return
 
sauver2:
  bmp$ = "KGraphic.bmp"
  res% = dll_call3("SaveKGraphicImage",KG%,1,adr(bmp$))
  return
 
sauver3:
  jpg$ = "KGraphic.jpg"
  res% = dll_call3("SaveKGraphicImage",KG%,2,adr(jpg$))
  return

charger3:
  jpg$ = "KGraphic.jpg"
  jpg$ = file_name$(41)
  if jpg$="_" then return
  res% = dll_call3("LoadKGraphicImage",KG%,2,adr(jpg$))
  return

cacher:
  v% = 1 - v%
  res% = dll_call4("KGraphicFunction",KG%,7,v%,0)
  return
 
mode3d:
  m3d% = 1 - m3d%
  res% = dll_call4("KGraphicFunction",KG%,8,m3d%,0)
  return

Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





KGF_prerelease - Page 2 Empty
MessageSujet: Re: KGF_prerelease   KGF_prerelease - Page 2 Empty

Revenir en haut Aller en bas
 
KGF_prerelease
Revenir en haut 
Page 2 sur 2Aller à la page : Précédent  1, 2

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: