Equivalences VB6 => Delphi (Pascal)

Résolu
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 15 mai 2007 à 14:02
piratos3 Messages postés 13 Date d'inscription lundi 30 juillet 2007 Statut Membre Dernière intervention 6 février 2008 - 6 févr. 2008 à 18:05
Salut, les delphistes.
Je poste une question chez vous car il semble que deplhi soit le langage de la communauté CS le plus proche de Pascal (je bosse avec le Pascal D'innoSetup)
Après avoir cherché sur le site et après ne rien avoir trouvé, j'aurais plusieurs petites questions à vous poser
aller je me lance.
Quelqu'un pourrait il m'indiquer (lien ou petit exemple)<ol><li>Existe il un equivalent à la boucle For Each X In X.Col En Delphi(Pascal) enfin j'espère que cela existe sinon je suis mal
</li><li>Existe un type de variable Date ?  (dans le but de comparer plusieurs
Date) car je n'ai pas trouver non plus de TDateTime, TDate ou TTime
comme j'ai pu le lire ici (pas reconnu par le compilateur InnoSetup.</li><li>Pourrait on me mettre (et m'expliquer) la syntaxe correcte pour un IF END IF; IF ELSE END IF, FOR .. NEXT</li></ol>J'ai tout de même trouver une FAQ interressante pour Pascal mais je ne trouve rien de satisfaisant pour les 3 points ci dessus.
D'avance un grand merci à ceux qui pourront m'apporter un élément de réponse et/ou un lien approprié.
@+: Ju£i?n
Pensez: Réponse acceptée

14 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
16 mai 2007 à 09:19
Ne te laisse pas impressionner jrivet : le pascal est presque aussi simple que le vb6 !

