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.
Boîte de saisie de texte formaté Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
Boîte de saisie de texte formaté Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Boîte de saisie de texte formaté Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Boîte de saisie de texte formaté Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Boîte de saisie de texte formaté Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Boîte de saisie de texte formaté Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Boîte de saisie de texte formaté Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Boîte de saisie de texte formaté Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Boîte de saisie de texte formaté Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Boîte de saisie de texte formaté Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Boîte de saisie de texte formaté Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Boîte de saisie de texte formaté Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Boîte de saisie de texte formaté Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Boîte de saisie de texte formaté Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Boîte de saisie de texte formaté 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 :
Cartes Pokémon : la prochaine extension Pokémon sera EV6.5 Fable ...
Voir le deal

 

 Boîte de saisie de texte formaté

Aller en bas 
3 participants
AuteurMessage
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Boîte de saisie de texte formaté Empty
MessageSujet: Boîte de saisie de texte formaté   Boîte de saisie de texte formaté EmptyMer 9 Mar 2016 - 0:00

J'ai voulu faire une boîte de saisie de texte formaté, c'est à dire avec dans le même objet un mélange éventuel de polices, tailles, couleurs, enrichissements etc.
(En fait ça s'inscrit dans un programme d'impression d'étiquettes, je voulais pouvoir faire des étiquettes un peu 'fantaisie').
J'ai essayé dans un Picture, mais la saisie de caractères y est très pénible, et il y a un tas de choses qu'on ne peut pas faire simplement (insertions, suppressions, etc.)
En fait j'ai été sauvé par une fonction de KGF.dll, comme souvent: objet RichEdit, qui permet de saisir du texte au format rtf.
Boîte de saisie de texte formaté Bte110
Et voici le code la sub Saisie(), avec un exemple d'appel simpliste (à noter la nécessité de mettre à jour l'adresse de KGF.dll dans kgf$):
Code:
color 0,128,128,128
PICTURE 1: WIDTH 1,500: HEIGHT 1,400

Saisie(1,20,20,400,250)
END
' ==============================================================================
SUB Saisie(po%,x%,y%,w%,h%)
' Saisie de texte dans le picture po%, en x%,y%, dimensions w% x h%
DIM_LOCAL n2d%,prt%,f%,i%,j%,t%,c$,cd%,ck%,al%,fn%,wc%,hc%,xt%,yt%,ff%,lc%
DIM_LOCAL kgf$,re1%,r%,sz%,clr%,fnt$,cfr%,cfg%,cfb%,pi%,im%,od%,ei%
kgf$ = "C:\PANORAMIC\KGF\KGF.dll"
ff% = 0
IF LABEL("Vfon") = 0 THEN LABEL Vfon
IF LABEL("Cfon") = 0 THEN LABEL Cfon
IF LABEL("Colf") = 0 THEN LABEL Colf
IF LABEL("Majp") = 0 THEN LABEL Majp
IF LABEL("Fcol") = 0 THEN LABEL Fcol
IF LABEL("Pasc") = 0 THEN LABEL Pasc
IF LABEL("Vals") = 0 THEN LABEL Vals
IF LABEL("Sfin") = 0 THEN LABEL Sfin
n2d% = NUMBER_2D_TARGET: prt% = NUMBER_PRINT_TARGET
i% = w%+20: IF i%<420 THEN i%=420
f% = 950: FORM 950: TOP f%,y%: LEFT f%,x%: WIDTH f%,i%: HEIGHT f%,h%+112
    cfr% = 164: cfg% = 255: cfb% = 255: ' couleur de fond
    COLOR f%,164,255,255: FONT_NAME f%,"Arial": FONT_BOLD f%: FONT_SIZE f%,10
    BORDER_SMALL f%: COMMAND_TARGET_IS f%: ON_CLOSE f%,Sfin
i%=f%+1: ALPHA i%: PARENT i%,f%: TOP i%,10: LEFT i%,5: CAPTION i%,"Police:"
i%=i%+1: EDIT i%: PARENT i%,f%: TOP i%,TOP(i%-1)-2: LEFT i%,50: WIDTH i%,150
         TEXT i%,"Arial": ON_CLICK i%,Vfon: fn% = i%
