Dreuteu
Messages postés44Date d'inscriptionsamedi 16 octobre 2004StatutMembreDernière intervention28 février 2006 13 févr. 2005 à 12:17
... Bizarre... ca ne fonctionne pas sous la 8, et j'ai du supprimer pas mal de trucs pour compiler sous la 7 (et ca marche presque pas du tout...)
Tant pis... j'ai fait la meme avec les composants Indy...
SlunBreak
Messages postés10Date d'inscriptionmardi 28 décembre 2004StatutMembreDernière intervention22 avril 2005 13 févr. 2005 à 11:52
Salut,
J'utilise delphi 6... mais je n'ai pas le souvenir d'avoir utilisé de TidText. Quant au TidGauge je l'ai eu directement avec delphi 6 donc ca doit venir de ta version.
SB
Dreuteu
Messages postés44Date d'inscriptionsamedi 16 octobre 2004StatutMembreDernière intervention28 février 2006 11 févr. 2005 à 15:53
Hu... je pense que ca vient de moi, mais je ne peux rien faire de ta source...
Je suis sous Delphi 8, et il me sort que la moitié des uses sont inconnues, et il refuse pas mal de Composants (notamment TidText et TidGauge)...
C'est vraiment moi ou on peut m'expliquer?
Dreuteu
Pourtant le code est attirant... :S
SlunBreak
Messages postés10Date d'inscriptionmardi 28 décembre 2004StatutMembreDernière intervention22 avril 2005 30 déc. 2004 à 17:38
Voila, c'est mis à jour ;)
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 201014 29 déc. 2004 à 19:03
au fait je pense a un truc pour ta gauge, en fait tu dois compter combien d'étapes tu as dans ta procedure jusqu'a l'envoie du message. c ce chiffre que tu dois mettre dans le "max" de ta gauge. puis par la suite tu fais juste MaGauge.progress := MaGauge.progress+1; (je ne sais plus si la procedure ~.StepIp; existe sur une gauge)
aussi utilise toujours StrToIntDef() a la place de StrToInt() quand tu n'est pas sur que le contenu est un chiffre.
Logikement avec la procedure qui est dans ton OnKeyPress, ça doit fonctionner, mais StrToIntDef() est plutot pas mal, je l'exeplique en 2 mots :
String To Integer Default, si une exception de type co,version survient, la fonction renvoie la valeur par défaut. exemple :
si edit1.text vaut "01truc" et que je fais StrToIntDef(edit1.text,0) alors je vaix recevoir le 0 car il y a erreur.
encore une chose :)
Memo2.Lines.Add('Initialisation du port 25...');
mais tu proposes de changer le port 25, donc si je mets le port 33, ça me dit la meme chose ? pas logique !
je propose donc :
Memo2.Lines.Add('Initialisation du port '+LeEditDuPort.text);
mais peso je prefere avec la fonction Format(); ce qui donne
Memo2.Lines.Add(Format('Initialisation du port %s',[LeEditDuPort.text]);
regarde l'aide de la fonction format si tu veux :)
voila, a bientot ! j'attends la MAJ avant meme de telecharger :p
ni69
Messages postés1418Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention 5 juillet 201012 29 déc. 2004 à 17:40
Un autre conseil : enlève les fichiers de sauvegarde ~pas, ~dfm et ~dpr... ils ne servent à rien :-)
Moi aussi j'attend pour noter que le code soit un peu plus lisible ;-)
En tout cas bravo !
SlunBreak
Messages postés10Date d'inscriptionmardi 28 décembre 2004StatutMembreDernière intervention22 avril 2005 29 déc. 2004 à 17:39
:) Merci pour tous ces conseils ! Je modifierai tout ca... Il y a juste une chose que j'ai peur de ne pas comprendre, c est :
"la procedure du bouton1 est tout simplement ENORME :| decoupe la en morceaux"
la découper de quelle maniere ? désolé si c'est une question bete...
Encore merci :)
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 201014 29 déc. 2004 à 16:55
hello,
je viens de regarder le unit1.pas, le code est tres "clair" :D tres eparpillé mais bon au moins c lisible.
qqs astuces/conseils :
- NOMME TES COMPOSANTS :( en lisant le .pas je ne sais pas a quoi correspond le edit4 ou la checkbox2 ou le memo2 ... c'est tres tres important si tu veux que ta source sois utile, sinon autent ne balancer que l'exe :/
- ne repete pas form1 a chaque fois, surtout que justement tu ne le repetes pas toujours ! alors pourquoi le mettre ?
- la procedure du bouton1 est tout simplement ENORME :| decoupe la en morceaux ou reduit le nb de lignes de blanc
- Form1.Gauge1.Progress := 91;
Form1.Gauge1.Progress := 92;
Form1.Gauge1.Progress := 93;
Form1.Gauge1.Progress := 94;
Form1.Gauge1.Progress := 95;
Form1.Gauge1.Progress := 96;
Form1.Gauge1.Progress := 97;
Form1.Gauge1.Progress := 98;
Form1.Gauge1.Progress := 99;
Form1.Gauge1.Progress := 100;
c'est quoi tout ça ? je veux dire, je vois bien que tu fait augmenter la gauge mais euh, c pas propre du tout ! en plus sans l'executer je suis sur ke 20 pas (steps) de gauge se font en une fraction de seconde et ke c invisible a l'oeil.
si tu veux ke ça sois visible, il faudrait faire qqchose comme :
for i:=0 10 do
begin
gauge1.progress := gauge1.progress + 1;
sleep(10);
end;
et là apres chak mouvement de gauge l'appli dors 10 millisecondes, mais ceci fait donc ralentir le fonctionnement, tout ça pour une "fausse" gauge :/ c moyen non ?
- pour le nombre de message a envoyer (vide = 1) je propose au lieu de ça :
**************************
if Form1.Edit5.Text = '' then
begin
Memo2.Lines.Add('Aucun nombre donné, initialisation au nombre par défaut (1)');
Memo2.Lines.Add('Tentative d''envoi...');
IdSMTP1.Send(IdMessage1);
end
else begin
Memo2.Lines.Add('Tentative d''envoi...');
i := Form1.Edit5.Text;
for u := 1 to i do
IdSMTP1.Send(IdMessage1);
end
******************************
je propose ça :
************************
Memo2.Lines.Add(Format('Nombre de mails à envoyer : %d'),[StrToIntDef(Edit5.Text,1)]));
for i:=0 to StrToIntDef(Edit5.Text,1) do
begin
Memo2.Lines.Add(Format('Tentative d''envoi du message n°%d',[i]));
IdSMTP1.Send(IdMessage1);
end;
ensuite
- supprimer Edit5Change : c vide
- pourquoi creer 2 procedures identiques ??
> Edit5KeyPressed et Edit65KeyPressed ! donne leur a toute les deux la meme procedure dans l'inspecteur de proprietes
mais avant toute modif : NOMME TES COMPOS !
quand je lis
"Form1.Radiobutton2.Enabled := False;
Form1.Button2.Enabled := False;
Form1.Radiobutton1.Enabled := False;
Form1.Edit3.Text := '';
Form1.Edit3.Enabled := False;"
je ne comprends rien !
alors que par exemple :
"edit_mail.text" ou "checkbox_envoyer" ou "memo_debug" ou "radio_avecfichier" c quand meme plus parlant !
je ne note pas encore :) modifie ça et reparlons en :D
en tout cas, tres bonne prog a part mes details de maniaque hahaha félicitations pour cette 1ere :) continue !
13 févr. 2005 à 12:17
Tant pis... j'ai fait la meme avec les composants Indy...
13 févr. 2005 à 11:52
J'utilise delphi 6... mais je n'ai pas le souvenir d'avoir utilisé de TidText. Quant au TidGauge je l'ai eu directement avec delphi 6 donc ca doit venir de ta version.
SB
11 févr. 2005 à 15:53
Je suis sous Delphi 8, et il me sort que la moitié des uses sont inconnues, et il refuse pas mal de Composants (notamment TidText et TidGauge)...
C'est vraiment moi ou on peut m'expliquer?
Dreuteu
Pourtant le code est attirant... :S
30 déc. 2004 à 17:38
29 déc. 2004 à 19:03
aussi utilise toujours StrToIntDef() a la place de StrToInt() quand tu n'est pas sur que le contenu est un chiffre.
Logikement avec la procedure qui est dans ton OnKeyPress, ça doit fonctionner, mais StrToIntDef() est plutot pas mal, je l'exeplique en 2 mots :
String To Integer Default, si une exception de type co,version survient, la fonction renvoie la valeur par défaut. exemple :
si edit1.text vaut "01truc" et que je fais StrToIntDef(edit1.text,0) alors je vaix recevoir le 0 car il y a erreur.
encore une chose :)
Memo2.Lines.Add('Initialisation du port 25...');
mais tu proposes de changer le port 25, donc si je mets le port 33, ça me dit la meme chose ? pas logique !
je propose donc :
Memo2.Lines.Add('Initialisation du port '+LeEditDuPort.text);
mais peso je prefere avec la fonction Format(); ce qui donne
Memo2.Lines.Add(Format('Initialisation du port %s',[LeEditDuPort.text]);
regarde l'aide de la fonction format si tu veux :)
voila, a bientot ! j'attends la MAJ avant meme de telecharger :p
29 déc. 2004 à 17:40
Moi aussi j'attend pour noter que le code soit un peu plus lisible ;-)
En tout cas bravo !
29 déc. 2004 à 17:39
"la procedure du bouton1 est tout simplement ENORME :| decoupe la en morceaux"
la découper de quelle maniere ? désolé si c'est une question bete...
Encore merci :)
29 déc. 2004 à 16:55
je viens de regarder le unit1.pas, le code est tres "clair" :D tres eparpillé mais bon au moins c lisible.
qqs astuces/conseils :
- NOMME TES COMPOSANTS :( en lisant le .pas je ne sais pas a quoi correspond le edit4 ou la checkbox2 ou le memo2 ... c'est tres tres important si tu veux que ta source sois utile, sinon autent ne balancer que l'exe :/
- ne repete pas form1 a chaque fois, surtout que justement tu ne le repetes pas toujours ! alors pourquoi le mettre ?
- la procedure du bouton1 est tout simplement ENORME :| decoupe la en morceaux ou reduit le nb de lignes de blanc
- Form1.Gauge1.Progress := 91;
Form1.Gauge1.Progress := 92;
Form1.Gauge1.Progress := 93;
Form1.Gauge1.Progress := 94;
Form1.Gauge1.Progress := 95;
Form1.Gauge1.Progress := 96;
Form1.Gauge1.Progress := 97;
Form1.Gauge1.Progress := 98;
Form1.Gauge1.Progress := 99;
Form1.Gauge1.Progress := 100;
c'est quoi tout ça ? je veux dire, je vois bien que tu fait augmenter la gauge mais euh, c pas propre du tout ! en plus sans l'executer je suis sur ke 20 pas (steps) de gauge se font en une fraction de seconde et ke c invisible a l'oeil.
si tu veux ke ça sois visible, il faudrait faire qqchose comme :
for i:=0 10 do
begin
gauge1.progress := gauge1.progress + 1;
sleep(10);
end;
et là apres chak mouvement de gauge l'appli dors 10 millisecondes, mais ceci fait donc ralentir le fonctionnement, tout ça pour une "fausse" gauge :/ c moyen non ?
- pour le nombre de message a envoyer (vide = 1) je propose au lieu de ça :
**************************
if Form1.Edit5.Text = '' then
begin
Memo2.Lines.Add('Aucun nombre donné, initialisation au nombre par défaut (1)');
Memo2.Lines.Add('Tentative d''envoi...');
IdSMTP1.Send(IdMessage1);
end
else begin
Memo2.Lines.Add('Tentative d''envoi...');
i := Form1.Edit5.Text;
for u := 1 to i do
IdSMTP1.Send(IdMessage1);
end
******************************
je propose ça :
************************
Memo2.Lines.Add(Format('Nombre de mails à envoyer : %d'),[StrToIntDef(Edit5.Text,1)]));
for i:=0 to StrToIntDef(Edit5.Text,1) do
begin
Memo2.Lines.Add(Format('Tentative d''envoi du message n°%d',[i]));
IdSMTP1.Send(IdMessage1);
end;
ensuite
- supprimer Edit5Change : c vide
- pourquoi creer 2 procedures identiques ??
> Edit5KeyPressed et Edit65KeyPressed ! donne leur a toute les deux la meme procedure dans l'inspecteur de proprietes
mais avant toute modif : NOMME TES COMPOS !
quand je lis
"Form1.Radiobutton2.Enabled := False;
Form1.Button2.Enabled := False;
Form1.Radiobutton1.Enabled := False;
Form1.Edit3.Text := '';
Form1.Edit3.Enabled := False;"
je ne comprends rien !
alors que par exemple :
"edit_mail.text" ou "checkbox_envoyer" ou "memo_debug" ou "radio_avecfichier" c quand meme plus parlant !
je ne note pas encore :) modifie ça et reparlons en :D
en tout cas, tres bonne prog a part mes details de maniaque hahaha félicitations pour cette 1ere :) continue !