l'editor gadget, tout'un mistère

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

l'editor gadget, tout'un mistère

Message par dayvid »

Salut a tous !

Voilà, je bloque sur certain point:

Problème n° 1: Pourquoi les bors de l'éditeur ne s'enlève pas ? >>> ça, je ne sais vraiment pas pourquoi :?
Problème n° 2: Comment renvoyer les caractèristiques complètte d'une séléction ? >>> ANNULER CAR DEJA POSTER ET TROUVER, desoler :oops:
Problème n° 3: Comment crée un string gadget a la fin de la dernièr ligne de l'éditeur ?, je devrais pouvoir me debrouiller mais on ne sais jamais :)

Code : Tout sélectionner

;- Window Constants
;
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
;
Enumeration
  #Editor_0
  #Button_0
EndEnumeration

Structure CHARFORMAT2_ 
  cbSize.l 
  dwMask.l  
  dwEffects.l  
  yHeight.l  
  yOffset.l  
  crTextColor.l  
  bCharSet.b  
  bPitchAndFamily.b  
  szFaceName.b[#LF_FACESIZE]  
  _wPad2.w  
  wWeight.w  
  sSpacing.w  
  crBackColor.l  
  lcid.l  
  dwReserved.l  
  sStyle.w  
  wKerning.w  
  bUnderlineType.b  
  bAnimation.b  
  bRevAuthor.b  
  bReserved1.b 
EndStructure

Procedure Open_Window_0()
  If OpenWindow(#Window_0, 395, 124, 600, 330, "Fenêtre",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
    EditorGadget(#Editor_0, 5, 5, 590, 290)
    ButtonGadget(#Button_0, 210, 300, 150, 25, "Renvoyer la selection")
    
    ; ceci pour faire disparaitre de l'éditeur (Le Problème n° 1 ce situe ici)
    style = GetWindowLong_(GadgetID(#Editor_0), #GWL_EXSTYLE)
    newstyle = style &(~#WS_EX_CLIENTEDGE)
    SetWindowLong_(GadgetID(#Editor_0), #GWL_EXSTYLE, newstyle)
    SetWindowPos_(GadgetID(#Editor_0), 0, 0, 0, 0, 0, #SWP_SHOWWINDOW | #SWP_NOSIZE | #SWP_NOMOVE | #SWP_FRAMECHANGED)
    
    format.CHARFORMAT
    format\cbSize = SizeOf(CHARFORMAT) 
    format\dwMask = #CFM_FACE|#CFM_SIZE|#CFM_COLOR|#CFM_ITALIC|#CFM_BOLD|#CFM_STRIKEOUT|#CFM_UNDERLINE
    format\dwEffects = #CFM_ITALIC|#CFM_BOLD|#CFM_UNDERLINE
    format\crTextColor = RGB(255, 0, 0)
    format\yHeight = 9 * 20
    PokeS(@format\szFaceName, "cambria")
    format2.CHARFORMAT2_
    format2\cbSize = SizeOf(CHARFORMAT2_) 
    format2\dwMask = $4000000  ; = BACKCOLOR
    format2\crBackColor = RGB(255, 255, 0)
    SendMessage_(GadgetID(#Editor_0), #EM_SETCHARFORMAT, #SCF_SELECTION, @format)
    SendMessage_(GadgetID(#Editor_0), #EM_SETCHARFORMAT, #SCF_SELECTION, @format2)
    SendMessage_(GadgetID(#Editor_0), #EM_REPLACESEL, 0, "Comment r'envoyer les caractéristique complètte de la selection ?")
  EndIf
EndProcedure



Open_Window_0()

Repeat ; Start of the event loop
  
  Event = WaitWindowEvent() ; This line waits until an event is received from Windows
  
  WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
  
  GadgetID = EventGadget() ; Is it a gadget event?
  
  EventType = EventType() ; The event type
  
  ;You can place code here, and use the result as parameters for the procedures
  
  If Event = #PB_Event_Gadget
    
    If GadgetID = #Editor_0
      
    ElseIf GadgetID = #Button_0

      ANNULER CAR DEJAS POSTER ET TROUVER
      
      
      ; Heu, juste pour ceci, comment dois-je proceder ?
      ; sinon je vais voir ce queje peut faire

      ; La position X de la selection
      ; La position Y de la selection
      ; Le nombre de mot de la selection
      ; Le nombre de caractère de la selection
      
      ; Et plus si infinité (lol)
    EndIf
    
  EndIf
  
Until Event = #PB_Event_CloseWindow ; End of the event loop
(Le Problème n° 3 ce situe ici)

Sinon imaginer que j'ai écrie du texte dans l'éditeur avec divers taille de texte
Comment je peut faire pour crée un string gadget par exemple à la fin de la dernière ligne
j'ai bien essayer et ré-essayer mais je n'y parvient pas car suivent la taille du texte
la position change et je n'arrive pas a faire ce que je veut

Edit: a oui au faite pour les bors de l'éditeur, j'ai oublier de dire que sur 4.40
sa marche très bien mais pas sur les version supèrieur, pourquoi ? :?

Edit2: je vais essayer de continuer tous seule car j'ai je pense ce qu'il me faut pour continuer

Excusez-moi pour tous ce bazard, je ferais un peut plus attention la prochaine fois :oops:
a plus :)
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: l'editor gadget, tout'un mistère

Message par dayvid »

Salut a tous !

Voilà je revient car j'ai bien avenser et je vient vous faire voir :)

Programme principale:

Code : Tout sélectionner

Enumeration 1
  #Fenetre_Console
  #Page_Console
  #Font_console
  #Font_Entrer_clavier
  #entrer_clavier
EndEnumeration

Global Couleur_Fenetre = RGB(0, 0, 0)

Global couleur_avent_marge_bord_editeur = RGB(0, 0, 0)
Global couleur_remplisage_marge_avent_bord_editeur = RGB(0, 0, 0)
Global Couleur_Bord_Editeur = RGB(0, 0, 0)

Global Couleur_Fond_Editeur = RGB(0, 0, 0)
Global couleur_police_editeur = RGB(255, 255, 255)
Global Couleur_arrier_plant_du_texte = 0
Global Taille_police_editeur = 9
Global Police_Editeur$ = "cambria"
Global Font_Editor_0

Global Entrer_clavier, Reponce_entrer_clavier$
Global couleur_du_texte_taper = RGB(0, 0, 255)
Global couleur_fond_texte_taper = RGB(255, 0, 0)
Global couleur_texte_une_fois_entrer = 0
Global Taille_police_Entrer_clavier = 9
Global Police_Entrer_clavier$ = "cambria"
Global Font_Entrer_clavier

Global couleur_fond_texte_quand_entree
Global couleur_du_texte_quand_entree
Global Police_quand_entree$
Global Taille_police_quand_entree
Global style_gras_quand_entree
Global style_italique_quand_entree
Global style_soulignier_quand_entree
Global style_barrer_quand_entree
Global vitTxt

Global Sauvegarde_position_cursseur_X_console
Global Sauvegarde_position_cursseur_Y_console

Global Ecrire$, Couleur_du_texte, Texte$, style_gras, style_italique, style_soulignier, style_barrer
Global Hauteur_totale_texte, sauvegarde_dernier_texte
Global envoie_requette, requette_terminer
Global Vitesse_ecriture

Global Thread_Fenetre_console

Global creation_entrer_clavier = 0
Global ecrire_alinea = 0, ecrire = 0
Global Reponce_entrer_clavier = 0

Structure CHARFORMAT2_ 
  cbSize.l 
  dwMask.l  
  dwEffects.l  
  yHeight.l  
  yOffset.l  
  crTextColor.l  
  bCharSet.b  
  bPitchAndFamily.b  
  szFaceName.b[#LF_FACESIZE]  
  _wPad2.w  
  wWeight.w  
  sSpacing.w  
  crBackColor.l  
  lcid.l  
  dwReserved.l  
  sStyle.w  
  wKerning.w  
  bUnderlineType.b  
  bAnimation.b  
  bRevAuthor.b  
  bReserved1.b 
EndStructure

Structure Selection
  StyleTexte.s
  CouleurTexte.s
  CouleurFondTexte.s
  TailleTexte.l
  NomPolice.s
EndStructure

Global Caracteristique.Selection\StyleTexte = ""
Global Caracteristique.Selection\CouleurTexte = ""
Global Caracteristique.Selection\CouleurFondTexte = ""
Global Caracteristique.Selection\TailleTexte = 0
Global Caracteristique.Selection\NomPolice = ""
Global NewList reponce_entree_clavier.s()

Procedure.s GetStringStyle(Style.l)
  If Style = 0
    Style$ = "Aucun"
  ElseIf Style = 1
    Style$ = "Gras"
  ElseIf Style = 2
    Style$ = "Italique"
  ElseIf Style = 3
    Style$ = "Gras + Italique"
  ElseIf Style = 4
    Style$ = "Soulignier"
  ElseIf Style = 5
    Style$ = "Gras + Soulignier"
  ElseIf Style = 6
    Style$ = "Italique + Soulignier"
  ElseIf Style = 7
    Style$ = "Gras + Italique + Soulignier"
  ElseIf Style = 8
    Style$ = "Barrer"
  ElseIf Style = 9
    Style$ = "Gras + Barrer"
  ElseIf Style = 10
    Style$ = "Italique + Barrer"
  ElseIf Style = 11
    Style$ = "Gras + Italique + Barrer"
  ElseIf Style = 12
    Style$ = "Soulignier + Barrer"
  ElseIf Style = 13
    Style$ = "Gras + Soulignier + Barrer"
  ElseIf Style = 14
    Style$ = "SItalique + Soulignier + Barrer"
  ElseIf Style = 15
    Style$ = "Gras + Italique + Soulignier + Barrer"
  Else
    Style$ = "Inconnue"
  EndIf
  
  ProcedureReturn Style$
EndProcedure

Procedure CaracteristiqueSelection()
  
  format.CHARFORMAT
  format\cbSize = SizeOf(CHARFORMAT)
  
  SendMessage_(GadgetID(#Page_Console), #EM_GETCHARFORMAT, #SCF_SELECTION, @format)
  
  Caracteristique.Selection\StyleTexte = GetStringStyle(format\dwEffects)
  Rouge = Red(format\crTextColor)
  Vert = Green(format\crTextColor)
  Bleu = Blue(format\crTextColor)
  Caracteristique.Selection\CouleurTexte = "RGB(" + Str(Rouge) + ", " + Str(Vert) + ", " + Str(Bleu) + ")"
  Caracteristique.Selection\TailleTexte = format\yHeight / 20
  *Police = @format\szFaceName
  *NomPolice.String = @*Police
  Caracteristique.Selection\NomPolice = *NomPolice\s
  
  format2.CHARFORMAT2_
  format2\cbSize = SizeOf(CHARFORMAT2_)
  
  SendMessage_(GadgetID(#Page_Console), #EM_GETCHARFORMAT, #SCF_SELECTION, @format2)
  
  Rouge = Red(format2\crBackColor)
  Vert = Green(format2\crBackColor)
  Bleu = Blue(format2\crBackColor)
  Caracteristique.Selection\CouleurFondTexte = "RGB(" + Str(Rouge) + ", " + Str(Vert) + ", " + Str(Bleu) + ")"
  
; CaracteristiqueSelection()
; 
; Debug Caracteristique.Selection\StyleTexte
; Debug Caracteristique.Selection\CouleurTexte
; Debug Caracteristique.Selection\CouleurFondTexte
; Debug Caracteristique.Selection\TailleTexte
; Debug Caracteristique.Selection\NomPolice

EndProcedure

Procedure.s entree_clavier(couleur_texte_taper, couleur_de_fond_texte_taper, couleur_du_texte_une_fois_entrer)
  couleur_du_texte_taper = couleur_texte_taper
  couleur_fond_texte_taper = couleur_de_fond_texte_taper
  couleur_texte_une_fois_entrer = couleur_du_texte_une_fois_entrer
  
  Reponce_entrer_clavier$ = ""
  Entrer_clavier = 1
  creation_entrer_clavier = 1
  
  Repeat
    Delay(1)
  Until Reponce_entrer_clavier$ > ""
  
  ProcedureReturn Reponce_entrer_clavier$
EndProcedure

Procedure ecrire(texte$, couleur_texte, couleur_arrier_plant_texte, police_ecriture$, taille_de_la_police, en_gras, en_italique, en_soulignier, en_barrer, Choix_vitesse_ecriture)
  Vitesse_ecriture = Choix_vitesse_ecriture
  Couleur_arrier_plant_du_texte = couleur_arrier_plant_texte
  Couleur_du_texte = couleur_texte
  Police_Editeur$ = police_ecriture$
  Taille_police_editeur = taille_de_la_police
  style_gras = en_gras
  style_italique = en_italique
  style_soulignier = en_soulignier
  style_barrer = en_barrer
  
  If en_gras = 1
    style_gras = #CFM_BOLD
  EndIf
  
  If en_italique = 1
    style_italique = #CFM_ITALIC
  EndIf
  
  If en_soulignier = 1
    style_soulignier = #CFM_UNDERLINE
  EndIf
  
  If en_barrer = 1
    style_barrer = #CFM_STRIKEOUT
  EndIf
  
  Ecrire$ = texte$
  envoie_requette = 1 ; envoie la requette
  Repeat
    Delay(Vitesse_ecriture)
  Until requette_terminer = 1 ; a éxecuter la requette
  requette_terminer = 0
EndProcedure

Procedure ecrire_alinea(texte$, couleur_texte, couleur_arrier_plant_texte, police_ecriture$, taille_de_la_police, en_gras, en_italique, en_soulignier, en_barrer, Choix_vitesse_ecriture)
  Vitesse_ecriture = Choix_vitesse_ecriture
  Couleur_arrier_plant_du_texte = couleur_arrier_plant_texte
  Couleur_du_texte = couleur_texte
  Police_Editeur$ = police_ecriture$
  Taille_police_editeur = taille_de_la_police
  style_gras = en_gras
  style_italique = en_italique
  style_soulignier = en_soulignier
  style_barrer = en_barrer
  ecrire_alinea = 1
  
  If en_gras = 1
    style_gras = #CFM_BOLD
  EndIf
  
  If en_italique = 1
    style_italique = #CFM_ITALIC
  EndIf
  
  If en_soulignier = 1
    style_soulignier = #CFM_UNDERLINE
  EndIf
  
  If en_barrer = 1
    style_barrer = #CFM_STRIKEOUT
  EndIf
  
  Ecrire$ = texte$
  envoie_requette = 1 ; envoie la requette
  Repeat
    Delay(Vitesse_ecriture)
  Until requette_terminer = 1 ; a éxecuter la requette
  AddGadgetItem(#Page_Console, -1, "")
  requette_terminer = 0
  ecrire_alinea = 0
EndProcedure

Procedure Reponce(NumeroReponce)
  SelectElement(reponce_entree_clavier(), NumeroReponce - 1)
  ecrire(reponce_entree_clavier(), RGB(255, 0, 0), RGB(255, 255, 255), "cambria", 9, 1, 0, 0, 0, 0)
  LastElement(reponce_entree_clavier())
EndProcedure

Procedure ecrire_lettre_par_lettre(Texte$, couleur_texte, couleur_arrier_plant_texte, police_ecriture$, taille_de_la_police, en_gras, en_italique, en_soulignier, en_barrer, Choix_vitesse_ecriture)
For Affichage = 1 To Len(Texte$)
  Caractere$ = Mid(Texte$, Affichage, 1)
  If Caractere$ = "."
    ecrire_alinea(".", couleur_texte, couleur_arrier_plant_texte, police_ecriture$, taille_de_la_police, en_gras, en_italique, en_soulignier, en_barrer, 0)
    Delay(500)
  ElseIf Caractere$ = "?"
    ecrire(Caractere$ + ":", couleur_texte, couleur_arrier_plant_texte, police_ecriture$, taille_de_la_police, en_gras, en_italique, en_soulignier, en_barrer, 0)
    reponce$ = entree_clavier(RGB(0, 0, 0), couleur_arrier_plant_texte, RGB(255, 0, 0))
    AddElement(reponce_entree_clavier())
    reponce_entree_clavier() = Trim(reponce$)
    Delay(500)
  ElseIf Caractere$ = "«"
    ecrire_alinea(" ", couleur_texte, couleur_arrier_plant_texte, police_ecriture$, taille_de_la_police, en_gras, en_italique, en_soulignier, en_barrer, 0)
    ecrire_alinea(" ", couleur_texte, couleur_arrier_plant_texte, police_ecriture$, taille_de_la_police, en_gras, en_italique, en_soulignier, en_barrer, 0)
  ElseIf Caractere$ = "R"
    If Mid(Texte$, Affichage + 1, 1) = "["
      If Mid(Texte$, Affichage + 2, 1) = "1" Or Mid(Texte$, Affichage + 2, 1) = "2" Or Mid(Texte$, Affichage + 2, 1) = "3"
        If Mid(Texte$, Affichage + 3, 1) = "]"
          Reponce(Val(Mid(Texte$, Affichage + 2, 1)))
          Affichage + 3
        Else
          ecrire(Caractere$, couleur_texte, couleur_arrier_plant_texte, police_ecriture$, taille_de_la_police, en_gras, en_italique, en_soulignier, en_barrer, 0)
        EndIf
      Else
        ecrire(Caractere$, couleur_texte, couleur_arrier_plant_texte, police_ecriture$, taille_de_la_police, en_gras, en_italique, en_soulignier, en_barrer, 0)
      EndIf
    Else
      ecrire(Caractere$, couleur_texte, couleur_arrier_plant_texte, police_ecriture$, taille_de_la_police, en_gras, en_italique, en_soulignier, en_barrer, 0)
    EndIf
    
  Else
    ecrire(Caractere$, couleur_texte, couleur_arrier_plant_texte, police_ecriture$, taille_de_la_police, en_gras, en_italique, en_soulignier, en_barrer, 0)
  EndIf
  Delay(Choix_vitesse_ecriture * 25)
Next
EndProcedure

Procedure Taille_console(Largeur, Hauteur)
  ResizeWindow(#Fenetre_Console, #PB_Ignore, #PB_Ignore, Largeur, Hauteur)
EndProcedure

Procedure Titre_console(Titre$)
  SetWindowTitle(#Fenetre_Console, Titre$)
EndProcedure

Procedure Couleur_console(couleur_de_la_fenetre, couleur_avent_la_marge_du_bord_editeur, couleur_de_remplisage_marge_avent_bord_editeur, Couleur_du_Bord_Editeur, Couleur_du_Fond_Editeur)
  Couleur_Fenetre = couleur_de_la_fenetre
  PureCOLOR_SetWindowColor(#Fenetre_Console, Couleur_Fenetre)
  couleur_avent_marge_bord_editeur = couleur_avent_la_marge_du_bord_editeur
  couleur_remplisage_marge_avent_bord_editeur = couleur_de_remplisage_marge_avent_bord_editeur
  Couleur_Bord_Editeur = Couleur_du_Bord_Editeur
  PureCOLOR_SetGadgetColor(#Page_Console, couleur_police_editeur, Couleur_du_Fond_Editeur)
EndProcedure

Procedure.l nombre_ligne_console()
  If IsGadget(#Page_Console)
    nombre_ligne_console = CountGadgetItems(#Page_Console)
    ProcedureReturn nombre_ligne_console
  EndIf
EndProcedure 

Procedure activer_croix_fermeture_console()
  If IsWindow(#Fenetre_Console)
    ; Retourne l'identifiant du menu système
    hSysMenu = GetSystemMenu_(WindowID(#Fenetre_Console), #True)
    ;Mise à jour du menu
    DrawMenuBar_(WindowID(#Fenetre_Console))
  EndIf
EndProcedure 

Procedure desactiver_croix_fermeture_console()
  If IsWindow(#Fenetre_Console)
    ; Retourne l'identifiant du menu système
    hSysMenu = GetSystemMenu_(WindowID(#Fenetre_Console), #False)
    ; Efface un élément du menu
    RemoveMenu_(hSysMenu, #SC_CLOSE, #MF_BYCOMMAND)
    ;Mise à jour du menu
    DrawMenuBar_(WindowID(#Fenetre_Console))
  EndIf
EndProcedure 

Procedure deplacer_cursseur_console(ligne, position)
  If IsGadget(#Page_Console)
    x = position
    y = ligne
    If x = - 1
      x = - 9999
    EndIf
    
    If y = - 1
      y = 9999
    EndIf
    
    ; Set cursor position 
    REG = GadgetID(#Page_Console) 
    CharIdx = SendMessage_(REG,#EM_LINEINDEX,y-1,0) 
    LLength = SendMessage_(REG,#EM_LINELENGTH,CharIdx,0) 
    If LLength >= x-1 
      CharIdx + x-1 
    EndIf 
    Range.CHARRANGE 
    Range\cpMin = CharIdx 
    Range\cpMax = CharIdx 
    SendMessage_(REG,#EM_EXSETSEL,0,Range) 
  EndIf
EndProcedure 

Procedure.l renvoiller_position_cursseur_X_console()
  If IsGadget(#Page_Console)
    ; returns X-Pos of Cursor 
    REG = GadgetID(#Page_Console) 
    SendMessage_(REG,#EM_EXGETSEL,0,Range.CHARRANGE) 
    position_cursseur_X_console = (Range\cpMax-(SendMessage_(REG,#EM_LINEINDEX,SendMessage_(REG,#EM_EXLINEFROMCHAR,0,Range\cpMin),0))+1)
    ProcedureReturn position_cursseur_X_console
  EndIf
EndProcedure 

Procedure.l renvoiller_position_cursseur_Y_console()
  If IsGadget(#Page_Console) 
    ; returns Y-Pos of Cursor 
    REG = GadgetID(#Page_Console) 
    SendMessage_(REG,#EM_EXGETSEL,0,Range.CHARRANGE) 
    position_cursseur_Y_console = SendMessage_(REG,#EM_EXLINEFROMCHAR,0,Range\cpMin)+1 
    ProcedureReturn position_cursseur_Y_console
  EndIf
EndProcedure 

Procedure.l renvoiller_position_relative_cursseur_console() 
  If IsGadget(#Page_Console)
    ; returns relative Position of Cursor 
    SendMessage_(GadgetID(#Page_Console),#EM_EXGETSEL,0,Range.CHARRANGE) 
    position_relative_cursseur = Range\cpMax 
    ProcedureReturn position_relative_cursseur
  EndIf
EndProcedure 

Procedure.s renvoiller_position_cursseur_X_Y_console() 
  If IsGadget(#Page_Console)
    ; returns X-Pos of Cursor 
    REG = GadgetID(#Page_Console) 
    SendMessage_(REG,#EM_EXGETSEL,0,Range.CHARRANGE) 
    position_cursseur_X_console = (Range\cpMax-(SendMessage_(REG,#EM_LINEINDEX,SendMessage_(REG,#EM_EXLINEFROMCHAR,0,Range\cpMin),0))+1) 
    ; returns Y-Pos of Cursor 
    REG = GadgetID(#Page_Console) 
    SendMessage_(REG,#EM_EXGETSEL,0,Range.CHARRANGE) 
    position_cursseur_Y_console = SendMessage_(REG,#EM_EXLINEFROMCHAR,0,Range\cpMin)+1 
    ProcedureReturn Str(position_cursseur_X_console) + ", " +  Str(position_cursseur_Y_console)
  EndIf
EndProcedure

Procedure selection_libre(ligne_de_depart.l, caractere_de_depart.l, ligne_de_fin.l, caractere_de_fin.l)
  If IsGadget(#Page_Console)
    ligne_de_depart - 1
    sel.CHARRANGE 
    sel\cpMin = SendMessage_(GadgetID(#Page_Console), #EM_LINEINDEX, ligne_de_depart, 0) + caractere_de_depart - 1 
    
    If ligne_de_fin = -1 
      ligne_de_fin = SendMessage_(GadgetID(#Page_Console), #EM_GETLINECOUNT, 0, 0) - 1 
    EndIf 
    sel\cpMax = SendMessage_(GadgetID(#Page_Console), #EM_LINEINDEX, ligne_de_fin, 0) 
    
    If caractere_de_fin = -1 
      sel\cpMax + SendMessage_(GadgetID(#Page_Console), #EM_LINELENGTH, sel\cpMax, 0) 
    Else 
      sel\cpMax + caractere_de_fin - 1 
    EndIf 
    SendMessage_(GadgetID(#Page_Console), #EM_EXSETSEL, 0, @sel) 
  EndIf
EndProcedure 

Procedure selectionner_caracteres(ligne, position_depart, position_fin)
  selection_libre(ligne, position_depart, ligne - 1, position_fin)
EndProcedure

Procedure couper_ligne(numero_ligne)
  If IsGadget(#Page_Console)
    SetGadgetAttribute(#Page_Console, #PB_Editor_ReadOnly, 1) 
    ligne - 1
    couper_la_ligne = numero_ligne
    selection_libre(couper_la_ligne, 1, couper_la_ligne, 0)
    SendMessage_(GadgetID(#Page_Console), #WM_COPY, -1, 0)
    SendMessage_(GadgetID(#Page_Console), #EM_SETSEL, -1, 0)
    RemoveGadgetItem(#Page_Console, couper_la_ligne - 1)
    SetGadgetAttribute(#Page_Console, #PB_Editor_ReadOnly, 0) 
  EndIf
EndProcedure

Procedure copier_ligne(numero_ligne)
  If IsGadget(#Page_Console)
    copier_la_ligne = numero_ligne
    selection_libre(copier_la_ligne, 1, copier_la_ligne, 0)
    SendMessage_(GadgetID(#Page_Console), #WM_COPY, -1, 0)
    SendMessage_(GadgetID(#Page_Console), #EM_SETSEL, -1, 0)
  EndIf
EndProcedure

Procedure coller_ligne()
  If IsGadget(#Page_Console)
    SetGadgetAttribute(#Page_Console, #PB_Editor_ReadOnly, 1) 
    ligne + 1
    SendMessage_(GadgetID(#Page_Console), #WM_PASTE, 0, 0) 
    SendMessage_(GadgetID(#Page_Console), #EM_SETSEL, -1, 0)
    SetGadgetAttribute(#Page_Console, #PB_Editor_ReadOnly, 0) 
  EndIf
EndProcedure

Procedure supprimer_ligne(numero_ligne)
  If IsGadget(#Page_Console)
    SetGadgetAttribute(#Page_Console, #PB_Editor_ReadOnly, 1) 
    RemoveGadgetItem(#Page_Console, numero_ligne)
    SetGadgetAttribute(#Page_Console, #PB_Editor_ReadOnly, 0) 
  EndIf
EndProcedure

Procedure selectionner_ligne(ligne_de_depard, ligne_de_fin)
  ligne_a_selectionner = ligne_de_depard
  selection_libre(ligne_a_selectionner, 1, ligne_de_fin - 1, -1)
EndProcedure

Procedure Fenetre_console(a)
  If OpenWindow(#Fenetre_Console, 450, 200, 620, 400, "Fenêtre console", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered)
    EditorGadget(#Page_Console, 20, 20, 580, 360, #PB_Editor_ReadOnly)
    
    ; Gadget Resizing
    PureRESIZE_SetGadgetResize(#Page_Console, 1, 1, 1, 1)
    ; Gadget Fonts
    Font_Editor_0 = LoadFont(#Font_console, Police_Editeur$, Taille_police_editeur, 0)
    SetGadgetFont(#Page_Console, Font_Editor_0)
    ; Gadget Colors
    PureCOLOR_SetGadgetColor(#Page_Console, couleur_police_editeur, Couleur_Fond_Editeur)
    
    ; Window Minimum Size
    PureRESIZE_SetWindowMinimumSize(#Fenetre_Console, 300, 150)
    
    ; Window Backcolor
    PureCOLOR_SetWindowColor(#Fenetre_Console, Couleur_Fenetre)
    
    ; ; pour faire apparaitre les bord de l'editeur
    ; style = GetWindowLong_(GadgetID(#Page_Console), #GWL_EXSTYLE)
    ; newstyle = (style |#WS_EX_CLIENTEDGE)
    ; SetWindowLong_(GadgetID(#Page_Console), #GWL_EXSTYLE, newstyle)
    ; SetWindowPos_(GadgetID(#Page_Console), 0, 0, 0, 0, 0, #SWP_SHOWWINDOW | #SWP_NOSIZE | #SWP_NOMOVE | #SWP_FRAMECHANGED)
    
    ; ceci pour le refaire disparaitre
    style = GetWindowLong_(GadgetID(#Page_Console), #GWL_EXSTYLE)
    newstyle = style &(~#WS_EX_CLIENTEDGE)
    SetWindowLong_(GadgetID(#Page_Console), #GWL_EXSTYLE, newstyle)
    SetWindowPos_(GadgetID(#Page_Console), 0, 0, 0, 0, 0, #SWP_SHOWWINDOW | #SWP_NOSIZE | #SWP_NOMOVE | #SWP_FRAMECHANGED)
    
    SetActiveGadget(#Page_Console)
    
    Sauvegarde_Largeur_Editeur = Largeur_Editeur
    Sauvegarde_Hauteur_Editeur = Hauteur_Editeur
    
    Position_X_Editeur = GadgetX(#Page_Console)
    Position_Y_Editeur = GadgetY(#Page_Console)
    
    Largeur_Editeur = GadgetWidth(#Page_Console) 
    Hauteur_Editeur = GadgetHeight(#Page_Console)
    
    StartDrawing(WindowOutput(#Fenetre_Console))
    DrawingMode(#PB_2DDrawing_Outlined )
    
    ; cette commande sert pour dessiner le nouveaux bord
    Box(Position_X_Editeur - 15, Position_Y_Editeur - 15, Largeur_Editeur + 30, Hauteur_Editeur + 30, couleur_avent_marge_bord_editeur)
    Box(Position_X_Editeur - 1, Position_Y_Editeur - 1, Largeur_Editeur + 2, Hauteur_Editeur + 2, Couleur_Bord_Editeur)
    FillArea(Position_X_Editeur - 10, Position_Y_Editeur - 10, -1, couleur_remplisage_marge_avent_bord_editeur)
    
    StopDrawing()
  Else
    
  EndIf
  
  Repeat
    
    Event = WindowEvent()
    
    If creation_entrer_clavier = 1
      creation_entrer_clavier = 0
      Sauvegarde_position_cursseur_X_console = renvoiller_position_cursseur_X_console()
      Sauvegarde_position_cursseur_Y_console = renvoiller_position_cursseur_Y_console()
      
      Ligne$ = GetGadgetItemText(#Page_Console, renvoiller_position_cursseur_Y_console() - 1)
      Texte_editeur$ = GetGadgetText(#Page_Console)
      Nombre_de_ligne = CountGadgetItems(#Page_Console)
      Largeur_fenetre = WindowWidth(#Fenetre_Console)
      Hauteur_fenetre = WindowHeight(#Fenetre_Console)
      
      Font_Entrer_clavier = LoadFont(#Font_console, Police_Editeur$, Taille_police_editeur, 0)
      
      StartDrawing(WindowOutput(#Fenetre_Console))
      DrawingFont(Font_Entrer_clavier)
      Longueur_texte = TextWidth(Ligne$)
      Hauteur_texte = TextHeight(Ligne$)
      StopDrawing()
      
      UseGadgetList(WindowID(#Fenetre_Console))
      
      StringGadget(#entrer_clavier, Longueur_texte + 23, 20 + 2 + Hauteur_totale_texte, Largeur_fenetre - Longueur_texte - 40, Hauteur_texte, "", #PB_String_BorderLess)
      ; Gadget Fonts
      SetGadgetFont(#entrer_clavier, LoadFont(#Font_Entrer_clavier, Police_Editeur$, Taille_police_editeur, 0))
      ; Gadget Colors
      
      PureCOLOR_SetGadgetColor(#entrer_clavier, couleur_du_texte_taper, couleur_fond_texte_taper)
      
      PureRESIZE_SetGadgetResize(#entrer_clavier, 1, 1, 1, 0)
      
      AddKeyboardShortcut(#Fenetre_Console, #PB_Shortcut_Return, 999)
      
    ElseIf Reponce_entrer_clavier = 1
      Reponce_entrer_clavier = 0
      Reponce_entrer_clavier$ = GetGadgetText(#entrer_clavier)
      FreeGadget(#entrer_clavier)
      Entrer_clavier = 0
      RemoveKeyboardShortcut(#Fenetre_Console, #PB_Shortcut_Return)
      deplacer_cursseur_console(Sauvegarde_position_cursseur_Y_console, Sauvegarde_position_cursseur_X_console)
      SetActiveGadget(#Page_Console)
      format.CHARFORMAT
      format\cbSize = SizeOf(CHARFORMAT)
      format\dwMask = #CFM_COLOR|#CFM_ITALIC|#CFM_BOLD|#CFM_STRIKEOUT|#CFM_UNDERLINE 
      format\dwEffects = style_italique|style_gras|style_barrer|style_soulignier 
      format\crTextColor = couleur_texte_une_fois_entrer
      
      SendMessage_(GadgetID(#Page_Console), #EM_SETCHARFORMAT, #SCF_SELECTION, @format)
      SendMessage_(GadgetID(#Page_Console), #EM_REPLACESEL, 0, " " + Reponce_entrer_clavier$)
      Hauteur_totale_texte + sauvegarde_dernier_texte
      AddGadgetItem(#Page_Console, -1, "")
    EndIf
    
    If Entrer_clavier = 1
      If GetActiveGadget() <> #entrer_clavier And IsGadget(#entrer_clavier)
        SetActiveGadget(#entrer_clavier)
      EndIf
    EndIf
    
    If Event = #PB_Event_Repaint
      
      StartDrawing(WindowOutput(#Fenetre_Console))
      DrawingMode(#PB_2DDrawing_Outlined )
      
      ; cette commande sert pour éffacer l'encien bord
      Box(Position_X_Editeur - 15, Position_Y_Editeur - 15, Sauvegarde_Largeur_Editeur + 30, Sauvegarde_Hauteur_Editeur + 30, Couleur_Fenetre)
      Box(Position_X_Editeur - 1, Position_Y_Editeur - 1, Sauvegarde_Largeur_Editeur + 2, Sauvegarde_Hauteur_Editeur + 2, Couleur_Fenetre)
      FillArea(Position_X_Editeur - 14, Position_Y_Editeur - 14, -1, Couleur_Fenetre)
      
      ; cette commande sert pour dessiner le nouveaux bord
      Box(Position_X_Editeur - 15, Position_Y_Editeur - 15, Largeur_Editeur + 30, Hauteur_Editeur + 30, couleur_avent_marge_bord_editeur)
      Box(Position_X_Editeur - 1, Position_Y_Editeur - 1, Largeur_Editeur + 2, Hauteur_Editeur + 2, Couleur_Bord_Editeur)
      FillArea(Position_X_Editeur - 10, Position_Y_Editeur - 10, -1, couleur_remplisage_marge_avent_bord_editeur)
      
      StopDrawing()
      
    EndIf
    
    If Event = #PB_Event_SizeWindow
      If IsGadget(#entrer_clavier)
        Largeur_entrer_clavier = GadgetWidth(#entrer_clavier)
        SendMessage_(GadgetID(#entrer_clavier), #EM_LIMITTEXT, 999, 0)
      EndIf
    EndIf
    
    If IsGadget(#Page_Console)
      If GetActiveGadget() <> #Page_Console And Entrer_clavier = 0
        SetActiveGadget(#Page_Console)
      EndIf
    EndIf
    
    position_cursseur_X_console = renvoiller_position_cursseur_X_console()
    
    position_cursseur_Y_console = renvoiller_position_cursseur_Y_console()
    
    ; je vais dessiner des bord en couleur autour de l'editeur
    
    Sauvegarde_Largeur_Editeur = Largeur_Editeur
    Sauvegarde_Hauteur_Editeur = Hauteur_Editeur
    
    Position_X_Editeur = GadgetX(#Page_Console)
    Position_Y_Editeur = GadgetY(#Page_Console)
    
    Largeur_Editeur = GadgetWidth(#Page_Console) 
    Hauteur_Editeur = GadgetHeight(#Page_Console)
    
    If Sauvegarde_Largeur_Editeur <> Largeur_Editeur Or Sauvegarde_Hauteur_Editeur <> Hauteur_Editeur
      
      StartDrawing(WindowOutput(#Fenetre_Console))
      DrawingMode(#PB_2DDrawing_Outlined )
      
      ; cette commande sert pour éffacer l'encien bord
      Box(Position_X_Editeur - 15, Position_Y_Editeur - 15, Sauvegarde_Largeur_Editeur + 30, Sauvegarde_Hauteur_Editeur + 30, Couleur_Fenetre)
      Box(Position_X_Editeur - 1, Position_Y_Editeur - 1, Sauvegarde_Largeur_Editeur + 2, Sauvegarde_Hauteur_Editeur + 2, Couleur_Fenetre)
      FillArea(Position_X_Editeur - 14, Position_Y_Editeur - 14, -1, Couleur_Fenetre)
      
      ; cette commande sert pour dessiner le nouveaux bord
      Box(Position_X_Editeur - 15, Position_Y_Editeur - 15, Largeur_Editeur + 30, Hauteur_Editeur + 30, couleur_avent_marge_bord_editeur)
      Box(Position_X_Editeur - 1, Position_Y_Editeur - 1, Largeur_Editeur + 2, Hauteur_Editeur + 2, Couleur_Bord_Editeur)
      FillArea(Position_X_Editeur - 10, Position_Y_Editeur - 10, -1, couleur_remplisage_marge_avent_bord_editeur)
      
      StopDrawing()
      
    EndIf
    
    If envoie_requette = 1 ; à ressue la requette
      envoie_requette = 0
      
      format.CHARFORMAT
      format\cbSize = SizeOf(CHARFORMAT) 
      format\dwMask = #CFM_FACE|#CFM_SIZE|#CFM_COLOR|#CFM_ITALIC|#CFM_BOLD|#CFM_STRIKEOUT|#CFM_UNDERLINE
      format\dwEffects = style_italique|style_gras|style_barrer|style_soulignier
      format\crTextColor = Couleur_du_texte
      format\yHeight = Taille_police_editeur * 20
      Fond_ecriture = LoadFont(#Font_console, Police_Editeur$, Taille_police_editeur, style_italique|style_gras|style_barrer|style_soulignier)
      PokeS(@format\szFaceName, Police_Editeur$)
      format2.CHARFORMAT2_
      format2\cbSize = SizeOf(CHARFORMAT2_) 
      format2\dwMask = $4000000  ; = BACKCOLOR
      format2\crBackColor = Couleur_arrier_plant_du_texte
      ecrie_le_texte:
      If IsGadget(#Page_Console)
        SendMessage_(GadgetID(#Page_Console), #EM_SETCHARFORMAT, #SCF_SELECTION, @format)
        SendMessage_(GadgetID(#Page_Console), #EM_SETCHARFORMAT, #SCF_SELECTION, @format2)
        SendMessage_(GadgetID(#Page_Console), #EM_REPLACESEL, 0, Ecrire$)
        
        If ecrire_alinea = 1
        StartDrawing(WindowOutput(#Fenetre_Console))
        DrawingFont(Fond_ecriture)
        Longueur_texte = TextWidth(Ecrire$)
        Hauteur_texte = TextHeight(Ecrire$)
        Hauteur_totale_texte + Hauteur_texte
        sauvegarde_dernier_texte = Hauteur_texte
        StopDrawing()
        EndIf
        
        Ecrire$ = ""
      Else
        Goto ecrie_le_texte
      EndIf
      
      requette_terminer = 1 ; à éxecuter la requette, envoie la reponce
    EndIf
    
    EventMenu = EventMenu()
    
    Select Event
        
      Case #PB_Event_Gadget
        
        EventGadget = EventGadget()
        EventType = EventType()
        
        If EventGadget = #Page_Console
          
        ElseIf EventGadget = #entrer_clavier
          If IsGadget(#entrer_clavier)
            ; calcule de la longueur totale de la ligne de texte et du dernier caractère de la ligne
            Largeur_entrer_clavier = GadgetWidth(#entrer_clavier)
            StartDrawing(WindowOutput(#Fenetre_Console))
            DrawingFont(Font_Entrer_clavier)
            entrer_clavier$ = GetGadgetText(#entrer_clavier)
            Longueur_texte = TextWidth(entrer_clavier$)
            dernier_caractere$ = Mid(entrer_clavier$, Len(entrer_clavier$) - 1, 1)
            longueur_dernier_caractere = TextWidth(dernier_caractere$)
            StopDrawing()
            
            If Not Longueur_texte >= Largeur_entrer_clavier - longueur_dernier_caractere
              SendMessage_(GadgetID(#entrer_clavier), #EM_LIMITTEXT, 999, 0)
            EndIf
            
            If Longueur_texte >= Largeur_entrer_clavier - (longueur_dernier_caractere + 5)
              SendMessage_(GadgetID(#entrer_clavier), #EM_LIMITTEXT, Len(entrer_clavier$), 0)
            EndIf
            
          EndIf
        EndIf
        
      Case #PB_Event_Menu
        If EventMenu = 999
          Reponce_entrer_clavier = 1
        EndIf
        
      Case #PB_Event_CloseWindow
        EventWindow = EventWindow()
        
        If EventWindow = #Fenetre_Console
          CloseWindow(#Fenetre_Console)
          End
        EndIf
        
    EndSelect
    If Event = 0
      Delay(1)
    EndIf
  ForEver
EndProcedure

Procedure Ouvrir_console()
  Thread_Fenetre_console = CreateThread(@Fenetre_console(), 0)
  Delay(100)
EndProcedure

Procedure Attendre_evenement_console()
  WaitThread(Thread_Fenetre_console)
EndProcedure
et le code, faut inclure le code principale
avent ce code:

Code : Tout sélectionner

Ouvrir_console()
Titre_console("Console")
Taille_console(620, 400)
Couleur_console(RGB(255, 255, 255), RGB(255, 255, 255), RGB(255, 255, 255), RGB(255, 255, 255), RGB(255, 255, 255))

; ; exemple 1
; For a = 1 To 23 ; 23 ligne
; For b = 1 To 20 ; 20 X abcd a la suite
; ecrire("a", RGB(Random(255), Random(255), Random(255)), RGB(Random(255), Random(255), Random(255)), "cambria", 9, 1, 1, 1, 1, 1)
; ecrire("b", RGB(Random(255), Random(255), Random(255)), RGB(Random(255), Random(255), Random(255)), "cambria", 9, 1, 1, 1, 1, 1)
; ecrire("c", RGB(Random(255), Random(255), Random(255)), RGB(Random(255), Random(255), Random(255)), "cambria", 9, 1, 1, 1, 1, 1)
; ecrire("d", RGB(Random(255), Random(255), Random(255)), RGB(Random(255), Random(255), Random(255)), "cambria", 9, 1, 1, 1, 1, 1)
; Next
; ecrire_alinea("", RGB(Random(255), Random(255), Random(255)), RGB(Random(255), Random(255), Random(255)), "cambria", 9, 1, 1, 1, 1, 1)
; Next

; ;exemple 2
; For a = 1 To 24 ; 24 ligne
; For b = 1 To 38 ; 38 X abcd a la suite
; ecrire("     ", RGB(Random(255), Random(255), Random(255)), RGB(Random(255), Random(255), Random(255)), "cambria", 9, 0, 0, 0, 0, 0)
; Next
; ecrire_alinea("", RGB(Random(255), Random(255), Random(255)), RGB(Random(255), Random(255), Random(255)), "cambria", 9, 0, 0, 0, 0, 0)
; Next

; ;exemple 3
; ecrire("Bienvenue ", RGB(255, 0, 0), RGB(255, 255, 255), "cambria", 9, 0, 0, 0, 0, 0)
; ecrire("sur la ", RGB(0, 0, 255), RGB(255, 255, 255), "cambria", 9, 0, 0, 0, 0, 0)
; ecrire("console ", RGB(255, 0, 0), RGB(255, 255, 255), "cambria", 9, 0, 0, 0, 0, 0)
; ecrire_alinea("graphique !", RGB(0, 0, 255), RGB(255, 255, 255), "cambria", 9, 0, 0, 0, 0, 0)
; 
; ecrire("Pour  ", RGB(0, 0, 255), RGB(255, 255, 255), "cambria", 9, 0, 0, 0, 0, 0)
; ecrire("commencer ", RGB(255, 0, 0), RGB(255, 255, 255), "cambria", 9, 0, 0, 0, 0, 0)
; ecrire("dit-moi ", RGB(0, 0, 255), RGB(255, 255, 255), "cambria", 9, 0, 0, 0, 0, 0)
; ecrire("comment ", RGB(255, 0, 0), RGB(255, 255, 255), "cambria", 9, 0, 0, 0, 0, 0)
; ecrire("tu ", RGB(0, 0, 255), RGB(255, 255, 255), "cambria", 9, 0, 0, 0, 0, 0)
; ecrire("t'appel:", RGB(255, 0, 0), RGB(255, 255, 255), "cambria", 9, 0, 0, 0, 0, 0)
; reponce$ = entree_clavier(RGB(0, 0, 0), RGB(255, 255, 255), RGB(255, 0, 0))
; 
; ecrire("Bienvenue ", RGB(255, 0, 0), RGB(255, 255, 255), "cambria", 9, 0, 0, 0, 0, 0)
; ecrire("a toi ", RGB(0, 0, 255), RGB(255, 255, 255), "cambria", 9, 0, 0, 0, 0, 0)
; ecrire_alinea(reponce$, RGB(0, 0, 255), RGB(255, 255, 255), "cambria", 9, 1, 0, 0, 0, 0)
; 
; ecrire("Quel ", RGB(0, 0, 255), RGB(255, 255, 255), "cambria", 9, 0, 0, 0, 0, 0)
; ecrire("âge ", RGB(255, 0, 0), RGB(255, 255, 255), "cambria", 9, 0, 0, 0, 0, 0)
; ecrire("à tu ", RGB(0, 0, 255), RGB(255, 255, 255), "cambria", 9, 0, 0, 0, 0, 0)
; ecrire(reponce$, RGB(255, 0, 0), RGB(255, 255, 255), "cambria", 9, 1, 0, 0, 0, 0)
; ecrire(" ?:", RGB(0, 0, 255), RGB(255, 255, 255), "cambria", 9, 1, 0, 0, 0, 0)
; reponce$ = entree_clavier(RGB(0, 0, 0), RGB(255, 255, 255), RGB(255, 0, 0))
; ecrire("Tu as ", RGB(255, 0, 0), RGB(255, 255, 255), "cambria", 9, 0, 0, 0, 0, 0)
; ecrire(reponce$, RGB(0, 0, 255), RGB(255, 255, 255), "cambria", 9, 1, 0, 0, 0, 0)
; ecrire(" ans !", RGB(255, 0, 0), RGB(255, 255, 255), "cambria", 9, 0, 0, 0, 0, 0)

; ; ;exemple 4
; Texte$ = "Salut, je m'appel Brayane, j'habite a venise et j'ai 8 ans."
; Texte$ + "et toi comment t'apel-tu ?"
; Texte$ + "tu habite ou ?"
; Texte$ + "et quel âge as tu ?"
; Texte$ + "«"
; Texte$ + "Bienvenue a toi R[1], tu habite à R[2] et tu as R[3] ans"
; 
; ecrire_lettre_par_lettre(Texte$, RGB(0, 0, 255), RGB(255, 255, 255), "cambria", 9, 0, 0, 0, 0, 4)

Attendre_evenement_console()

Oui c'est encore une console graphique mais améliorer
bien par conte j'ai un pitit soucis avec les string gadget qui suivent
la police ne ce place pas éxactement a la bonne position

il me faudrait la commande qui permet de mesurer la hauteur exacte
de tous les ligne de l'éditeur pour que ce soit plus précis

si vous essayer sa sous 4.40, les bors de l'éditeur ce cache bien
mais au dessue de cette version, sa ne marche plus, pourquoi ?
le string gadget n'est plus a la même position aussi a la version 4.40
si vous pouvez m'aider un pitit peut ce serais cool

voilà a plus
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: l'editor gadget, tout'un mistère

Message par dayvid »

Salut :)

Bon je voie que ce sujet n'interesse personne, bon ce n'est pas grave 8)

Par contre si vous pouviez juste me dire comment renvoyer la hauteur totale
des lignes dans l'editor gadget, c'est pour placer correctement mon string gadget
car la ça fonctionne mais ce n'est pas encore bien au point, merci d'avence :P
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: l'editor gadget, tout'un mistère

Message par falsam »

Quel est l’intérêt de placer un string gadget dans un editor gadget ?
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: l'editor gadget, tout'un mistère

Message par dayvid »

de simuler parfaitement un input :D
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Répondre