i%=i%+1: LIST i%: PARENT i%,f%: TOP i%,TOP(i%-1)+20: LEFT i%,LEFT(i%-1): WIDTH i%,150
         HEIGHT i%,280: HIDE i%: FONT_NAMES_LOAD i%: FONT_SIZE i%,8: ON_CLICK i%,Cfon
         COLOR i%,255,255,190
         FOR j% = COUNT(i%) TO 1 STEP -1
             IF LEFT$(ITEM_READ$(i%,j%),1)="@" THEN iTEM_DELETE i%,j%
         NEXT j%
i%=i%+1: SPIN i%: PARENT i%,f%: TOP i%,TOP(fn%)-1: LEFT i%,LEFT(i%-1)+WIDTH(i%-1)+5
         WIDTH i%,45: MIN i%,4: MAX i%,255: POSITION i%,10: ON_CHANGE i%,Majp
i%=i%+1: CHECK i%: PARENT i%,f%: TOP i%,TOP(i%-1)-10: LEFT i%,LEFT(i%-1)+60: CAPTION i%,"G"
         ck% = i%
i%=i%+1: CHECK i%: PARENT i%,f%: TOP i%,TOP(i%-1): WIDTH i%,30: LEFT i%,LEFT(i%-1)+35
         CAPTION i%,"I"
i%=i%+1: CHECK i%: PARENT i%,f%: TOP i%,TOP(i%-1): WIDTH i%,30: LEFT i%,LEFT(i%-1)+35
         CAPTION i%,"S"
i%=i%+1: CHECK i%: PARENT i%,f%: TOP i%,TOP(i%-1): WIDTH i%,30: LEFT i%,LEFT(i%-1)+35
         CAPTION i%,"B"
         FOR j% = ck% TO i%: ON_CLICK j%,Majp: NEXT j%
i%=i%+1: ALPHA i%: PARENT i%,f%: TOP i%,TOP(i%-1)+16: LEFT i%,LEFT(ck%): CAPTION i%,"A"
         al%=i%
i%=i%+1: ALPHA i%: PARENT i%,f%: TOP i%,TOP(i%-1): LEFT i%,LEFT(i%-1)+22: CAPTION i%,"A"
         FONT_COLOR i%,255,0,0
i%=i%+1: ALPHA i%: PARENT i%,f%: TOP i%,TOP(i%-1): LEFT i%,LEFT(i%-1)+22: CAPTION i%,"A"
         FONT_COLOR i%,0,255,0
i%=i%+1: ALPHA i%: PARENT i%,f%: TOP i%,TOP(i%-1): LEFT i%,LEFT(i%-1)+22: CAPTION i%,"A"
         FONT_COLOR i%,0,0,255
i%=i%+1: ALPHA i%: PARENT i%,f%: TOP i%,TOP(i%-1): LEFT i%,LEFT(i%-1)+22: CAPTION i%,"A"
         FONT_COLOR i%,220,220,0
i%=i%+1: ALPHA i%: PARENT i%,f%: TOP i%,TOP(i%-1): LEFT i%,LEFT(i%-1)+22: CAPTION i%,"A"
         FONT_COLOR i%,128,64,0
         FOR j% = al% TO i%: FONT_SIZE j%,14: ON_CLICK j%,Colf: NEXT j%
i%=i%+1: PICTURE i%: PARENT i%,f%: TOP i%,TOP(i%-1)+21: LEFT i%,LEFT(al%): WIDTH i%,124
         HEIGHT i%,4: COLOR i%,cfr%,cfg%,cfb%
         2D_TARGET_IS i%: 2D_FILL_COLOR 0,0,0: 2D_RECTANGLE 0,0,13,HEIGHT(i%): pi%=i%
i%=i%+1: IMAGE i%: im% = i%

i%=i%+1: BUTTON i%: PARENT i%,f%: TOP i%,HEIGHT(f%)-60: LEFT i%,w%/2+45
         CAPTION i%,"Valider": ON_CLICK i%,Vals
i%=i%+1: BUTTON i%: PARENT i%,f%: TOP i%,TOP(i%-1): LEFT i%,LEFT(i%-1)+80
         CAPTION i%,"Annuler": ON_CLICK i%,Sfin
i%=i%+1: ALPHA i%: TOP i%,TOP(i%-1)-9: LEFT i%,5: FONT_SIZE i%,8
         CAPTION i%,"Coller fichier texte (au curseur):"
