|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() Tarek KoudaDéveloppeur informatique Inscription : décembre 2012 Messages : 72 ![]() |
bon soir a tt le monde
voisi un petite program avec un autre langage de programation (clipper) A = 5 // je declare une variable numerique A et sa valeur 5 B = 'A' //je declare une variable alphanurerique B qui a la valeur 'A' juste pour l'instant tt est posible en delphil la commande suivante est C = &B en appel '&' un macro en clipper il signifie que C recoit la valeur d'une variable , le nom de cette variable se trouve dans une autre variable qui est B dans notre cas, c'est a dire C recoit 5 la question est: ést ce que ça est posible en delphi..! |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() Paul TOTHFreelance Inscription : novembre 2002 Messages : 4 416 ![]() |
pour faire simple, non...de façon moins directe c'est envisageable.
le langage Pascal est compilé en binaire à un niveau ou le nom des variables n'a plus d'existence. A devient une position en mémoire qui n'a qu'une adresse et aucun nom. par contre les classes objets avec leurs propriétés bénéficient des Run Time Type Informations (RTTI) qui permettent de retrouver la propriété "A" d'un objet. C'est ce que fait l'IDE Delphi quand on défini la propriété "Caption" d'un objet par exemple, c'est bien le nom "Caption" qui est stocké dans le DFM et GetProperty permet de la retrouver.
__________________
Developpez.com: Mes articles, forum FlashPascal Entreprise: Execute SARL Produits : UPnP, RemoteOffice, FlashPascal Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5% |
|
11
|
|
|
#3 |
|
Membre expérimenté
![]() Inscription : janvier 2007 Messages : 996 ![]() |
Hello,
si je puis me permettre, n'ayant pas les connaissances de Paul Toth, juste une petite remarque, je crois que dans ton cas, tarekk73, c'est possible mais il suffit que B soit déclaré comme un simple pointeur. Ensuite tu affecte à B l'adresse de la variable A. Pour finir, tu pourras affecter à C la valeur contenue à l'adresse stockée dans B. Il faudra surement aussi "caster" ce que tu récupèreras du pointeur B (afin que Delphi te retourne le format attendu (integer ou byte ici, au choix)). J'espère que c'est assez clair... |
|
|
10
|
|
|
#4 | |||
|
Expert Confirmé Sénior
![]() ![]() Paul TOTHFreelance Inscription : novembre 2002 Messages : 4 416 ![]() |
Citation:
tu parles de ceci: Code :
__________________
Developpez.com: Mes articles, forum FlashPascal Entreprise: Execute SARL Produits : UPnP, RemoteOffice, FlashPascal Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5% |
|||
|
10
|
|
|
#5 | |||
|
Membre expérimenté
![]() Inscription : janvier 2007 Messages : 996 ![]() |
Citation:
|
|||
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé Sénior
![]() ![]() Paul TOTHFreelance Inscription : novembre 2002 Messages : 4 416 ![]() |
ceci dit, après il est toujours possible d'ajouter des rustines
Code :
__________________
Developpez.com: Mes articles, forum FlashPascal Entreprise: Execute SARL Produits : UPnP, RemoteOffice, FlashPascal Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5% |
||
|
10
|
|
|
#7 |
|
Membre émérite
![]() Eric BARBIERDéveloppeur informatique Inscription : mars 2002 Messages : 592 ![]() |
Avis perso : les constructions exotiques de ces vieux langages de programmation n'ont en général pas beaucoup d'intérêt. Il vaut mieux comprendre l'intention du code et tenter de la traduire en exploitant au mieux les possibilités du langage.
@+
__________________
M E N S.A G I T A T.M O L L E M
|
|
|
20
|
|
|
#8 |
|
Membre émérite
![]() Eric BARBIERDéveloppeur informatique Inscription : mars 2002 Messages : 592 ![]() |
Je précise "les constructions exotiques de ces vieux langages de programmation n'ont en général plus beaucoup d'intérêt. Il vaut mieux comprendre l'intention du code et tenter de la traduire au mieux avec les possibilités du nouveau langage, comme Delphi.
__________________
M E N S.A G I T A T.M O L L E M
|
|
|
00
|
|
|
#9 | ||
|
Membre éprouvé
![]() Inscription : janvier 2009 Messages : 582 ![]() |
Citation:
Comme vous l'avez constaté. Mais pourquoi ne fait-il pas juste C=B ? Ou alors je ne comprend rien à cette heure-ci^^ Tout a fait d'accord avec Eric : Citation:
__________________
Cliquez ici et reprenez le pouvoir ! A bas IE !, Google, et le pistage du net, testons DuckDuckGo.com Lords Of The Realm II Download : Lords of the realm 2 Infos en anglais :Ici |
||
|
|
01
|
|
|
#10 | |
![]() ![]() Développeur informatique Inscription : mars 2005 Messages : 4 993 ![]() |
Citation:
B contient le nom d'une variable (dans ce cas c'est A) et quand il fait appel à C=&B cela doit lui retourner C = A donc C = 5.
__________________
Modérateur Delphi Combattez la brute Aucune réponse aux sollicitations techniques par MP Le guide du bon forumeur :
[Projet en cours] Des unités pour faciliter l'utilisation d'indy : EasyIndy 1.3 |
|
|
|
20
|
|
|
#11 | ||||
|
Membre Expert
![]() ![]() Roland ChastainInscription : décembre 2011 Messages : 687 ![]() |
Citation:
J'ai regardé avec intérêt ton exemple mais je n'ai pas pu le compiler. Citation:
__________________
L'Art est long et le Temps est court. |
||||
|
|
00
|
|
|
#12 |
|
Expert Confirmé Sénior
![]() Développeur C++\Delphi Inscription : juillet 2006 Messages : 9 190 ![]() |
Le TInteger est mentionné comme type personnalisé dans E2020: Type object ou class requis (Delphi)
TInteger est peut-être un type de Paul dans ses lib perso car AddObject n'accepte pas un pointer non typé mais un TObject Avez-vous remarqué que tarekk73 a posé la question le 02/01/2013 et n'est pas revenu depuis 4 mois pour nous lire !
__________________
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y ! Attention Troll Méchant ! ![]() "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer ! L'ignorance n'excuse pas la médiocrité ! L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde) Il faut avoir le courage de se tromper et d'apprendre de ses erreurs Halte à la ségrégation des Cinémas, VO sur Paris, VF en Banlieue, Abonnement résilié ! |
|
|
10
|
|
|
#13 | |
|
Membre éprouvé
![]() Inscription : janvier 2009 Messages : 582 ![]() |
Citation:
D'où ma question...
__________________
Cliquez ici et reprenez le pouvoir ! A bas IE !, Google, et le pistage du net, testons DuckDuckGo.com Lords Of The Realm II Download : Lords of the realm 2 Infos en anglais :Ici |
|
|
|
00
|
|
|
#14 | |
|
Membre habitué
![]() Tarek KoudaDéveloppeur informatique Inscription : décembre 2012 Messages : 72 ![]() |
bon jour
Citation:
c'est juste une petite question qui ma passer dans la tête quant j'ai fait une petite comparaison entre deux langage de programmation et pour connaitre les capacités de mon langage de programmation préfére Delphi merci mes amies pour tout vos réponses |
|
|
|
00
|
|
|
#15 |
|
Expert Confirmé Sénior
![]() ![]() Paul TOTHFreelance Inscription : novembre 2002 Messages : 4 416 ![]() |
c'est très probablement une erreur de saisie
AddObject attend un TObject, c'est donc TObject qu'il faut lire et non TInteger
__________________
Developpez.com: Mes articles, forum FlashPascal Entreprise: Execute SARL Produits : UPnP, RemoteOffice, FlashPascal Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5% |
|
00
|
|
|
#16 |
![]() ![]() Inscription : septembre 2008 Messages : 2 856 ![]() |
@ est un pointeur non typé si le contrôle de type est désactivé {$T-} et dans ce cas, AddObject('a', @a) fonctionne puisqu'un pointeur non typé est compatible avec tous les types de pointeurs
|
|
|
10
|
|
|
#17 |
|
Expert Confirmé Sénior
![]() Développeur C++\Delphi Inscription : juillet 2006 Messages : 9 190 ![]() |
En fait, j'ai introduit "pointeur non type" mais j'aurais du plutôt dire 'pointeur non objet"
Car AddObject n'accepte que du TObject, donc que ce soit 'pointer non type' ou 'pointeur typé int', ils seront refusés peu importe l'option ! non ?
__________________
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y ! Attention Troll Méchant ! ![]() "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer ! L'ignorance n'excuse pas la médiocrité ! L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde) Il faut avoir le courage de se tromper et d'apprendre de ses erreurs Halte à la ségrégation des Cinémas, VO sur Paris, VF en Banlieue, Abonnement résilié ! |
|
|
00
|
|
|
#18 |
![]() ![]() Inscription : septembre 2008 Messages : 2 856 ![]() |
Avec {$T-}, peu importe ce qui se cache derrière. A partir du moment où c'est un pointeur, le compilateur est content
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com