Delphi-PRAXiS
Seite 2 von 2     12   

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 26. Mär 2003 08:42

Sorry, da hatte sich ein Schreibfehler eingeschlichen...selbstverständlich ist es nach wie vor noch eine Prozedur

Delphi-Quellcode:
procedure speichern (Hname, Zeit, HFarbe: string; Schl, THL, Sound:boolean);
var save: Textfile;
begin
  AssignFile (save, 'zustand.hbl');
  {$i-} Append (save){$i+};
  if IOResult <> 0 then
    begin
      showmessage ('Die Datei "Zustand.hbl" wurde nicht gefunden!');
      exit;
    end;
  writeln (Save, TimeToStr(now) +';'+ HName +';'+ Zeit +';'+ HFarbe +';'+
            BoolToStr(Schl) +';'+ BoolToStr (THL) +';'+ BoolToStr (Sound));
  closeFile(Save);
end;
Und der Aufruf sieht derzeit aus wie folgt:
Delphi-Quellcode:
procedure TForm1.Speichern1Click(Sender: TObject);//Menüpunkt "Speichern"
var i: integer;
begin
  for i := 1 to 35 do
    begin
      speichern((FindComponent('PanLab' + IntToStr(i)) as TLabel) .Caption,
                (FindComponent('PanLabT' + Inttostr(i)) as TLabel).caption,
                IntToHex(((FindComponent('PanHalle' + InttoStr(i))as TPanel).Color),6),
                StrToBool('bildTHL'+IntToStr(i)),
                StrToBool('bildSchl'+IntToStr(i)),
                StrToBool('bildSound'+IntToStr(i)) );
    end;
end;

X-Dragon 26. Mär 2003 10:40

Gibts eine Fehlermeldung(wenn wo?) oder werden die Daten falsch gespeichert, oder läuft es jetzt inzwischen?

Hellcat 26. Mär 2003 11:02

Wenn ich bei meinem Programm auf "Speichern" klicke erhalte ich die Meldung:
"Project Halbel.exe raised exception class EConvertError with message ''BildTHL1' is not a vaild boolean value'. Process stopped.[...]"

Ist ja auch logisch, da er laut meinen anweisungen 'BildTHL1' in einen boolschen Wert umrechnet - und kann ja nicht klappen. Die Frage ist aber wie geht das die Variblen zuzuweisen mittels der For-Schleife...

X-Dragon 26. Mär 2003 11:20

Kannst du noch die Deklaration deiner Variablen posten? Denn ohne genaue Bezeichnungen und den jeweiligen Datentypen, ist die Fehlersuche etwas schwierig :).

Um einen Fehler grundsätzlich genauer zu lokalisieren kannst du am besten einen Breakpoint z.B. am Anfang deiner Speichern.Click-Prozedur setzen und dann mit F7 Zeile für Zeile dein Programm testen.

Hellcat 26. Mär 2003 11:32

Stimmt, macht Sinn :roll:
Delphi-Quellcode:
   {Halle 1}
    bildTHL1: boolean = false;     // Variable für Bild "Hallenleiter", Halle 1
    BildSchl1: boolean = false;    // Variable für Bild "Schloß", Halle 1
    bildSound1: boolean = false;   // Variable für Bild "Sound", Halle 1
Um den Fehler mal zu päzesieren:
Ich will folgendes übergeben:

BildTHL1

und übergebe aber:

'BildTHL1'

Wenn ich nur diese eine Variable übergeben müsste könnte ich sie ja einfach hinschreiben, ich muss aber leider die Variable mit den Zahlen 1-35 am Ende übergeben...

X-Dragon 26. Mär 2003 12:13

Bei solchen Variablen würde ich eher empfehlen, sie in so einem Format zu definieren:

Delphi-Quellcode:
var
  bildTHL : array[1..35] of Boolean;

begin
  for i := 1 to 35 do
    bildTHL[i] := False;
Sollte die Handhabung etwas vereinfachen. Denn dann brauchst du deine Boolschen-Variablen auch nicht erst zu einem String zusammensetzen, sonder kannst sie direkt [i]BoolToStr(bildTHL) nutzen.

Hellcat 26. Mär 2003 14:01

Ok, jetzt geht's. Vielen Dank!


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:10 Uhr.
Seite 2 von 2     12   

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