plusieur question

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
garzul
Messages : 683
Inscription : mer. 26/mai/2004 0:33

plusieur question

Message par garzul »

:D J'ai plusieur question concernant mon prog alors je voudrai faire ke ma police et mes couleur saplique a mon string gadget et que quand jimprime l'imprimante fairt atention au espace et au retour a la ligne je voudrai aussi quand on clique sur couper ou selectionner tout que sa change dans mon stringgadget (que sa aplique la fonction) et voila jespere quez je suis pas embetant avec mes kestion merci ppour tout regarder le code source pour vous faire une iddee ou pour arranger mes truc . :D dsl dans ma phrase pas de ponctuation lol :P

Code : Tout sélectionner

; PureBasic Visual Designer v3.80 build 1249 

;- Window Constants 
; 
Enumeration ;Les enumeration des menus pour les reprendre apres. 
  #Window_1 
;- MenuBar Constants 
  #MenuBar_4
  ;ouvre le fichier d'aide 
  #Aide
  ;-tooltip constant
  #NORTH = 1 : #EAST = 2 : #SOUTH = 3 : #WEST = 4

;- Saisi du texte (gadget) 
  #Gadget_2 
  #EditorGadget
  #MENU_27 
  #MENU_26 
  #MENU_29 
  #MENU_25 
  #MENU_35 
  #MENU_41 
  #MENU_44 
  #MENU_45 
  #MENU_46 
  #MENU_49 
  #MENU_50 
  #MENU_53 
  #MENU_58 
  #MENU_55 
  #MENU_56 
  #MENU_59 
  #MENU_64 
  #MENU_75 
;- StatusBar Constants 
  #StatusBar_0 
