![]() |
Werteübergabe
Hi Leute!
Folgendes Problem: Ich hab 35 Panels, von denen bestimmte Eigenschaften an eine Funktion übergeben werden sollen. Mein Problem ist nur, daß ich keinen blassen Schimmer habe wie ich es hinkriege daß für die Panels 1 bis 35 jedes Mal die entsprechende Eigenschaft rausgreift.
Delphi-Quellcode:
Was ich da gecoded habe ist der größte Schwachsinn, denn in dem Fall würde beispielsweise nicht die entsprechende Caption des Panels 1 speichern sondern immer nur 'PanHalle1.caption'...und das ist nun wirklich nicht im Sinne des Erfinders
procedure TForm1.Speichern1Click(Sender: TObject);//Menüpunkt "Speichern"
var i: integer; begin for i := 1 to 35 do begin speichern('PanHalle'+IntToStr(i)+'.caption','PanHalle'+IntToStr(i)+ 'T'+'.caption', IntToHex(Strtoint('PanHalle'+IntToStr(i)+'.Color'),6), StrToBool('bildTHL'+IntToStr(i)),StrToBool('bildSchl'+IntToStr(i)), StrToBool('bildSound'+IntToStr(i))); end; end; Hier noch mal der Code für die aufgerufene Prozedur:
Delphi-Quellcode:
procedure speichern (Hname, Zeit, HFarbe: string; Schl, THL, Sound:boolean);
|
das geht mit findcomponent!
so kannst auf die compos zugreifen Beispiel:
Delphi-Quellcode:
FindComponent(('Panel' + Inttostr(i)) as TPanel).Caption { oder Color oder irgendne Eigenschaft}
|
Danke!
@moderatoren: Der Thread ist versehentlich im falschen Forum gelandet...wäre nett wenn ihr den verschieben könntet, damit ihn andere später leichter finden (denke mal daß ich nicht der einzige bin der irgendwann mal über dieses Anfänger-Problem stolpert..) |
Hmm, das klappt leider nicht so ganz
Delphi-Quellcode:
ich erhalte immer die Meldung "[Error] UnitHaupt.pas(314): Operator not applicable to this operand type", selbst wenn ich mich an die Vorgabe aus der OH halte... woran kann das liegen?
speichern(FindComponent(('PanHalle' + Inttostr(i)) as TPanel).caption)
|
Hallo,
ich habe es mal nach Delphi Language verschoben, in Klatsch und Trasch hatte es wirklich nichts verloren. ;) Grüsse, Daniel :hi: |
sorry hab mich vertippt! es muss heissen:
Delphi-Quellcode:
(FindComponent('PanHalle' + IntToStr(i)) as TPanel).Caption
|
Und wie mache ich das dann wenn ich eine vorher definierte Variable vom Typ Boolean habe(THL, THL2,..., THL35)? Die kann ich ja nicht mit FindComponent aufrufen...
|
Zitat:
Delphi-Quellcode:
for i := 1 to 35 do
if StrToBool('THL'+IntToStr(i)) then ShowMessage ('Diese Variable hat den Wert True :)'); |
Ich will sie ja aber nicht kontrollieren sondern in eine Textdatei speichern. Und dafür muß ich an die Funktion zum schreiben einen boolschen Wert übergeben. Dein Tipp hilft mir da also nicht so wirklich weiter...
|
Zitat:
Also soll deine Speicher-Funktion die du hast, 35mal aufgerufen werden und jeweils die kompletten Infos gespeichert werden? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz