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

Delphi Discussion :

Migration VB6/Delphi, Pb avec fonte


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de AL1986
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 434
    Par défaut Migration VB6/Delphi, Pb avec fonte
    Bonjour,
    Je bosse actuellement sur un projet de migration d'une application VB6 à Delphi. Je n'ai jamais travaillé ni avec VB6 ni avec Delphi auparavant. J'ai effectuer la migration du code, en utilisant un outil de migration mais il y a plusieurs erreurs à corriger. Parmi celles-ci, des problèmes avec Printer. En effet, l'objet Printer n'était plus reconnu, il suffisait d'ajouter à la clause uses du fichier .pas correspondant l'unité Printers. Le problème qui se pose maintenant est que je ne sais pas comment récupérer le nom de la police courante. Dans le code VB le bloc d'instructions est :

    Set O = comfBouton.Dialogue
    With O
    .Flags = &H2&
    .CancelError = True
    On Error GoTo ExitSub
    .ShowFont
    On Error GoTo ErreurPolice
    Printer.FontName = .FontName
    lPolice = .FontName

    End With

    Après migration le code Delphi ressemble à :

    O := comfBouton.Dialogue;
    with O do begin
    Flags := $2;
    CancelError := True;
    try
    ShowFont;
    try
    Printer.FontName := FontName;
    lPolice := FontName;

    end;
    end;
    end;

    Cependant aucun objet ne semble être reconnu par Delphi à part Printer (car j'ai ajouté Printers à uses).
    Je n'arrive pas à trouver l'équivalent de fontname (et autres) dans Delphi, en fait j'ai trouvé Name qui est une propriété de la classe Tfont de l'unité Graphics mais je ne vois pas comment faire le lien avec Printer.
    Si quelqu'un voit comment il faut faire pour avoir un code équivalent qu'il me transmette son savoir. Merci à tous.
    Ali

  2. #2
    Membre Expert
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 539
    Billets dans le blog
    10
    Par défaut
    Poses un composant FontDialog (Onglet dialogues) sur ta fiche et ensuite regardes dans l'exemple contenu dans l'aide.

    Par contre l'impression doit contenir des "begindoc" et autres. Je ne sais pas si tu es familier avec ce genre de choses.

  3. #3
    Membre chevronné Avatar de AL1986
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 434
    Par défaut
    Le composant FontDialog permet de manipuler la fonte de la fiche (d'après ce que j'ai compris). Cependant, je voudrai selctionner la police d'impression des documents grâce à un menu déroulant, mettre à jour la police de l'imprimante (instruction : Printer.FontName = comfBouton.Dialogue.FontName) et récupérer cette valeur dans une variable (instruction : lPolice = comfBouton.Dialogue.FontName) . Merci

  4. #4
    Membre Expert
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 539
    Billets dans le blog
    10
    Par défaut
    Non tu peux utiliser cette fonte ou tu veux. Dans le cadre de ta demande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      if FontDialog1.Execute then
        Printer.Canvas.Font.Name := FontDialog1.Font.Name;

  5. #5
    Membre chevronné Avatar de AL1986
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 434
    Par défaut
    Merci pour ta réponse, je vais essayer d'appliquer ce que tu m'as dit

  6. #6
    Membre chevronné Avatar de AL1986
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 434
    Par défaut
    En ce qui concerne le bout de code de mon premier message, dans le code vb on a utilisé le contrôle commondialog, sa propriété fontname et ses méthodes showfont et cancelerror. La conversion l'a remplacé par un contrôle de type topendialog qui n'a pas les même propriétés. Si je le remplace par le contrôle fontdialog je pourrai récupérer le nom de la fonte mais je n'arrive pas à trouver d'équivalent aux deux fonctions. Si quelqu'un connaît un autre type qui ce rapproche plus de commondialog ou bien des méthodes équivalentes à showfont et cancelerror dans les types tfontdialog et/ou topendialog qu'il n'hésite pas. Merqui.
    Ali

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. migration vb6/delphi, form invisible
    Par AL1986 dans le forum Delphi
    Réponses: 4
    Dernier message: 17/07/2007, 15h33
  2. QuickReport (dans Delphi 7) avec QRDBText et IBQuery1!!!!!
    Par yvescollet dans le forum Bases de données
    Réponses: 3
    Dernier message: 27/09/2004, 00h56
  3. [VB6] [ADO] Problème avec recordcount
    Par MASSAKA dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 22/01/2003, 11h45
  4. [VB6] [Interface] Grille avec combobox
    Par khany dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 15/01/2003, 09h55
  5. Réponses: 3
    Dernier message: 18/11/2002, 16h36

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