Hallöle...
Zitat:
Ja cnPack hab ich soeben schon mal installiert.
Ein großer Werkzeugkasten, wo man
nicht alles braucht, der dir aber das Leben erleichtert. Ein paar Optionen in der
IDE solltest du deakivieren. (Optionen1+2)
1: Die Linien von Castalia können weg, es sein denn du magst die dünnen Linien lieber. Dann mußt du die Linien im CnPack abschalten.
2. Programmierhilfe: Die vom CnPack ist deutlich besser. Die findet auch Teilstrings. Nur doppelt suchen ist langsam...
Zitat:
Duplicate Code Finder 1.0 konnte ich lediglich eine Stelle in der SetzeFlotte-Prozedur finden, die sich wiederholt
DRY ist was anderes.
Du hast Glück. Für meine Sprachtherapie habe ich einen Mini Vortrag über DRY gehalten. (Anhang) Fällt dir zwischen Seite 5 und 6 was auf?
Nachtrag DRY:
aus deinem Code:
Delphi-Quellcode:
procedure TForm1.LeuchteKnopfTimer(Sender: TObject);
begin
if not playerhasshot
then
if blinkcount<25 then
begin
if BoxPlayer.Color=clRed
then BoxPlayer.Color:=clNavy
else BoxPlayer.Color:=clRed;
LeuchteKnopf.Interval:=random(80)+21;
Inc(blinkcount);
end else
begin
blinkcount:=0;
LeuchteKnopf.Enabled:=False;
LeuchteKnopf.Interval:=1;
BoxPlayer.Color:=clNavy;
end
else
if blinkcount<25 then
begin
if BoxKI.Color=clRed
then BoxKI.Color:=clNavy
else BoxKI.Color:=clRed;
LeuchteKnopf.Interval:=random(80)+21;
Inc(blinkcount);
end else
begin
blinkcount:=0;
LeuchteKnopf.Enabled:=False;
LeuchteKnopf.Interval:=1;
BoxKI.Color:=clNavy;
end;
end;
besser:
Delphi-Quellcode:
procedure TForm1.LeuchteKnopfTimer(Sender: TObject);
begin
if not playerhasshot then
begin
LightingButton(BoxPlayer);
end
else
begin
LightingButton(BoxKI);
end
end;
ausgelagert z.B. als private procedure:
Delphi-Quellcode:
procedure TForm1.LightingButton(GroupBox: TGroupbox);
begin
if blinkcount < 25 then
begin
if GroupBox.Color = clRed then
GroupBox.Color := clNavy
else
GroupBox.Color := clRed;
LeuchteKnopf.Interval := random(80) + 21;
Inc(blinkcount);
end
else
begin
blinkcount := 0;
LeuchteKnopf.Enabled := False;
LeuchteKnopf.Interval := 1;
GroupBox.Color := clNavy;
end;
end;