i%=i%+1: EDIT i%: TOP i%,TOP(i%-1)+12: LEFT i%,5: WIDTH i%,180: FONT_SIZE i%,8: ei%=i%
         ON_CLICK ei%,Fcol: TEXT ei%," (clic) .txt ou .rtf"
i%=i%+1: BUTTON i%: PARENT i%,f%: TOP i%,TOP(i%-3): WIDTH i%,23
         LEFT i%,LEFT(i%-1)+WIDTH(i%-1)+2: CAPTION i%,"OK": ON_CLICK i%,Pasc
i%=i%+1: OPEN_DIALOG i%: od% = i%
         FILTER od%,"*.TXT;*.RTF"
        
DLL_ON kgf$
    re1% =  DLL_CALL1("RichEditCreate",handle(f%))
    ' ci-dessous, +3 pour tenir compte des bordures haut et gauche du Richedit
    r% = DLL_CALL5("RichEditGeometry",re1%,0,40,w%+3,h%+3)
    r% = DLL_CALL3("RichEditFunction",re1%,6,10): ' taille 10

WHILE ff% = 0: PAUSE 200: END_WHILE: EXIT_SUB: ' attente de fin
' -----------------------------------------------------------------------------
Vfon:
SHOW fn%+1
RETURN
' ------------------------------------------------------------------------------
Cfon:
fnt$ = ITEM_INDEX$(fn%+1): ' choix de la police
TEXT fn%,fnt$
r% = DLL_CALL3("RichEditFunction",re1%,5,ADR(fnt$)): ' police
HIDE fn%+1
RETURN
' ------------------------------------------------------------------------------
Colf:
i% = NUMBER_CLICK: COLOR pi%,cfr%,cfg%,cfb%: 2D_TARGET_IS pi%
IF i% = al% THEN clr% = 0: 2D_RECTANGLE 0,0,13,HEIGHT(j%): ' noir
IF i% = al%+1 THEN clr% = 255: 2D_RECTANGLE 22,0,22+13,HEIGHT(j%): ' rouge
IF i% = al%+2 THEN clr% = 255*256: 2D_RECTANGLE 44,0,44+13,HEIGHT(j%): ' vert
IF i% = al%+3 THEN clr% = 255*256*256: 2D_RECTANGLE 66,0,66+13,HEIGHT(j%): ' bleu
IF i% = al%+4 THEN clr% = 220*256+220: 2D_RECTANGLE 88,0,88+13,HEIGHT(j%): ' jaune
IF i% = al%+5 THEN clr% = 64*256+128: 2D_RECTANGLE 110,0,110+13,HEIGHT(j%): ' brun
r% = DLL_CALL3("RichEditFunction",re1%,7,clr%)
RETURN
' ------------------------------------------------------------------------------
Majp:
IF CHECKED(ck%) = 1
    r% = DLL_CALL3("RichEditFunction",re1%,1,1): ' gras
ELSE
    r% = DLL_CALL3("RichEditFunction",re1%,1,0): ' normal
END_IF
IF CHECKED(ck%+1) = 1
    r% = DLL_CALL3("RichEditFunction",re1%,2,1): ' italiques
ELSE
    r% = DLL_CALL3("RichEditFunction",re1%,2,0): ' normal
END_IF
IF CHECKED(ck%+2) = 1
    r% = DLL_CALL3("RichEditFunction",re1%,3,1): ' souligné
ELSE
    r% = DLL_CALL3("RichEditFunction",re1%,3,0): ' normal
END_IF
IF CHECKED(ck%+3) = 1
    r% = DLL_CALL3("RichEditFunction",re1%,4,1): ' barré
ELSE
    r% = DLL_CALL3("RichEditFunction",re1%,4,0): ' normal
