![]() |
Problem mit einer procedure (Action deklaration)
Hallo,
ich habe folgende procedure geschrieben:
Delphi-Quellcode:
aber irgendwie funktioniert sie nicht so richtig, bekomme folgende Fehlermeldung:
procedure TForm1.SaveMainSettings;
var Ini: TIniFile; UserAppDataDir: String; i: Integer; s1,s2,s3,s4: String; List: TStringList; begin UserAppDataDir := GetSpecialFolder(CSIDL_LOCAL_APPDATA); ForceDirectories(UserAppDataDir + AppDataRootDir + AppDataProjectDir); Ini := TIniFile.Create(UserAppDataDir + AppDataRootDir + AppDataProjectDir + '\Config-t.ini'); try Ini.WriteInteger('Default', 'Channel', ComboBox1.ItemIndex); Ini.WriteInteger('Default', 'Volume', TrackBar1.Position); ...... finally Ini.Free; end; Action:=caFree; <----- hier wird die Fehlermeldung ausgelöst. //ChannelList save List:=TStringList.Create; try for i:=0 to ListBox1.Count-1 do begin s1:=ListBox1.Items.Strings[i]; s2:=ListBox2.Items.Strings[i]; s3:=ListBox3.Items.Strings[i]; s4:=ListBox4.Items.Strings[i]; List.Add('=' + s1 + '=' + s2 + '=' + s3 + '=' + s4 + '='); end; List.SaveToFile(UserAppDataDir + AppDataRootDir + AppDataProjectDir + '\ChannelList.ccr'); finally List.Free; end; end; Zitat:
|
Re: Problem mit einer procedure
Was hast du den vor?
|
Re: Problem mit einer procedure
Du bist nun schon so lange dabei und solltest wissen, was ein aussagekräftiger Titel ist. :?
Interessant wäre auch wohl die Deklaration von Action. |
Re: Problem mit einer procedure
Einstellungen speichern... Wenn man eine Einstellungen vorgenommen hat, rufe ich diese Funktion auf und speichere die jeweilige Einstellung.
|
Re: Problem mit einer procedure
Zitat:
|
Re: Problem mit einer procedure
Zitat:
|
Re: Problem mit einer procedure (Action deklaration)
Das solltest doch du wissen.
|
Re: Problem mit einer procedure (Action deklaration)
Dann hätte ich nicht gefragt, oder? :roteyes:
|
Re: Problem mit einer procedure (Action deklaration)
Du nutzt die Variable doch, also musst du wissen, was du da machst bzw. zusammen kopierst (?).
Ist es vielleicht ![]() |
Re: Problem mit einer procedure (Action deklaration)
Mir wurde gesagt halt, setze es da rein. Aber eigentlich kann ich doch die Action ganz löschen, oder? :gruebel:
|
Re: Problem mit einer procedure (Action deklaration)
Ich glaube hab das jetzt gelöst... Action:=caFree; bleibt in OnClose Ereignis, wo es auch hingehört und nicht in meiner procedure.
|
Re: Problem mit einer procedure (Action deklaration)
Aber verstanden hast Du es immer noch nicht, richtig?
|
Re: Problem mit einer procedure (Action deklaration)
Ne nicht ganz... na ja vllt irgendwann.
|
Re: Problem mit einer procedure (Action deklaration)
Im OnClose wird Dir Action als TCloseAction übergeben. In Deinem Code nicht (es ist ja nicht das OnClose-Ereignis), daher wird auf TForm.Action zugegriffen, das es ja auch automatisch als Property gibt. Dieses ist aber vom TYp TBasicAction, daher die Fehlermeldung. Wenn es diese Property nicht gäbe, hättest Du eine Fehlermeldung bekommen "Undefinierter Bezeichner: Action", dann wäre das Problem gar nicht erst aufgekommen.
[edit] Vielleicht etwas ausführlicher: das OnClose sähe ja so aus
Delphi-Quellcode:
Wenn Du nun Action etwas zuweisen willst, wird der Parameter Action (also TCloseAction) herangezogen, wo caFree als Wert in Ordnung geht. In Deiner aufrufenden Methode gibt es diesen Parameter nicht, Action ist auch nicht als lokale Variable deklariert, also versucht Delphi, Action irgendwie aufzulösen und wird bei TForm fündig, welches eine Property Action besitzt. Diese Property ist aber nicht vom Typ TCloseAction, sondern vom Typ TBasicAction, was etwas ganz anderes ist. Hier ist eine Zuweisung von caFree nicht möglich, deshalb gibt Delphi eine Fehlermeldung aus. [/edit]
procedure TDeinForm.FormClose(Sender: TObject; var Action: TCloseAction);
|
Re: Problem mit einer procedure (Action deklaration)
U juh juhii.... :roteyes: Aber hab soweit verstanden. Thx.. :thumb:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:48 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