![]() |
aus ini lesen problem
Hai,
meine ToolBar ist jetzt zu 75% fertig, also freut euch drauf! ^^ Ein kleines Problem hab ich aber noch:
Delphi-Quellcode:
Bei dieser Stelle:
procedure TForm1.SpeedButton6Click(Sender: TObject);
var ini: TiniFile; begin ini := TIniFile.Create(ExtractFilePath(ParamStr(0))+'Einstellungen\'+'config.dat'); try ExecuteProgramm(ini.ReadString('BUTTONS', 'SpeedButton6', '')); finally ini.Free end; end;
Delphi-Quellcode:
öffnet er den Arbeitsplatz, abwohl in der ini überhaupt kein Wert drinsteht...
ExecuteProgramm(ini.ReadString('BUTTONS', 'SpeedButton6', ''));
Kann mir da jemand weiterhelfen? |
Re: Kurze Frage zu Code
Zitat:
|
Re: Kurze Frage zu Code
Zitat:
:lol: //Edit: Titel geändert!!! |
Re: aus ini lesen problem
Delphi-Quellcode:
sagt mir grade nix aber prüf doch einfach, ob n gültiger wert vorhanden ist und öffne erst dann die Datei.
ExecuteProgramm('Filename')
evtl. mit
Delphi-Quellcode:
FileExists('Filename')
|
Re: aus ini lesen problem
Wen kein Parameter übergeben wird ist das mormal.
Prüfe vorher ob in der INI bzw. dem Eintrag etwas steht.
Delphi-Quellcode:
var ZuStartendesProgramm : string;
begin ZuStartendesProgramm := ini.ReadString('BUTTONS', 'SpeedButton6', ''); if ZuStartendesProgramm <> '' then ExecuteProgramm( ZuStartendesProgramm ) else ShowMessage('Kein Eintrag'); // ... |
Re: aus ini lesen problem
mür würde das so besser gefallen ... da wird dann gleich geprüft, ob es diese Datei auch giebt (falls man diese per Hand (falsch) eingetippt hat oder sie nachträglich gelöscht/verschoben hat/wurde.)
Delphi-Quellcode:
var ZuStartendesProgramm : string;
begin ZuStartendesProgramm := ini.ReadString('BUTTONS', 'SpeedButton6', ''); if FileExists(ZuStartendesProgramm) then ExecuteProgramm( ZuStartendesProgramm ) else ShowMessage('Kein Eintrag / Keine gültige Datei.'); // ... |
Re: aus ini lesen problem
Das kannst du gern machen, ich bevorzuge es als erstes zu Prüfen ob ReadString überhaupt einen Eintrag enthält. Dann Schauen ob es das File gibt... ;)
Delphi-Quellcode:
Wobei zu beachten ist das mit FileExists geprüft wird ob eine datei vorhanden ist. Wenn in dem Eintrag nur Notepad.exe ohne Pfad steht kommt eine Fehlermeldung obwol das Programm ausgeführt werden könnte.
var ZuStartendesProgramm : string;
begin ZuStartendesProgramm := ini.ReadString('BUTTONS', 'SpeedButton6', ''); if ZuStartendesProgramm <> '' then begin if FileExists(ZuStartendesProgramm) then ExecuteProgramm( ZuStartendesProgramm ) else ShowMessage( 'Datei nicht gefunden' ); end else begin ShowMessage('Kein Eintrag in der Ini enthalten...'); end; // ... Desswegen ist es besser den Rückgabewert vom ShellExecute nach dem ausführen abzufragen... |
Re: aus ini lesen problem
vielleicht sollte man auch direkt überprüfen ob das aufzurufende Programm den richtigen Dateitypen hat :zwinker:
Delphi-Quellcode:
geht das so mit dem set?
var ZuStartendesProgramm : string;
begin ZuStartendesProgramm := ini.ReadString('BUTTONS', 'SpeedButton6', ''); if ZuStartendesProgramm <> '' then if FileExists(ZuStartendesProgramm) then if ExtractFileExt(ZuStartendesProgramm) in ['.exe','.bat','.com','.scr'] then ExecuteProgramm(ZuStartendesProgramm) else ShowMessage('Falscher Dateityp') else ShowMessage('Datei nicht gefunden') else ShowMessage('Kein Eintrag in der Ini enthalten...'); |
Re: aus ini lesen problem
Und was ist mit *.scr ?! ;)
// 'nu hat er es noch schnell hinzugefügt ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:27 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 by Thomas Breitkreuz