1. Heu bah non pas de foreach en pascal il me semble (Cependant, peut être qu'en Delphi pour dotnet...)

C'est assez chiant quand on fait du COM et qu'il faut parcourir une collection d'ailleurs...

Pour boucler sur un tableau dont on ne connais pas les dimensions, on utilise Low et High.

for i:= Low(tab) to High(tab) do
begin
  tab[i]:= truc;
end;

On ne peut pas choisir le pas (step du VB6), mais on peut faire du downto pour parcourir dans l'autre sens.

3.

Pour le ifs tout ça, ils contiennent soit des groupes d'instructions (begin ... end), soit une seul instruction. Les ; servent de séparateurs d'instruction, un peu comme les passage à la ligne en vb6. On ne met pas de ; avant un else.

Quelques exemples de if :

if condition then
  instruction;

if condition then
begin
  instruction 1;
  instruction 2;
end;

if condition then
begin
  instruction 1;

  instruction 2;

end
else
begin
  instruction 1;

  instruction 2;
end;

if condition then

  instruction 1

else

  instruction 2;

if condition then
  instruction 1
else if conditionaussi then
  instruction 2;
3
cs_pers Messages postés 38 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 9 décembre 2009
15 mai 2007 à 14:50
Salut

je poste rarement ici vu tous les codes et astuces disponibles qui sont proposés ici
cependant je te propose le lien suivant même si ici c'est dispo tout autant

http://fbeaulieu.developpez.com/guide/sommaire.html

@+
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
15 mai 2007 à 14:53
Re,
Merci je vais aller regarder çà.
Je laisse le topic non résolu au cas où d'autres passeraient par là

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_pers Messages postés 38 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 9 décembre 2009
15 mai 2007 à 15:02
re salut

j'ai oublié le plus important : l'excellent http://delphi.about.com/

c'est plus fourni en tous cas

@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
15 mai 2007 à 15:57
Salut,
> [auteurdetail.aspx?ID=404584 Loda]  Merci pour tes liens et pour avoir pris de ton temps pour répondre .
Arghhh, les exemples Inno Setup je les oublies tout le temps ceux là (merci)
Merci pour le TDate.

Je sais que lire et comprendre est la meilleure chose pour apprendre. je posais simplement quelques petites questions rapides auxquelles même après quelques temps passé à chercher sur Google et DelphiFr sans oublier F1 dans Inno Setup, je n'avais rien trouvé qui puisse m'aider. quant aux tutoriaux je les avait lu.

J'étais même aller sur développez. comme quoi quant on ne sais pas ou chercher, cela reste dûr de trouver facilement.

Je pense que je vais finir par me faire un EXE vite en VB6 et je l'appellerai depuis InnoSetup.
Je voulais simplement apprendre plus pas pour aujourd hui.
En tout cas merci

En attendant d'autres réponses. Google is my friend
@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_Loda Messages postés 814 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 30 juillet 2009 3
15 mai 2007 à 16:10
re,

content que cela t'aide.

"Je sais que lire et comprendre est la meilleure chose pour apprendre."
j'utilise presque toujours les mêmes  liens (et le text qui vas avec) pour les débutants. désolé si j'ai l'air d'inciter. Cela n'est pas mon but.

si t'as une question sans réponse, revient !

bon code,

Loda
<hr size="2" width="100%" />Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
16 mai 2007 à 09:21
Salut,
Merci (encore ) [auteurdetail.aspx?ID=464943 rt15]

@+: Ju£i?n
Pensez: Réponse acceptée
0
piratos3 Messages postés 13 Date d'inscription lundi 30 juillet 2007 Statut Membre Dernière intervention 6 février 2008
4 févr. 2008 à 18:10
AIDEZ MOI SVP ET MERCI

je suis debutant en DELPHI et j'ai un code fait en VB que j'aime bien traduire en delphi
j'ai fait un edit1 edit2 et un bouton ok
je rentre la densite dans edit1 ok je recois la dose dans edit2
voila le code en VB
Dim d(10), t(10) 'd signifie dose et t signifie densité

Dim j, s ' les compteurs

' Tsn densité sous etain et Dgamma dose
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??> 

d(0) = 0

d(1) = 25

d(2) = 50

d(3) = 100

d(4) = 200

d(5) = 400

d(6) = 800

d(7) = 1000

d(8) = 2000

d(9) = 4000

d(10) = 8000

 

t(0) = 0

t(1) = 6

t(2) = 13

t(3) = 22

t(4) = 45

t(5) = 86

t(6) = 119

t(7) = 166

t(8) = 263

t(9) = 356

t(10) = 453
Tsn InputBox("ENTREZ <?xml:namespace prefix st1 ns = "urn:schemas-microsoft-com:office:smarttags" /??><st1:personname w:st="on" productid="LA DENSITE F">LA DENSITE F</st1:personname>", "CALCUL GAMMA", 0)

Select Case Tsn

Case 0 To 5

s = 1

Case 6 To 12

s = 2

Case 13 To 21 '74 to 137

s = 3

Case 22 To 44

s = 4

Case 45 To 85

s = 5

Case 86 To 118

s = 6

Case 119 To 165

s = 7

Case 166 To 328

s = 8

Case 329 To 355

s = 9

Case 356 To 453

s = 10

Case Is > 453

Exit Function

End Select

MsgBox s

Select Case s

Case 1

Dgamma = ((d(s) - d(s - 1)) / (t(s) - t(s - 1)) * (Tsn)) + d(s - 1)    //   c'est la formule de calcul 1

Case 2 To 7

Dgamma = (((d(s) - d(s - 1)) / (t(s) - t(s - 1)) * (Tsn)) + (d(s - 1) - ((d(s) - d(s - 1)) / (t(s) - t(s - 1))) * (t(s - 1))))    // c'est la formule de calcul 2

Case 8, 9

Dgamma = d(s - 1) * Log(1 - ((2 * t(s - 1) - t(s))) * Tsn / (t(s - 1) ^ 2)) / Log(t(s) / t(s - 1)) - 1 // c'est la formule de calcul 3

End Select

DG = Dgamma(f)

MsgBox DG & " " & "mrem"
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
5 févr. 2008 à 09:25
Salut,
> [auteur/PIRATOS3/1118502.aspx piratos3]:Meme si le titre de ton problème pourrait être celui que j'ai donné à mon topic, il serait mieux d'ouvrir (si ne pas déjà fait) un nouveau Topic.
Celui ci etant résolu, il ne sera vu que par peu de personne.

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
5 févr. 2008 à 10:10
Même remarque que jrivet + fait attention à l'indentation si tu reposte.


Pour remplacer le select case, utilise un case of.


Tape case, met ton curseur dedans, et appuis sur F1 pour avoir de l'aide.


Pour les tableaux, c'est style :

t: array [0..10] of Integer;


:= pour l'affectation, ; à la fin des instructions.
0
piratos3 Messages postés 13 Date d'inscription lundi 30 juillet 2007 Statut Membre Dernière intervention 6 février 2008
5 févr. 2008 à 12:15
MERCI A VOUS DEUX
pour jrivet j'ai pas bien comprit ce qu'est topic je suis nouveau ici merci de votre aide en tout cas a vous aussi rt15 
0
piratos3 Messages postés 13 Date d'inscription lundi 30 juillet 2007 Statut Membre Dernière intervention 6 février 2008
5 févr. 2008 à 12:23
je suis arrive a 70%a faire marcher mon aplication
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
5 févr. 2008 à 13:30
Ce que jrivet voulais dire c'est que tu as posé ta question dans une question existante (Posée par lui).


Cela a envoyé un mail à lui et à ceux qui ont déjà posté dans ce topic
(topic = Question + les réponses à cette question. Synonyme de
thread.), ce qui explique le fait qu'on aient travaillé sur ton
problème.


Mais contrairement à certains forum, le système de up ne fonctionne pas
: ce topic est resté enterré dans les archives : aucun membre à part
nous n'avons lu ta question.


Il fallait faire forums -> poser une question. Toute la communauté ce serait intéressé à ton problème
0
piratos3 Messages postés 13 Date d'inscription lundi 30 juillet 2007 Statut Membre Dernière intervention 6 février 2008
6 févr. 2008 à 18:05
merci a vous deux ont lisant en haut juste a quelque centimetre du message ""participer a cette echange"" j'ai comprit bien que je devait etre sur le forum qu'ici mais merci en tout cas Mr rt15 et j'espêre vous voir sur le forum a vous aussi Mr jrivet
0
Rejoignez-nous