Einzelnen Beitrag anzeigen

Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#10

AW: Quellcode reduzieren

  Alt 27. Nov 2011, 17:39
Das alles trägt zur Problemlösung bei, aber lehrt dir nicht, wie du das ganze wirklich löst.
Stichwörter: Prozeduren/Funktionen.
Wenn du dir ne Prozedur schreibst, die als Parameter eine Image Komponente nimmt und die dann halt verändert, musst du nur noch mehr diese aufrufen und nicht nen ganze Block an Code ausführen:

Delphi-Quellcode:
if x=1 then begin image1.visible:=true; image1.top:=200; image1.left:=300; end;
if x=2 then begin image2.visible:=true; image2.top:=200; image2.left:=300; end;
if x=3 then begin image3.visible:=true; image3.top:=200; image3.left:=300; end;
-->

Delphi-Quellcode:
procedure SetImageProps(Image: TImage; AVisible: Boolean; ATop, ALeft: Integer);
begin
  with Image do
  begin
    Visible := AVisible;
    Top := ATop;
    Left := ALeft;
  end;
end;

// Aufruf (ohne Wissen über Findcomponent)
case x of
  1: SetImageProps(image1, True, 200, 300);
  2: SetImageProps(image2, True, 200, 300);
  3: SetImageProps(image3, True, 200, 300);
end;

// Aufruf (eleganter; Findcomponent)
  SetImageProps(TImage(FindComponent('Image' + IntToStr(x))), True, 200, 300);

// ... oder die Images in nem Array aufbewahren und X als Index verwenden
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG

Geändert von Aphton (27. Nov 2011 um 18:01 Uhr)
  Mit Zitat antworten Zitat