EndEnumeration 
Procedure Open_Window_1() 
  ;/ 1° Pas besoin d'être à la fois #ScreenCentered et #WindowCentered 
   If OpenWindow(#Window_1, 0, 0, 500, 400,  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered, "Garzul note pad")
   SetClassLong_(WindowID(0), #GCL_HBRBACKGROUND, CreateSolidBrush_(RGB(100, 120, 255)))
    ;/ 2° Si tu veux pouvoir redimensionner les différents gadgets, il faut que tu leur 
    ;/ donne leur position et leur dimension par rapport à la fenêtre. Il faut également 
    ;/ tenir compte des dimensions de la StatusBar, si il y en a une 
    
    If CreateGadgetList(WindowID(0)) ;je cree le gadget saisie de texte dans windows 
      StringGadget(0,10,10,WindowWidth()-20,WindowHeight()-60,"",#PB_String_MultiLine|#ES_AUTOVSCROLL|#WS_VSCROLL|#WS_HSCROLL|#ESB_DISABLE_LEFT|#ESB_DISABLE_RIGHT) ;Je cree la scrolbar ainsi que le retour a la ligne 
      ;terminer pour le saisie de texte 
      
      ;message tooltip dinfo
        ToolTip(GadgetID(0), "Bulle d'aides" + Chr(10) + "Ici marquer votre texte", "Bienvenue sur le garzul note &1", #EAST, RGB(150, 200, 0), RGB(255, 255, 255))
      If CreateMenu(#MenuBar_4, WindowID()) 
        MenuTitle("Fichier") 
        MenuItem(#MENU_27, "Nouveau") 
        MenuItem(#MENU_26, "Ouvrir") 
        MenuItem(#MENU_29, "Enregistrer") 
        MenuItem(#MENU_25, "Enregistrer sous ...") 
        MenuBar() 
        MenuItem(#MENU_35, "Imprimer") 
        MenuBar() 
        MenuItem(#MENU_41, "Quitter") 
        MenuTitle("Edition") 
        MenuItem(#MENU_44, "Couper") 
        MenuItem(#MENU_45, "Copier") 
        MenuItem(#MENU_46, "Coller") 
        MenuItem(#MENU_49, "Supprimer") 
        MenuBar() 
        MenuItem(#MENU_50, "Selectioner tout") 
        MenuItem(#MENU_53, "Heure/Dates") 
        MenuItem(#MENU_58, "Couleur du texte") 
        MenuTitle("Format") 
        MenuItem(#MENU_55, "Polices") 
        MenuItem(#MENU_56, "Retour auto a la ligne") 
        MenuTitle("Affichage") 
        MenuItem(#MENU_59, "Barre d'etat") 
        MenuTitle("?") 
        MenuItem(#MENU_64, "Aide") 
        MenuBar() 
        MenuItem(#MENU_75, "A propos du garzul note pad") 
      EndIf 
      If CreateStatusBar(#StatusBar_0, WindowID()) 
        AddStatusBarField(550) 
        StatusBarText(#StatusBar_0, 0, "Bienvenue sur le garzul note") 
        AddStatusBarField(450) 
      EndIf 
      If CreateGadgetList(WindowID()) 
       EndIf 
    EndIf 
    ResizeGadget(0,-1,-1,WindowWidth()-20,WindowHeight()-60) 
    
  EndIf 
EndProcedure 


; ===================================== 
;- Debut du programme 


; On initialise tous d'abord les valeurs 

; On affiche la fenêtre les boutons 

; On lance la boucle de gestion des évènements de la fenêtre ouverte 
;******************* faut le mettre avant la boucle !!! 

 Open_Window_1()
      Global FileName.s


; If CreateStatusBar(#StatusBar_0, WindowID()) 
;   AddStatusBarField(WindowWidth()) ;<--- La aussi, il faut donner la dimension de la fenêtre 
;   StatusBarText(#StatusBar_0, 0, "field") 
; EndIf 
; ***************************************** 
  

  Repeat 

    Select WaitWindowEvent() 

      ; #PB_Event_SizeWindow détecte si les dimensions de la fenêtre ont changées 
      Case #PB_Event_CloseWindow 
          
         result = MessageRequester("ATTENTION","Vous quittez sans enregistrez ,voulez vous enregistrez avant de partir?",#PB_MessageRequester_yesno) 
         If result <> 6 ; si il n'a pa clicker sur oui
  quit = 1 ; on quitte
 
EndIf

        
      Case #PB_Event_SizeWindow 
        ResizeGadget(0,-1,-1,WindowWidth()-20,WindowHeight()-60) 
        ;/ Si tu mets la StatusBar dans la boucle au niveau de l'evenement #PB_Event_SizeWindow 
        ;/ elle est réactualisée au fur et à mesure que tu redimensionne la fenêtre. 
        ;/ C'est pas très correct, comme méthode, mais ça évite de passer par une CallBack 
        ;/ Et si tu as plusieurs champs dans la status, ils sont redimensionnés en proportion. 
        FreeStatusBar(#StatusBar_0) 
        If CreateStatusBar(#StatusBar_0, WindowID()) 
        AddStatusBarField(WindowWidth()/3) 
        AddStatusBarField((WindowWidth()/3)*2) ;<--- La aussi, il faut donner la dimension de la fenêtre 
        StatusBarText(#StatusBar_0, 0, "") 
        EndIf 
        ;- Choisir l'ouverture des menu cool:)
      Case #PB_Event_Menu
        Select EventMenuID()
          ;-pour choisir un fichier
          Case #MENU_26
            FileName.s = OpenFileRequester("Choisissez un fichier", "C:\Nouveau projet.txt", "Text (*.txt)|*.txt;*.bat|PureBasic (*.pb)|*.pb|All files (*.*)|*.*|rtf (*.rtf)|*.rtf" , 0)
            OpenFile(0,FileName.s)
Repeat
content.s + ReadString()
Until Eof( 0 )
SetGadgetText(tongadget, content)

          ;-pour imprimer
          

          Case #MENU_35
   If PrintRequester() And StartPrinting("garzul note") And StartDrawing(PrinterOutput())
            Locate(WindowWidth()-20,WindowHeight()-60)
            DrawText(GetGadgetText(GADGET))
            TextLength(GADGET$)
            StopDrawing()
            StopPrinting() 
          EndIf

;pour effacer
Case #MENU_49
SendMessage_(#WM_Clear,0,0,0) 
SetGadgetText(tongadget, content)
          
          
          
                     ;quitter 
          Case #MENU_41
          
         result = MessageRequester("ATTENTION","Vous quittez sans enregistrez ,voulez vous enregistrez avant de partir?",#PB_MessageRequester_yesno) 
         If result <> 6 ; si il n'a pa clicker sur oui
  quit = 1 ; on quitte
 
EndIf

                  ;-definition de la police
          Case #MENU_55
           Result = FontRequester(FontName$, FontSize, #PB_FontRequester_Effects) 
  If Result 
    If LoadFont(0,SelectedFontName(),SelectedFontSize(),SelectedFontColor()) 
      FontName$ = SelectedFontName() 
      FontSize = SelectedFontSize() 
      FontColor = SelectedFontColor() 
      FontStyle = SelectedFontStyle() 
    SetGadgetFont(EditorGadget,FontID()) 
    EndIf 
  EndIf
     

 ;la date         
           
          Case #MENU_53
          Date$ = FormatDate("%dd/%mm/%yyyy", Date())
Time$ = FormatDate("%hh:%ii:%ss", Date())

MessageRequester("Garzul note .date/heure", "Date: "+Date$+Chr(10)+"Time: "+Time$, 0)
;cree le a propros
          Case #MENU_75
          MessageRequester("A propos de ..." ,"VERSION : Garzul note pad 1.00")
          ;pour enregistrer
          Case #MENU_25
          FileName.s = SaveFileRequester("Sauvegarder votre fichier", "C:\Nouveau projet.txt", "Text (*.txt)|*.txt|All files (*.*)|*.*" , 0) 
          CreateFile(1, FileName)
content.s = GetGadgetText(tongadget)
WriteString(content)
MessageRequester("Confirmation" ,"Vous avez bien enregistrer votre fichier.",#PB_MessageRequester_Ok)
      ;pour enregistrer sous
      Case #MENU_29
          If FileName = ""
            FileName = SaveFileRequester("Sauvegarder votre fichier", "C:\Nouveau projet.txt", "Text (*.txt)|*.txt|All files (*.*)|*.*" , 0)
          EndIf
            If FileName
          EndIf
          ;-cree l'ouverture de l'aide
          Case #MENU_64
          RunProgram("help1.exe", "", "")
       
         ;definition du sous menu nouveau
          Case #MENU_27
          MessageRequester("ATTENTION","Vous recommencer un nouveau projet.", #PB_MessageRequester_Ok)
          SetGadgetText(tongadget,"Vous avez recomencer votre projet")
          
          ;ouvrir un menu de choix de couleur uniquement
          Case #MENU_58
          ColorRequester()
            ; ...
            
        EndSelect
        Debug  "menu numero "+Str(menuID):; cette ligne va afficher le numero du menu choisi !! 
        ; a  toi dans faire ce que tu veux !! 
        ;fin des ouverture des menu
      Case #PB_Event_Gadget
        GadgetID = EventGadgetID(): ; lequel ?? 
                      EndSelect 

        Debug  GadgetID 
            StatusBarText(#StatusBar_0, 0, FormatDate("%dd/%mm/%yyyy", Date()) + " " + FormatDate("%hh:%ii:%ss", Date())) 
      
      Until  Quit 
    

End
a ++
garzul
Messages : 683
Inscription : mer. 26/mai/2004 0:33

Message par garzul »

personne ne veut maider :( :oops: :roll: :cry: :roll: :roll: :roll:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Qui veut m'aider j'ai un projet et je suis debutant je cherche des gens qui aimerez travailler sur le projet avec moi c'est un projet de bloc note ccomme le bloc note de windows sauf que je voudrais quil integre les couleur et les tableau pour des fin peut etres commercial vopila jai tout dit a++
voici ton premier topic

depuis tu a accumulé les listing que les autres t'on donné !!
tu n'a pas pris soin de chercher a comprendre leur fonctionnements
d'ailleur tu a mem laisse les remarque d'origine ce qui me fait dire que tu n'a pas cherche a "demonter" le fonctionnement de ceux ci
il ne me semble pas que tu cherche a progresser mais plutot a trouver une
"poire" qui te donnera le listing qui fini ton programme "puzzle"
a force de demander tu aura peut etre reussi a faire faire ce programme par les autres et en plus tu compte en faire un usage commerciale !!!
t'es pas culoté toi !!

excuse ma franchise , mais peut etre suis-je en train de dire tout haut
ce que beaucoup pense tout bas !!

fait un effort sur toi meme , je pense que tu en es capable
lit bien la doc du pure elle contient beaucoup de renseignements
puis surtout experimente par toi meme les commandes
en les torturant dans tout les sens, la est le secret de la "force"
petit scarabé !!!
et lorsque tu coince vraiment pose les bonne question , ici il y a des Crack
qui te repondront
mais demander , "oui je veux que mon programme fasse ceci et cela
pour qu'une bonne poire te fasse le boulot"

Je trouve que tu pousse un peu le bouchon la !!

sans Haine ....

:D
garzul
Messages : 683
Inscription : mer. 26/mai/2004 0:33

Message par garzul »

:D Ta remarque ne me concerne pas car eja je lai ai laisser les remarque pour que je men souvienne de ce quil mon dit (tinkiete jai apris et sa c sur et certain) autrement pour la fin comercial en faite non c que jetais debutant en prog et je voyais trop loin mais maintenant jai vus ce que cetait et je ferais mon code open source voila autrement tu seras que sa menbeter de demander de laide dans un topic et je t'assure que j'ai apris ce que vous avez marque donc voila merci quand meme et sans rancune dobro :)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

coool : :D

tiens au fait a partir de mercredi prochaine sur KD2A (France2)
il vont passer ton dessin animé preferé "lovenia" :D
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

C'est un peu du charabia ta demande.
Tu devrais essayer d'expliquer clairement si tu veux avoir des réponses.

Pour les couleurs, tu peut utiliser ma petite librairie qui permet de mettre de la couleurs à plusieurs gadgets (mais pas tous)

Voir mon post ici http://purebasic.hmt-forum.com/viewtopic.php?t=647


Mais tu devrais utiliser la commande EditorGadget(#Gadget, x, y, Largeur, Hauteur) pour créer un éditeur de texte.
garzul
Messages : 683
Inscription : mer. 26/mai/2004 0:33

Message par garzul »

:D COOL POUR LE SERIE LOVEHINA MERCI DOBRO :D
et merci a denis pour son editor gadget car c beaucoup mieux comme sa merci :D :D :D
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Une autre chose aussi

Tu utilise le code suivant :

Code : Tout sélectionner

SetClassLong_(WindowID(0), #GCL_HBRBACKGROUND, CreateSolidBrush_(RGB(100, 120, 255))) 
Tu utilise une Brush (Brosse en français) qui est un object que tu as créé. Cet object prend de la place en mémoire, place qu'il faut libérer en quittant ton programme comme ceci.

remplace

Code : Tout sélectionner

SetClassLong_(WindowID(0), #GCL_HBRBACKGROUND, CreateSolidBrush_(RGB(100, 120, 255))) 
par

Code : Tout sélectionner

 Global Brush.l  ; variable qui doit être accessible en dehors de ta procédure
   Brush = CreateSolidBrush_(RGB(100, 120, 255))

et avant le End de Fin met ceci

Code : Tout sélectionner

DeleteObject_(Brush)
Répondre