AW: Objekt übergeben
Also, du könntest ein
Delphi-Quellcode:
anlegen, anstatt deines jetzigen Arrays, darüber hast du jederzeit direkten Zugriff auf eine Trackbars.
array[1..8] of TTrackBar
> Dieses Array befüllst du dann im OnCreate deiner Form. Dabei Helfen kann auch FindComponent/FindComponent. Zitat:
Dieses Property wird von der VCL (Delphi) nicht genutzt und ist für den Programmierer gedacht, dieser kann dort sonstwas reinmachen ... was er nur will und was in diesen Integer reinpaßt. Da könnte man z.B. im OI irgendwelche Zahlen eintragen und dann im Programm schauen was da drinsteht und jeweils anders reagieren. |
AW: Objekt übergeben
Die vorgeschlagenen Varianten als Realisierungsvorschlag:
Delphi-Quellcode:
type
TForm1 = class(TForm) Groupbox: TGroupbox; Trackbar1: TTrackbar; Trackbar2: TTrackbar; {...} private function GetTrackbar(AIndex: Integer): Trackbar; {...} public property Trackbar[AIndex: Integer]: TTrackbar read GetTrackbar; {...} end; implementation function TForm1.GetTrackbar(AIndex: Integer): Trackbar; {Variante 1: über den Namen suchen} begin Result := FindComponent('Trackbar' + IntToStr(AIndex)); end; {Variante 2: über den Tag suchen, der Tag muss im Objektinspektor zugewiesen sein} var i: Integer; begin with Groupbox do begin for i := 0 to Controls.Count - 1 do begin if (Controls[i] is TTrackbar) and (Controls[i].Tag = AIndex) then begin Result := TTrackbar(Controls[i]); Exit; end; end; end; Result := nil; end;
Delphi-Quellcode:
{Variante 3: über initialisiertes Array zugreifen}
type TForm1 = class(TForm) Groupbox: TGroupbox; Trackbar1: TTrackbar; Trackbar2: TTrackbar; {...} procedure FormCreate(Sender: TObject); // <- muss im Objektinspektor zugewiesen sein private FTrackbar: array[1..8] of TTrackBar; function GetTrackbar(AIndex: Integer): Trackbar; {...} public property Trackbar[AIndex: Integer]: TTrackbar read GetTrackbar; {...} end; implementation procedure TForm1.FormCreate(Sender: TObject); begin FTrackbar[1] := Trackbar1; FTrackbar[2] := Trackbar2; {...} end; function TForm1.GetTrackbar(AIndex: Integer): Trackbar; begin Result := FTrackbar[AIndex]; end; |
AW: Objekt übergeben
Suuupiee,
danke für die ausführlichen Antworten. :bounce2: Das mit dem Tag hab ich jetzt auch verstanden. Wenn ich im Form das (den?) Tag der TrackBars durchnummeriere (Tag 1-8) dann frage ich das (den?) im Event einfach ab. Klasse, werd ich nachher gleich ausprobieren. Danke.... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz