|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre régulier
![]() Jean Retraité Inscription : juillet 2008 Messages : 222 ![]() |
Bonjour,
Je suis sous linux fedora 16 et cherche à comprendre comment dialoguer dans une application avec une imprimante pour cela, je cherche à comprendre comment fonctionne l'exemple du composant printers/samples/dialog/selectprinter.lpi et son unité frmselprinter.pas dont ci-dessous la partie que je cherche à analyser. Code :
Code :
Mais si j'ai compris que la ligne Case Orientation of appel aussi l'unité Printers je n'arrive pas à lire la valeur de résultat dans l'unité appelante sauf erreur celle-ci est de type TPrinterOrientation. Comment afficher de résultat dans un Edit.Text et autre question en cherchant les info de l'unité TPrinter je trouve un type déclaré en virtual comment lire ou afficher ce type de données dans une fiche. Merci d'avane |
||||
|
|
00
|
|
|
#2 | |||
|
Expert Confirmé
![]() ![]() |
Bonjour,Comme ceci, je dirais :
Code :
Citation:
C'est une notion de la programmation orientée objet. Le sujet étant vaste, je vous renvoie aux explications proposées par Frédéric Beaulieu dans son Guide Pascal et Delphi : Surcharge et redéfinition des méthodes d'une classe sur ce site même.
__________________
Philippe. |
|||
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Inscription : septembre 2009 Messages : 980 ![]() |
Printer est un objet qui permet de piloter l'imprimante par défaut ou séléctionnée actuellement dans ... Printer.
donc Printer = imprimante par défaut ou séléctionnée. Printer est un objet créé automatiquement par l'utilisation de l'unité d'impression. Printers (with sur Printer) est la liste des imprimantes installées sur le système. Printers = Printer.Printers (liste) Orientation c'est l'orientation de la page (paysage, portrait par exemple) c'est une propriété qui appartient a Printer (Printer.Orientation) donc renverra l'orientation par défaut de l'imprimante en cour d'utilisation.
__________________
[ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ] Ma messagerie n'est pas la succursale du forum... merci! |
|
|
00
|
|
|
#4 | ||
|
Membre régulier
![]() Jean Retraité Inscription : juillet 2008 Messages : 222 ![]() |
Merci Philippe,
Pour la seconde partie de la réponse je vais lire le sujet proposé. Mais pour la première partie la réponse est semblable à celle de l'exemple, selon la réponse la boucle case donne un résultat déjà préparé ce que je voudrais c'est pouvoir lire la réponse et la mettre en forme pour l'afficher comme je peux le faire avec le nom de l'imprimante, donc depuis l'unité d'appel lire la valeur Result de la function de l'unité Printers et être capable si nécessaire de la convertir comme j'ai réussi à le faire avec le nom de l'imprimante comme ci-dessous Code :
Dans ce cas MNAME est le résultat de l'appel de la function Code :
function TPrinter.GetPrinters: TStrings; dans l'autre cas l'appel est Code :
function TPrinter.GetOrientation: TPrinterOrientation; J'espère avoir été plus clair. A+ |
||
|
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() Inscription : septembre 2009 Messages : 980 ![]() |
TPrinterOrientation et un ensemble (SET)
pour pouvoir le lire, contrairement a TPrinters qui est un TStrings (liste de string) il faut une table de convertion de nom : Code :
__________________
[ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ] Ma messagerie n'est pas la succursale du forum... merci! |
||
|
|
00
|
|
|
#6 | ||
|
Membre régulier
![]() Jean Retraité Inscription : juillet 2008 Messages : 222 ![]() |
Merci Dr Who pour cette explication mais ce qui me dérange c'est que si je fait un pas avec la touche F7 j'arrive sur la fonction
Code :
Mauvais raisonnement ? A+ |
||
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Inscription : septembre 2009 Messages : 980 ![]() |
non parce que DoGetOrientation doit être Protected et GetOrientation doit être private.
Donc tu ne peux pas les avoir tout les deux, en publique, tu doit utiliser la propriété Orientation.
__________________
[ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ] Ma messagerie n'est pas la succursale du forum... merci! |
|
|
10
|
|
|
#8 |
|
Membre régulier
![]() Jean Retraité Inscription : juillet 2008 Messages : 222 ![]() |
Bonsoir Dr Who,
Si j'ai bien compris il faut connaître les réponses possibles pour pouvoir créer la liste qui servira ensuite au transcodage des réponses de la fonction pour les afficher ou les utiliser dans l'unité d'appel, ce n'est pas comme l'interrogation du champ du base de données ? |
|
|
00
|
|
|
#9 | ||
|
Membre éprouvé
![]() Inscription : janvier 2010 Messages : 223 ![]() |
Si le but est d'obtenir une représentation sous forme de chaîne d'une valeur d'un type énuméré il est aussi possible d'utiliser WriteStr.
Code :
|
||
|
|
00
|
|
|
#10 | ||
|
Membre régulier
![]() Jean Retraité Inscription : juillet 2008 Messages : 222 ![]() |
Merci pour vos réponses qui m'ont permis d'enrichir mes informations de petit programmeur, mais je crois avoir chercher à compliquer mon besoin d'information.
Je m'explique Dans une séquence Case toto of 1: instructions1 2: instructions2 end; la variable toto doit être déclarée avant et sauf erreur doit être de type ordinal et surtout pas string prenons un exemple où toto est déclaré en type integer, si aprés la séquence case on cherche à connaître la valeur de toto il suffit d'utiliser une conversion de toto pour la rendre affichable dans un edit ou label, etc. Dans le cas qui m'occupe la séquence case appelle une fonction dans une autre unité et celle-ci pour ce que j'ai compris répond par la valeur Result de issue Code :
A+ |
||
|
|
00
|
|
|
#11 |
|
Membre régulier
![]() Jean Retraité Inscription : juillet 2008 Messages : 222 ![]() |
Merci pour vos réponses qui m'ont aiguillés pour rechercher différentes solutions et je suis retourné vers ma documentation Delphi 4.
Le résultat de mes recherches c'est que la solution proposée par Dr Who suppose de connaître les réponses attendues et leur ordre de classement, une petite remarque pour les novices comme moi le premier signe égal ' = ' doit être remplacé par 2 points ' : '. Donc je vais clôturer ce post. Merci A+ |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com