PB pour imprimer

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

PB pour imprimer

Message par garzul »

:D Bonjour j'ai un probleme je voudrai imprimer un texte a partir d'un menu imprimer donc voici le code integral

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 
;- Saisi du texte (gadget) 
  #Gadget_2 
  #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, 400, 200,  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered, "Garzul note pad")
 
    ;/ 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 
      
      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, "field") 
      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() 

; 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 
        Quit = #TRUE
      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. 
        ;/ Pour les CallBacks, on verra ça à une date ultérieure 
        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, "field") 
        EndIf 
        ;- Choisir l'ouverture des menu cool:)
      Case #PB_Event_Menu
        Select EventMenuID()
          Case #MENU_26
            FileName.s = OpenFileRequester("Choisissez un fichier", "C:\Nouveau projet.txt", ".txt", 0)
          Case #MENU_35
            PrintRequester() 
           
            ; ...
        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 ?? 
        Debug  GadgetID 
    EndSelect
  Until Quit
End
Mais pour PRINT REQUESTER je ne comprend pas quand je clique sur imprimer sa m'ouvre la fenetre de mon imprimante mais je peux pas lancer l'impression comment faut til faire car sur l'aide jai essayere ceci mais je sais pas comment le metre par rapport a mon code regarder sa
StartPrinting(NomJob$)
merci de maider c ccol :D
garzul
Messages : 683
Inscription : mer. 26/mai/2004 0:33

re

Message par garzul »

Voila j'ai un autre pb c que comment faire pour faire enregistrer ou copier ou coller ou suprimer ou imprimer un texte qu'on ecrit dans un editeur de textez comme j'ai fait car il me manque justeles menu a creer pour terminer mon aplication et pout cree un fichier d'aide qui va s'ouvrir des quon clique sur aide merci et repondez au deux post celui d'en haut eyt celui la svp merci :mad:
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

un extrait du code de FWeil , le code complet est ici :
http://purebasic.hmt-forum.com/viewtopic.php?t=752

Code : Tout sélectionner

Procedure SaveContent(ThisFileName.s) ; Vérifie si le contenu du gadget peut être sauvegardé et effectue la sauvegarde. 
  If CreateFile(0, ThisFileName) 
      If NChars <= 64000 
          WriteString(GetGadgetText(#EditorGadget)) 
          CloseFile(0) 
          FileName = ThisFileName 
        Else 
          MessageRequester("Warning", "Save of more than 63999 chars is not possible", #PB_MessageRequester_Ok) 
      EndIf 
    Else 
      MessageRequester("Warning", "File " + ThisFileName + " creation not possible", #PB_MessageRequester_Ok) 
  EndIf 
EndProcedure 
fweil
Messages : 505
Inscription : dim. 16/mai/2004 17:50
Localisation : Bayonne (64)
Contact :

Message par fweil »

wow ... a step nearer to the wall of fame !
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

ça serait dommage de réinventer l'eau chaude à chaque fois que l'on veut prendre un bain :lol:
fweil
Messages : 505
Inscription : dim. 16/mai/2004 17:50
Localisation : Bayonne (64)
Contact :

Message par fweil »

c'est comme se lever la nuit pour donner des biberons à des bébés qui ne pleurent pas !

J'adore celle là
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

euh ? c'est une expression du sud ouest ? je ne connais pas ,et elle signifie quoi ?
fweil
Messages : 505
Inscription : dim. 16/mai/2004 17:50
Localisation : Bayonne (64)
Contact :

Message par fweil »

En fait je ne sais pas de manière certaine si l'origine est de là où je l'ai entendue ...

J'ai utilisé cette expression la première fois en Afrique où j'ai vécu, et où les gens savent si bien parler le français, fut-ce en utilisant des images !

Elle signifie que ce n'est pas la peine d'inventer ce qui n'est pas nécessaire ...
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

ah ok merci :)

Ben l'eau chaude c'est bien pratique , ça vaut le coup de se lever pour donner le biberon au bébé :lol:
fweil
Messages : 505
Inscription : dim. 16/mai/2004 17:50
Localisation : Bayonne (64)
Contact :

Message par fweil »

A condition qu'il pleure, parce que le réveiller alors qu'il dort c'est vraiment en vouloir inutilement !

Moi les bébés c'est déjà loin ... alors je n'ai plus envie de les réveiller pour rien, même si je n'oublie rien.

Enfin j'ai donné des biberons il y a longtemps quoi !
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.
fweil
Messages : 505
Inscription : dim. 16/mai/2004 17:50
Localisation : Bayonne (64)
Contact :

Message par fweil »

Bon et puis garzul dsl .. on te pollue ton post là ...

J'espère que tu as la réponse à ton problème ?
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.
garzul
Messages : 683
Inscription : mer. 26/mai/2004 0:33

Message par garzul »

OUI j'ai eu la réponse mais j'ai l'impression de ne pas aprendre et sa m'enerve car je veux reussir en pure basic qui a des conseil svp car la je commence a douter de mes capaciter.?? :oops: :oops: :oops:
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

il ne faut pas douter ,c'est long d'apprendre , surtout si tu apprends seul .
Il faut passer beaucoup de temps à étudier les sources des autres , réaliser des petits programmes comme tu fais ,c'est la bonne méthode .
il faut juste ne pas croire que tout va venir en quelques jours , ni en quelques mois .
garzul
Messages : 683
Inscription : mer. 26/mai/2004 0:33

Message par garzul »

oui merci mais j'ai l'impression que je fais travailler les autres plutot que moi et sa menbete en plus jai l'impression que je fais que copier coller et puis voila ouinnnnnnnnnnnnnn j'ai commence ya 1 semaine :mad:
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

houla , moi en une semaine , j'en étais encore à la première page du manuel , je savais tout juste faire mon print ("hello word") et j'attaquais le prenom$=input("quel est ton prénom?")
print("bonjour " + prenom$)

Je ne parle pas de purebasic ,j'ai débuté avec un autre basic , mais j'en ai lu des codes sans rien comprendre pendant un moment :?

Remarque je continue à ne rien comprendre ici , je vois défiler des codes incompréhensibles , mais c'est bien d'être entouré de personnes compétentes , ça donne une direction à suivre , de loin :)
et puis en grapillant une info à droite à gauche , ça permet de progresser :)

Bref , une semaine , c'est vraiment court pour se décourager ,attends un an ou deux avant de déclarer forfait :)
Répondre