END_IF
sz% = POSITION(fn%+2): r% = DLL_CALL3("RichEditFunction",re1%,6,sz%): ' taille
RETURN
' ------------------------------------------------------------------------------
Fcol:
c$ = FILE_NAME$(od%): IF LEN(c$)<5 THEN RETURN
TEXT ei%,c$
RETURN
' ------------------------------------------------------------------------------
Pasc:
' 'Coller' un fichier texte (TXT ou RTF)
c$ = TEXT$(ei%): IF FILE_EXISTS(c$)=0 THEN RETURN
r% = DLL_CALL2("RichEditFileInsert",re1%,ADR(c$)): ' coller le contenu du fichier
RETURN
' ------------------------------------------------------------------------------
Vals:
' Validation: transfert dans le picture principal
' ci-dessous: +3 pour ne pas transférer les bordures haut et gauche du RichEdit
2D_TARGET_IS f%: i%=0+3: j%=40+3: 2D_IMAGE_COPY im%,i%,j%,i%+w%,j%+h%
2D_TARGET_IS po%: 2D_IMAGE_PASTE im%,x%,y%
GOTO Sfin
RETURN
' ------------------------------------------------------------------------------
Sfin:
' Quitter
DLL_OFF
DELETE im%: DELETE od%
COMMAND_TARGET_IS 0: 2D_TARGET_IS n2d%: PRINT_TARGET_IS prt%
DELETE f%
ff% = 1
RETURN
END_SUB
' ==============================================================================

09/03 petites modifs (insertion d'un fichier texte)


Dernière édition par JL35 le Mer 9 Mar 2016 - 14:53, édité 3 fois
Revenir en haut Aller en bas
Klaus

Klaus


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

Boîte de saisie de texte formaté Empty
MessageSujet: Re: Boîte de saisie de texte formaté   Boîte de saisie de texte formaté EmptyMer 9 Mar 2016 - 0:07

Belle réalisation ! C'est pour ça que j'ai fait ça. Et je sais que tu as vu qu'on peut aller beaucoup plus loin, en particulier en lien avec des fichiers...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Boîte de saisie de texte formaté Empty
MessageSujet: Re: Boîte de saisie de texte formaté   Boîte de saisie de texte formaté EmptyMer 9 Mar 2016 - 0:11

Bien sûr Klaus j'ai vu ! je n'avais besoin que d'une partie des possibilités de la dll qui est un véritable traitement de textes à elle seule. Et je compte bien m'en servir pour ça, c'est formidable, c'est vraiment du beau boulot.
Revenir en haut Aller en bas
Klaus

Klaus


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

Boîte de saisie de texte formaté Empty
MessageSujet: Re: Boîte de saisie de texte formaté   Boîte de saisie de texte formaté EmptyMer 9 Mar 2016 - 1:26

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

jjn4


Nombre de messages : 2709
Date d'inscription : 13/09/2009

Boîte de saisie de texte formaté Empty
MessageSujet: +++   Boîte de saisie de texte formaté EmptyMer 9 Mar 2016 - 18:00

Effectivement, c'est très intéressant !!!
On doit pouvoir aller nettement plus loin...
farao alien farao
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Boîte de saisie de texte formaté Empty
MessageSujet: Re: Boîte de saisie de texte formaté   Boîte de saisie de texte formaté EmptyMer 9 Mar 2016 - 18:24

Eh oui, et ce n'est pas moi qui vais te freiner dans ton élan ! Very Happy

Dis-donc mon ami jj, tu te fais plutôt rare !

Blague à part, avec ces fonctions de Klaus on peut faire un véritable traitement de textes assez élaboré, mais bon, on a déjà wordpad...
Revenir en haut Aller en bas
Klaus

Klaus


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

Boîte de saisie de texte formaté Empty
MessageSujet: Re: Boîte de saisie de texte formaté   Boîte de saisie de texte formaté EmptyMer 9 Mar 2016 - 19:18

En effet, aucun intérêt de réinventer la ficelle à couper le beurre !

Par contre, pouvoir rédiger, à l'intérieur de nos applications, des textes formatés et présentés joliment, ça c'est intéressant. Quitte à les mémoriser dans des fichiers RTF au lieu de fichiers TXT, mais ce n'est pas grave. Cela permet de rédiger des lettres, des formulaires, etc.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





Boîte de saisie de texte formaté Empty
MessageSujet: Re: Boîte de saisie de texte formaté   Boîte de saisie de texte formaté Empty

Revenir en haut Aller en bas
 
Boîte de saisie de texte formaté
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Affichage d'un texte formaté dans un picture
» boite de sélection et boite de texte
» saisie de texte
» Saisie d'un code secret
» Utilitaire de saisie d'une date

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: