Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Werteübergabe (https://www.delphipraxis.net/3663-werteuebergabe.html)

Hellcat 24. Mär 2003 15:51


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:
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;
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

Hier noch mal der Code für die aufgerufene Prozedur:
Delphi-Quellcode:
procedure speichern (Hname, Zeit, HFarbe: string; Schl, THL, Sound:boolean);

mirage228 24. Mär 2003 16:14

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}

Hellcat 25. Mär 2003 08:18

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..)

Hellcat 25. Mär 2003 11:21

Hmm, das klappt leider nicht so ganz
Delphi-Quellcode:
speichern(FindComponent(('PanHalle' + Inttostr(i)) as TPanel).caption)
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?

Daniel B 25. Mär 2003 11:41

Hallo,

ich habe es mal nach Delphi Language verschoben, in Klatsch und Trasch hatte es wirklich nichts verloren. ;)

Grüsse, Daniel :hi:

mirage228 25. Mär 2003 12:20

sorry hab mich vertippt! es muss heissen:

Delphi-Quellcode:
(FindComponent('PanHalle' + IntToStr(i)) as TPanel).Caption

Hellcat 25. Mär 2003 14:17

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...

X-Dragon 25. Mär 2003 15:19

Zitat:

Zitat von Hellcat
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...

Wenn die Variablen schon Werte zugewiesen bekommen haben, kann man sie z.B. so kontrollieren:

Delphi-Quellcode:
  for i := 1 to 35 do
    if StrToBool('THL'+IntToStr(i)) then
      ShowMessage ('Diese Variable hat den Wert True :)');

Hellcat 25. Mär 2003 15:40

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...

X-Dragon 25. Mär 2003 18:33

Zitat:

Zitat von Hellcat
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...

Dann wäre es aber noch ganz interessant zu wissen wie deine Speichern-Prozedur überhaupt arbeitet, denn bis vorhin war es noch eine Prozedur :roll:.

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 20:50 Uhr.
Seite 1 von 2  1 2      

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