lord948
Messages postés34Date d'inscriptionjeudi 17 janvier 2008StatutMembreDernière intervention19 mai 2009 19 nov. 2008 à 14:01
(Offlake)
désolé mais je ne voit pas l'utilité de ton commentaire.
merci de préciser
offlake
Messages postés190Date d'inscriptionmercredi 3 septembre 2008StatutMembreDernière intervention17 janvier 2009 14 nov. 2008 à 11:12
Revaliser sans doute pas!!
By Offlake
lord948
Messages postés34Date d'inscriptionjeudi 17 janvier 2008StatutMembreDernière intervention19 mai 2009 11 nov. 2008 à 10:19
Merci beaucoup pour m’avoir accordé autant de temps a corrigé mes bourdes, et puis rien a dire , j’espère au moyen qu’un jour je pourrai rivalisé avec sa
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 10 nov. 2008 à 23:37
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 201014 10 nov. 2008 à 20:47
Main.pas :
----------
1) Renommer TOUS les composants afin de savoir à quoi sert le Button1 ou le RadioButton2 ...
2) Réindentation du code.
3) Modification des 'cast' ex: (Source as TShape).Machin -> TShape(Source).Machin
4) Suppression du OnFormResize qui est inutile car les propriétés "Anchors" des composants servent à ça.
5) Modification de ... :
case Shape1.Shape of
stCircle: ComboBox1.ItemIndex := 0;
stEllipse: ComboBox1.ItemIndex := 1;
stRectangle: ComboBox1.ItemIndex := 2;
stRoundRect: ComboBox1.ItemIndex := 3;
stRoundSquare: ComboBox1.ItemIndex := 4;
stSquare: ComboBox1.ItemIndex := 5
end;
--> ... en une seule ligne :
cb_Shape.ItemIndex := Ord(ShapeDemo.Shape); // Ord() : ordinal d'un type énuméré par exemple.
Pour cela, j'ai dû retrier le contenu de la ComboBox dans le même ordre que le type énuméré.
6) Ajout d'un petite vérif : "if (Objet is TShape) then"
Propr.pas :
-----------
1) Renommer TOUS les composants
2) Modification de ... :
case ComboBox1.ItemIndex of
0:Shape1.Shape := stCircle;
1:Shape1.Shape := stEllipse;
2:Shape1.Shape := stRectangle;
3:Shape1.Shape := stRoundRect;
4:Shape1.Shape := stRoundSquare;
5:Shape1.Shape := stSquare
end
--> ... en une seule ligne :
ShapeDemo.Shape := TShapeType(cb_Shape.ItemIndex);
Hop, un cast avec le type énuméré !
3) Modification de :
procedure TPagesDlg.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Edit1.GetTextLen > 0) and (not (key in #8,'0'..'9')) then key:=#0
end;
procedure TPagesDlg.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if (Edit1.GetTextLen > 0) and (not (key in #8,'0'..'9')) then key:=#0
end;
procedure TPagesDlg.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if (Edit1.GetTextLen > 0) and (not (key in #8,'0'..'9')) then key:=#0
end;
procedure TPagesDlg.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
if (Edit1.GetTextLen > 0) and (not (key in #8,'0'..'9')) then key:=#0
end;
Déjà il y a une erreur de copié/collé car tu vérifie toujours "Edit1.GetTextLen", puis quand tu fais 4 procédure identiques, tu ne trouves pas ça un peu inutile ?
Voici une seule ligne :
if (TEdit(Sender).GetTextLen > 0) and (not (key in #8,'0'..'9')) then key:=#0
Tu mets cette procédure pour les 4 TEdit ! Le sender s'occupe du reste.
4) Supression des 2 RadioButton dont tu détournais l'utilisation pour ajouter des ColorBox. Code :
if Sender=color_Fond then
ShapeDemo.Brush.Color := color_Fond.Selected
else ShapeDemo.Pen.Color := color_Contour.Selected;
5) Suppression du Close; dans la procedure du bouton OK, tu es en ShowModal et ton bouton retourne le code mrOK ! A quoi sert le close !?
6) Ajout d'une petite touche perso : une case a cocher pour mettre le shape en pointillé, Code :
procedure TFormPagesDlg.chk_dottedClick(Sender: TObject);
const Styles: array[Boolean] of TPenStyle = (psSolid, psDot);
begin
ShapeDemo.Pen.Style:= Styles[chk_dotted.Checked]
end;
J'ai aussi modifié les DFM, pour réorganiser un peu, renommer, etc etc
Qu'en penses tu ?
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 201014 10 nov. 2008 à 11:02
Salut !
Source sans grand intérêt mais qui peut etre sympa si tout est bien géré. Pas mal de personnes se posent des questions sur la création dynamique.
Je n'ai pas encore testé, juste lu le code en travers et je vois un peu trop de procedures identiques, on peut simplifier tout ça à mon avis :]
Je regarde ce soir, bon courage.
19 nov. 2008 à 14:01
désolé mais je ne voit pas l'utilité de ton commentaire.
merci de préciser
14 nov. 2008 à 11:12
By Offlake
11 nov. 2008 à 10:19
10 nov. 2008 à 23:37
"http://diabloporc.free.fr/delphi/lord948.zip garantie sans virus :]"
Le petit sourire à la fin n'est pas fait pour renforcer l'idée de ta phrase ^^
Je veux dire on va se douter d'un truc là ...
:]
Cordialement, Bacterius !
10 nov. 2008 à 20:48
http://diabloporc.free.fr/delphi/lord948.zip garantie sans virus :]
10 nov. 2008 à 20:47
----------
1) Renommer TOUS les composants afin de savoir à quoi sert le Button1 ou le RadioButton2 ...
2) Réindentation du code.
3) Modification des 'cast' ex: (Source as TShape).Machin -> TShape(Source).Machin
4) Suppression du OnFormResize qui est inutile car les propriétés "Anchors" des composants servent à ça.
5) Modification de ... :
case Shape1.Shape of
stCircle: ComboBox1.ItemIndex := 0;
stEllipse: ComboBox1.ItemIndex := 1;
stRectangle: ComboBox1.ItemIndex := 2;
stRoundRect: ComboBox1.ItemIndex := 3;
stRoundSquare: ComboBox1.ItemIndex := 4;
stSquare: ComboBox1.ItemIndex := 5
end;
--> ... en une seule ligne :
cb_Shape.ItemIndex := Ord(ShapeDemo.Shape); // Ord() : ordinal d'un type énuméré par exemple.
Pour cela, j'ai dû retrier le contenu de la ComboBox dans le même ordre que le type énuméré.
6) Ajout d'un petite vérif : "if (Objet is TShape) then"
Propr.pas :
-----------
1) Renommer TOUS les composants
2) Modification de ... :
case ComboBox1.ItemIndex of
0:Shape1.Shape := stCircle;
1:Shape1.Shape := stEllipse;
2:Shape1.Shape := stRectangle;
3:Shape1.Shape := stRoundRect;
4:Shape1.Shape := stRoundSquare;
5:Shape1.Shape := stSquare
end
--> ... en une seule ligne :
ShapeDemo.Shape := TShapeType(cb_Shape.ItemIndex);
Hop, un cast avec le type énuméré !
3) Modification de :
procedure TPagesDlg.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Edit1.GetTextLen > 0) and (not (key in #8,'0'..'9')) then key:=#0
end;
procedure TPagesDlg.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if (Edit1.GetTextLen > 0) and (not (key in #8,'0'..'9')) then key:=#0
end;
procedure TPagesDlg.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if (Edit1.GetTextLen > 0) and (not (key in #8,'0'..'9')) then key:=#0
end;
procedure TPagesDlg.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
if (Edit1.GetTextLen > 0) and (not (key in #8,'0'..'9')) then key:=#0
end;
Déjà il y a une erreur de copié/collé car tu vérifie toujours "Edit1.GetTextLen", puis quand tu fais 4 procédure identiques, tu ne trouves pas ça un peu inutile ?
Voici une seule ligne :
if (TEdit(Sender).GetTextLen > 0) and (not (key in #8,'0'..'9')) then key:=#0
Tu mets cette procédure pour les 4 TEdit ! Le sender s'occupe du reste.
4) Supression des 2 RadioButton dont tu détournais l'utilisation pour ajouter des ColorBox. Code :
if Sender=color_Fond then
ShapeDemo.Brush.Color := color_Fond.Selected
else ShapeDemo.Pen.Color := color_Contour.Selected;
5) Suppression du Close; dans la procedure du bouton OK, tu es en ShowModal et ton bouton retourne le code mrOK ! A quoi sert le close !?
6) Ajout d'une petite touche perso : une case a cocher pour mettre le shape en pointillé, Code :
procedure TFormPagesDlg.chk_dottedClick(Sender: TObject);
const Styles: array[Boolean] of TPenStyle = (psSolid, psDot);
begin
ShapeDemo.Pen.Style:= Styles[chk_dotted.Checked]
end;
J'ai aussi modifié les DFM, pour réorganiser un peu, renommer, etc etc
Qu'en penses tu ?
10 nov. 2008 à 11:02
Source sans grand intérêt mais qui peut etre sympa si tout est bien géré. Pas mal de personnes se posent des questions sur la création dynamique.
Je n'ai pas encore testé, juste lu le code en travers et je vois un peu trop de procedures identiques, on peut simplifier tout ça à mon avis :]
Je regarde ce soir, bon courage.