IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

La FAQ Lazarus


Sujet :

Lazarus Pascal

  1. #1
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 968
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 968
    Points : 59 663
    Points
    59 663
    Billets dans le blog
    2
    Par défaut La FAQ Lazarus
    Bonjour à toutes et à tous,

    Une FAQ a été construite avec le contenu de l'ancien forum officiel francophone dédié à Lazarus :

    http://lazarus.developpez.com/faq/

    Cette base de connaissances sera régulièrement alimentée avec le contenu du forum actuel.
    Les aspects propres au langage Pascal lui-même se trouvent dans la FAQ Pascal.

    La FAQ Lazarus est avant tout la vôtre ! Pour participer à son développement, vous pouvez poster vos questions/réponses directement dans la FAQ ou proposer vos corrections sur le forum Contribuez (ou à la suite de ce fil de discussion).
    N'hésitez pas à donner votre avis ou à poster vos remarques sur le présent fil de discussion.

    Bonne lecture !

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 309
    Points : 41 797
    Points
    41 797
    Billets dans le blog
    65
    Par défaut
    je l'avais découvert par hasard , elle manquait . Encore

  3. #3
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 007
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 007
    Points : 15 496
    Points
    15 496
    Par défaut
    Alcatîz : corrigé, merci pour cette contribution

    Salut tout le monde.

    Dans la première entrée de la faq, "Comment diminuer la taille de l'exécutable ?", la troisième ligne parle d'un onglet "Message", mais c'est faux : l'option en question se trouve dans l'onglet "Verbosity" (version 0.9.28.2 beta).

    Valà,

  4. #4
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 007
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 007
    Points : 15 496
    Points
    15 496
    Par défaut Mise à jour
    Alcatîz : corrigé, merci pour cette contribution

    Bonjour,

    Je viens d'apprendre que l'astuce de la FAQ ne fonctionne pas avec une version plus récente, la 0.9.29 r28360 FPC 2.4.3 i386-win32-win32/win64 (info)
    il faut désactiver l'option "-gl" tous simplement (décocher "Linking" --> "Display line numbers in runtime error backtraces").
    (mais je n'ai pas testé)

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    598
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 598
    Points : 628
    Points
    628
    Par défaut
    Bonjour,
    j'ai regardé la FAQ, je n'ai pas vu une indication sur la licence utilisable avec Lazarus.

  6. #6
    Membre averti
    Avatar de Jlmat
    Homme Profil pro
    Consultant en Ressources Humaines, Retraité passionné de programmation
    Inscrit en
    Avril 2008
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant en Ressources Humaines, Retraité passionné de programmation
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 320
    Points : 389
    Points
    389
    Par défaut FAQ Comment programmer une impression directe
    Bonjour,

    Dans la Procedure MyOpenPrinter, il est défini la variable Doc1 : DOC_INFO_1;
    Il n'y a aucune précision sur le Type DOC_INFO_1;
    Comme c'est sensé aider, je pense qu'une info sur le type s'impose...

    Bien à vous!

  7. #7
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 968
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 968
    Points : 59 663
    Points
    59 663
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    J'ai un peu commenté l'initialisation des trois champs de la structure DOC_INFO_1, sans cependant aller jusqu'à définir les formats RAW et EMF.

  8. #8
    Membre averti
    Avatar de Jlmat
    Homme Profil pro
    Consultant en Ressources Humaines, Retraité passionné de programmation
    Inscrit en
    Avril 2008
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant en Ressources Humaines, Retraité passionné de programmation
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 320
    Points : 389
    Points
    389
    Par défaut
    Citation Envoyé par Alcatîz Voir le message
    Bonjour,

    J'ai un peu commenté l'initialisation des trois champs de la structure DOC_INFO_1, sans cependant aller jusqu'à définir les formats RAW et EMF.
    Ben oui, le DataType avec valeur RAW me parait très ésotérique... Je peux traduire par données brutes mais bon... Et EMF?
    Je ne trouve pas de description...

    Dans la version 2.2.4 de Lazarus, je ne trouve pas non plus les types suivant, j'ai pourtant mis les unités : ... ExtCtrls, Printers, LResources, PrintersDlgs, Types, StdCtrls... entre autres:
    PDev : TPrinterDevice;
    TmpDevMode : PDeviceMode;

    J'ai du mal à transposer mes codes Delphi en Lazarus car je passe beaucoup de temps à chercher les unités dans lesquelles se trouvent les variables ou la définition des types...
    ça serait utile dans la Faq, d'avoir un guide qui donne l'unité dans laquelle se trouve une variable, car si elle est n'est pas reconnue dans le programme, la touche F1 ne donne rien et la recherche sur Internet est fastidieuse...
    Par exemple, un index de tous les mots définition tels que https://lazarus-ccr.sourceforge.io/d...l/index-8.html

    Bon, c'est peut-être moi qui devient "gogole"

    Merci en tout cas à toute l'équipe de Lazarus et de Développer.com qui font ce qu'ils peuvent pour nous rendre ce site indispensable... Puisse un jour participer plus activement!

    Bien à Toi

  9. #9
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 968
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 968
    Points : 59 663
    Points
    59 663
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Jlmat Voir le message
    Ben oui, le DataType avec valeur RAW me parait très ésotérique... Je peux traduire par données brutes mais bon... Et EMF?
    Je ne trouve pas de description...
    Là on sort un peu du cadre d'une FAQ Lazarus. https://learn.microsoft.com/en-us/op...0-5630d1e70879

    Citation Envoyé par Jlmat Voir le message
    Dans la version 2.2.4 de Lazarus, je ne trouve pas non plus les types suivant, j'ai pourtant mis les unités : ... ExtCtrls, Printers, LResources, PrintersDlgs, Types, StdCtrls... entre autres:
    PDev : TPrinterDevice;
    TmpDevMode : PDeviceMode;

    J'ai du mal à transposer mes codes Delphi en Lazarus car je passe beaucoup de temps à chercher les unités dans lesquelles se trouvent les variables ou la définition des types...
    ça serait utile dans la Faq, d'avoir un guide qui donne l'unité dans laquelle se trouve une variable, car si elle est n'est pas reconnue dans le programme, la touche F1 ne donne rien et la recherche sur Internet est fastidieuse...
    Par exemple, un index de tous les mots définition tels que https://lazarus-ccr.sourceforge.io/d...l/index-8.html

    Bon, c'est peut-être moi qui devient "gogole"
    Le paquetage printer4lazarus a-t-il été ajouté dans les dépendances du projet ?

  10. #10
    Membre averti
    Avatar de Jlmat
    Homme Profil pro
    Consultant en Ressources Humaines, Retraité passionné de programmation
    Inscrit en
    Avril 2008
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant en Ressources Humaines, Retraité passionné de programmation
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 320
    Points : 389
    Points
    389
    Par défaut
    Ha oui, c'est sûr! => Microsoft, c'est du bas niveau dans la programmation... Je regrette le temps du simple "printer... begindoc et enddoc...", je fouillais à ce niveau là avec le BPW de Borland, mais maintenant, je cherche des choses simples.
    J'espère que Lazarus ne va pas suivre la complexité de Embarcadero avec Delphi pour rester accessible aux passionnés de programmation...
    Microsoft donne :
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    typedef struct _DOC_INFO_1 {
       [string] wchar_t* pDocName;
       [string] wchar_t* pOutputFile;
       [string] wchar_t* pDatatype;
     } DOC_INFO_1;
    J'avais réussi à enlever la première erreur en déclarant un type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Type
      TPrinterDevice = class {type definition NOT interfaced by Printers.pas}
        Driver, Device, Port: string;
      end;
    Mais je n'ai pas résolu le reste, comme le PDeviceMode. J'avais penser à Travailler avec un handle, mais là, j'atteint mes limites... Trop de variables dont je ne connais pas les sources...
    Il doit me manquer une unité dans les déclarations...


    Le paquetage printer4lazarus a-t-il été ajouté dans les dépendances du projet ?
    Oui, le paquet est installé, il est dans la liste des paquets requis! L'erreur vient sur les références aux types TPrinterDevice et PDeviceMode;

    A+

  11. #11
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 968
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 968
    Points : 59 663
    Points
    59 663
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Jlmat Voir le message
    Ha oui, c'est sûr! => Microsoft, c'est du bas niveau dans la programmation... Je regrette le temps du simple "printer... begindoc et enddoc...",
    La classe Printer est déclarée dans l'unité TPrinter :
    (exemple d'impression du contenu d'un TMemo)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    procedure TfrmPrincipale.mnuFichierImprimerClick(Sender: TObject);
    (* impression du texte *)
    const
      CMARGEGAUCHE = 110;
      CMARGEHAUT = 110;
    var
      Li, LHauteur: Integer;
    begin
      if dlgImprimer.Execute then
        begin
          try
            Printer.Copies := dlgImprimer.Copies;
            Printer.BeginDoc;
            Printer.Canvas.Font.Name := mmoEditeur.Font.Name;
            Printer.Canvas.Font.Size := mmoEditeur.Font.Size;
            Printer.Canvas.Font.Color := mmoEditeur.Font.Color;
            LHauteur := CMARGEHAUT;
            for Li := 0 to (mmoEditeur.Lines.Count - 1) do
              begin
                Printer.Canvas.TextOut(CMARGEGAUCHE, Lhauteur, mmoEditeur.Lines[Li]);
                LHauteur := LHauteur + Round(1.2 * Abs(Printer.Canvas.TextHeight('I')));
                if LHauteur >= Printer.PageHeight then (* saut de page *)
                  begin
                    Printer.NewPage;
                    LHauteur := CMARGEHAUT;
                  end;
              end;
          finally
            Printer.EndDoc;
          end;
        end;
    end;

  12. #12
    Membre averti
    Avatar de Jlmat
    Homme Profil pro
    Consultant en Ressources Humaines, Retraité passionné de programmation
    Inscrit en
    Avril 2008
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant en Ressources Humaines, Retraité passionné de programmation
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 320
    Points : 389
    Points
    389
    Par défaut
    Citation Envoyé par Alcatîz Voir le message
    La classe Printer est déclarée dans l'unité TPrinter :
    (exemple d'impression du contenu d'un TMemo)
    Ok Alcatiz, c'est ce que j'avais fait en premier; mais j'obtenais une erreur :

    Nom : Erreur1.jpg
Affichages : 260
Taille : 32,5 Ko

    le fonction printers.pas concernée est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function TPrinter.GetPrinting: Boolean;
    begin
      result := (pfPrinting in fFlags);
    end;
    J'ai donc refais une appli juste avec le Memo et l'unité Printers et là, ça marche!
    Je dois avoir un conflit dans les déclarations de ma fiche ou de mon programme principal... Je fais un essai et vous tiens au courant

  13. #13
    Membre averti
    Avatar de Jlmat
    Homme Profil pro
    Consultant en Ressources Humaines, Retraité passionné de programmation
    Inscrit en
    Avril 2008
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant en Ressources Humaines, Retraité passionné de programmation
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 320
    Points : 389
    Points
    389
    Par défaut
    Citation Envoyé par Jlmat Voir le message

    J'ai donc refais une appli juste avec le Memo et l'unité Printers et là, ça marche!
    Je dois avoir un conflit dans les déclarations de ma fiche ou de mon programme principal... Je fais un essai et vous tiens au courant
    Je vais plus vous ennuyer! Je sais que ça n'est pas ici qu'on résout les erreurs de programmation.

    Mais je voulais vous signaler la cause de mon erreur, ça peut quand même servir à d'autres:
    j'avais déclaré et initialisé à Nil une variable au début de la fiche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //var
    // Printer : TPrinter = nil;
    Merci Alcatîz pour ton aide

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/04/2014, 21h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo