AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Werteübergabe

Ein Thema von Hellcat · begonnen am 24. Mär 2003 · letzter Beitrag vom 26. Mär 2003
Antwort Antwort
Seite 1 von 2  1 2   
Hellcat

Registriert seit: 27. Feb 2003
60 Beiträge
 
Delphi 6 Personal
 
#1

Werteübergabe

  Alt 24. Mär 2003, 15:51
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:
procedure speichern (Hname, Zeit, HFarbe: string; Schl, THL, Sound:boolean);
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2
  Alt 24. Mär 2003, 16:14
das geht mit findcomponent!
so kannst auf die compos zugreifen

Beispiel:
FindComponent(('Panel' + Inttostr(i)) as TPanel).Caption { oder Color oder irgendne Eigenschaft}
David F.
  Mit Zitat antworten Zitat
Hellcat

Registriert seit: 27. Feb 2003
60 Beiträge
 
Delphi 6 Personal
 
#3
  Alt 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..)
  Mit Zitat antworten Zitat
Hellcat

Registriert seit: 27. Feb 2003
60 Beiträge
 
Delphi 6 Personal
 
#4
  Alt 25. Mär 2003, 11:21
Hmm, das klappt leider nicht so ganz
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?
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#5
  Alt 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
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#6
  Alt 25. Mär 2003, 12:20
sorry hab mich vertippt! es muss heissen:

(FindComponent('PanHalle' + IntToStr(i)) as TPanel).Caption
David F.
  Mit Zitat antworten Zitat
Hellcat

Registriert seit: 27. Feb 2003
60 Beiträge
 
Delphi 6 Personal
 
#7
  Alt 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...
2+2=5 (for large values of 2)
  Mit Zitat antworten Zitat
Benutzerbild von X-Dragon
X-Dragon

Registriert seit: 14. Jan 2003
Ort: Schortens
289 Beiträge
 
Delphi 6 Enterprise
 
#8
  Alt 25. Mär 2003, 15:19
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 :)');
  Mit Zitat antworten Zitat
Hellcat

Registriert seit: 27. Feb 2003
60 Beiträge
 
Delphi 6 Personal
 
#9
  Alt 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...
2+2=5 (for large values of 2)
  Mit Zitat antworten Zitat
Benutzerbild von X-Dragon
X-Dragon

Registriert seit: 14. Jan 2003
Ort: Schortens
289 Beiträge
 
Delphi 6 Enterprise
 
#10
  Alt 25. Mär 2003, 18:33
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 .

Also soll deine Speicher-Funktion die du hast, 35mal aufgerufen werden und jeweils die kompletten Infos gespeichert werden?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:35 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