![]() |
Sorry, da hatte sich ein Schreibfehler eingeschlichen...selbstverständlich ist es nach wie vor noch eine Prozedur
Delphi-Quellcode:
Und der Aufruf sieht derzeit aus wie folgt:
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;
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; |
Gibts eine Fehlermeldung(wenn wo?) oder werden die Daten falsch gespeichert, oder läuft es jetzt inzwischen?
|
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... |
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. |
Stimmt, macht Sinn :roll:
Delphi-Quellcode:
Um den Fehler mal zu päzesieren:
{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 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... |
Bei solchen Variablen würde ich eher empfehlen, sie in so einem Format zu definieren:
Delphi-Quellcode:
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.
var
bildTHL : array[1..35] of Boolean; begin for i := 1 to 35 do bildTHL[i] := False; |
Ok, jetzt geht's. Vielen Dank!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:39 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