Editor en string

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
Avatar de l’utilisateur
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Editor en string

Message par kernadec »

bonjour
je ne sais pas si cette question a deja eté posée?

StringGadjet a la fonction souris popmenu copier coller integree mais avec des ascenseurs déclares non escamotable sinon grises
et copier coller clavier

EditorGadjet n'as pas l'option souris copier coller integree mais avec des ascenseurs escamotable avec copier coller clavier

EditorGadjet ne devrait il pas possède cette fonction intégrée??
il porte le nom d'editor mais stringgadget lui ravi le titre lol!!!

mais peut être il y a une astuce que je n'ai pas saisie
voila deux code trouves dans code archive et sur le forum
pour l'exemple :

Code : Tout sélectionner

; English forum:
; Author: Unknown (updated for PB4.00 by blbltheworm)
; Date: 23. January 2003
; OS: Windows
; Demo: No

If OpenWindow(0,200,200,300,150,"test",#PB_Window_SystemMenu)
  CreateGadgetList(WindowID(0))
  t$="This text goes inside a multiline StringGadget."+Chr(13)+Chr(10)
  For r=2 To 10 : t$+Str(r)+Chr(13)+Chr(10) : Next
  StringGadget(0,10,10,200,100,t$,#ES_MULTILINE|#ES_AUTOVSCROLL|#WS_VSCROLL|#WS_HSCROLL)
  ButtonGadget(1,230,10,50,20,"Save")
  ButtonGadget(2,230,40,50,20,"Load")
  ButtonGadget(3,230,70,50,20,"Info")
  Repeat
    ev=WaitWindowEvent()
    If ev=#PB_Event_Gadget
      Select EventGadget()
        Case 1 ; Save
          If CreateFile(0,"MultiLine.txt")
            WriteStringN(0,GetGadgetText(0))
            CloseFile(0)
          EndIf
        Case 2 ; Load
          If ReadFile(0,"MultiLine.txt")
            A$=""
            Repeat
              A$+ReadString(0)+Chr(13)+Chr(10)
            Until Eof(0)<>0
            CloseFile(0)
            SetGadgetText(0,A$)
          EndIf
        Case 3 ; Info
          lines=SendMessage_(GadgetID(0),#EM_GETLINECOUNT,0,0)
          where=SendMessage_(GadgetID(0),#EM_LINEFROMCHAR,-1,0)+1
          MessageRequester("Info",Str(lines)+" lines in the box."+Chr(13)+"You are on line "+Str(where)+".",0)
      EndSelect
    EndIf
  Until ev=#PB_Event_CloseWindow
EndIf


second code:

Code : Tout sélectionner

; Author: Andre Beer / PureBasic Team modifié par KCC et remodifier par MetalOS :D 

Global IdGadgetSurvoler 
OpenWindow(0, 200, 200, 200, 120, "Popup-Menu Example", #PB_Window_SystemMenu) 
CreateGadgetList(WindowID(0)) 
EditorGadget(1, 5, 5, 150, 80) 
    
If CreatePopupMenu(10)      ; here the creating of the pop-up menu begins... 

 MenuItem(40, "Annuler") 
 MenuBar() 
 MenuItem(41, "Couper") 
 MenuItem(42, "Copier") 
 MenuItem(43, "Coller") 

EndIf 

Repeat 

 GetCursorPos_(@point.POINT) 
 Handle = WindowFromPoint_(point\X,point\Y) 
 IdGadgetSurvoler = GetDlgCtrlID_(Handle) ; Id du gadget survolé 

 Select WaitWindowEvent()     ; check for window events 
  
  Case #WM_RBUTTONDOWN       ; right mouse button was clicked => 
  
   If IdGadgetSurvoler = 1 
    DisplayPopupMenu(10,WindowID(0),point\X,point\Y)  ; now display the popup-menu 
   EndIf 
  
  Case #PB_Event_Menu         ; an item of the popup-menu was clicked 
  
   Select EventMenu()     ; get the clicked menu item... 
    Case 40 : Debug "Menu: Annuler" 
    Case 41 : Debug "Menu: Couper" 
    ;Code Couper 
    Vide$ = "" 
          SendMessage_(GadgetID(1),#EM_GETSEL,@StartSel,@EndSel) 
          Buffer$ = Space(EndSel-StartSel) 
          SendMessage_(GadgetID(1),#EM_GETSELTEXT,0,@Buffer$) 
          ClearClipboard() 
          SetClipboardText(Buffer$) 
          SendMessage_(GadgetID(1),#EM_REPLACESEL,#True,@Vide$) 
     ;Fin Couper 
    Case 42 : Debug "Menu: Copier" 
    ;Code Copier 
    SendMessage_(GadgetID(1),#EM_GETSEL,@StartSel,@EndSel) 
          Buffer$ = Space(EndSel-StartSel) 
          SendMessage_(GadgetID(1),#EM_GETSELTEXT,0,@Buffer$) 
          ClearClipboard() 
          SetClipboardText(Buffer$) 
    ;Fin Copier 
    Case 43 : Debug "Menu: Coller" 
    ;Code coller 
      Buffer$ = GetClipboardText() 
          SendMessage_(GadgetID(1),#EM_REPLACESEL,#True,@Buffer$) 
    ;Fin de code Coller 
   EndSelect 
    
   Case #PB_Event_CloseWindow 
   Quit = 1 
 EndSelect 
  
Until Quit = 1 
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

Je suis de ton avis,
Un menu copier/coller intégré en natif au clique droite sur un string ou un editor ce serait vraiment sympa.

Genre

Code : Tout sélectionner

EditorGadget(#Editor_gad1, 0, 0, 400, 150, #PB_Editor_ReadOnly)
ou on pourrait ajouter l'option #PB_RightMouseButton_COPY par exemple pour activer ce fameux menu.
Avatar de l’utilisateur
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Message par kernadec »

merci Ar-S
je suis aussi d'accord pour une constante
d'autant qu'il n'en a qu'une : lire ou ne pas lire c'est la question

je trouve dommage que dans les constantes acceptees par les gadjets
seules les "#PB" sonts documentees dans l'aide de purebasic
car pour les 2,4,6,8,16,32,64 c'est bon lol!!!
mais par exemple :#WS_HSCROLL=1048576
faut vraiment avoir la tete dans tout les manuels
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Si seules les constantes #Pb sont documentées, c'est parce que c'est celles de PureBasic. Les autres sont celles de l'Api Windows et c'est dans la doc Windows qu'elles sont documentées.

Il ne te viendrait pas à l'idée d'aller demander la doc d'une Volvo chez Renault, non? :roll:


Idem pour l'EditorGadget ou le StringGadget.

Sous Windows, le composant Edit (le StringGadget) a un menu "Copier/Couper/Coller" alors que le RichEdit (Editorgadget) n'en a pas.
Les commandes de Pure ne sont qu'une réutilisation des composants Windows existants.

Si tu veux un menu sur un EditorGadget, tu peux le faire toi même, c'est simple comme bonjour.

Pour les autre OS, par contre, je ne sais pas
Avatar de l’utilisateur
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Message par kernadec »

merci chris
c'est gentil
mais il pourrait etre indiquer que des otpions ascenseur ou scrolls etc
sur les OS suivants sont acceptes juste par categories sans avoir a en faire la nomenclature simplement prevenir des ces options
car pour les options fenetres tous le monde connais mais certains gadjets c'est pas evident? enfin pour moi car je n'ai ton niveau je me suis lancer avec purebasic que depuis quatre mois
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Message par gnozal »

kernadec a écrit :...
mais il pourrait etre indiquer que des otpions ascenseur ou scrolls etc
sur les OS suivants sont acceptes juste par categories sans avoir a en faire la nomenclature simplement prevenir des ces options
...
Pour windows, la solution c'est le fichier Win32.hlp (déjà ancien mais contient les bases) ou le SDK.
En anglais bien entendu ...
Avatar de l’utilisateur
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Message par kernadec »

bonjour et merci Gnozal
j'ai un ptit truc a te faire part au sujet de JaPBe
j'aimerais bien avoir si c'etait possible car je ne l'ai pas trouve l option
pour configurer des raccourci clavier juste pour les touche direct de f1 a 12 par exemple
car l'option shift f4 pour sauvegarder une position dans le source
je l'utilise beaucoup il me semble qu'elle devrait etre direct
genre f2 et f4 retour
alors que f7 create un executable pourrait passer derriere un shift
car je ne cree pas d'executable tous les jours avec JaPBe comme interpreteur , le moment j'utilise ;// bien pratique aussi
ton menu constante explorer est deja une bonne aide pour les constantes
merci encore pour ton travail
au revoir
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Message par gnozal »

kernadec a écrit :j'ai un ptit truc a te faire part au sujet de JaPBe
j'aimerais bien avoir si c'etait possible car je ne l'ai pas trouve l option
pour configurer des raccourci clavier juste pour les touche direct de f1 a 12 par exemple
Non, pas possible, les touches F1-F12 et SHIFT F1-F12 sont réservées. Il reste ALT F1-F12.
Avatar de l’utilisateur
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Message par kernadec »

sans parler de f1qui est reservee a l'aideen f3 a nest general mais f2
pourraiit pas devenir memorise a lieu de shit f4 et deplacer
le reste jusqu'a f7 qui lui a mon sens creerun executable je le repete en touche direct c'est vraiment pour le fun
mais bon puisque ce n'est pas possible ce'n'etait qu'une suggestion dommage merci de ta reponse
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Message par poshu »

Sans vouloir être ni désagréable ni agressif, j'aimerais vraiment que tu fasses un effort sur la ponctuation kernadec... Je comprends rien du tout à tes phrases >.<,,

Le menu copier/coller de manière native, je suis contre parce que ça interférerait avec un popupmenu manuel. Le mettre en option est une idée viable, mais j'y vois un autre inconvénient: fred est occupé à des choses à mon sens plus importantes, et ça reste très simple à mettre en œuvre pour l'utilisateur.
Avatar de l’utilisateur
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Message par kernadec »

merci de ta remarque.
je vais essayer de te satisfaire.
je n'ai ecris cela que pour le fun,
sinon la solution se trouve dans ces deux exemples.
merci. de votre indulgence ....
Avatar de l’utilisateur
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Message par kernadec »

bonjour
quelqu'un connait il un moyen dans le mode debugger pas a pas
pour faire fonctionner le clavier et sa repetition quand on reste appuyer
pour passer les boucle ca serait cool.
merci
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

kernadec a écrit :bonjour
quelqu'un connait il un moyen dans le mode debugger pas a pas
pour faire fonctionner le clavier et sa repetition quand on reste appuyer
pour passer les boucle ca serait cool.
merci
le bouton "[Set Breakpoint]" sert a designer une ligne ou l'ordi s'arretera
apres un appuis sur [RUN]

:)
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Faut dire aussi que le débogueur est plutôt mal foutu, à mon avis.

Le bouton "Passer au delà" se limite à exécuter les procédures sans rentrer dedans, alors qu'il pourrait faire la même chose pour les boucles.

Idem pour le bouton "Sortir" qui devrait permettre de sortir d'une boucle (ou plutôt, de finir d'exécuter le boucle) quand on a commencé à la tester avec le bouton "Pas à pas"
Avatar de l’utilisateur
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Message par kernadec »

la repetition clavier ca aurait ete genial pour accelerer
l'execution car quand on a 100 lignes ca va,
pour moi en ca moment j'en suis a 7000 lignes, je sais je peux utiliser
les libs je le fais aussi lollll
j'ecris un truc d'astronomie pour le fun
Répondre