Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Caption und Pfad für ShellExecute aus .INI lesen (https://www.delphipraxis.net/64986-caption-und-pfad-fuer-shellexecute-aus-ini-lesen.html)

Jesus2k 10. Mär 2006 18:15


Caption und Pfad für ShellExecute aus .INI lesen
 
Ich suche eine Möglichkeit wie ich die Captions von Buttons uns den Datei-Pfad für ShellExecute aus einer .INI Datei zu laden (um diese später noch zu ändern).

Ich hab folgendes skript bis jetzt:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin

ShellExecute(Application.Handle, 'open', PChar('C:\datei.exe'),
   Nil, Nil, SW_NORMAL);
Jetzt möchte ich das der Pfad (C:\datei.exe) nicht fest im Pogramm ist sondern aus einer .INI Datei gelesen wird.

marabu 10. Mär 2006 18:47

Re: Caption und Pfad für ShellExecute aus .INI lesen
 
Viel hast du ja noch nicht. Der Komponentenname als Abschnitt in der Ini-Datei wäre eine Möglichkeit:

Code:
[Button1]
Caption=&Go
ExeFile=c:\datei.exe
Im Programm musst du die Unit IniFiles einbinden:

Delphi-Quellcode:
uses
  IniFiles;

var
  ini: TMemIniFile;
  iniFileName, exeFileName: TFileName;

begin
  iniFileName := ChangeFileExt(ParamStr(0), '.ini');
  ini := TMemIniFile.Create(iniFileName);
  exeFileName := ini.ReadString('Button1', 'ExeFile', '');
  with Button1 do
    Caption := ini.ReadString(Name, 'Caption', '');

  // falls du Änderungen an der INI-Datei gemacht hast,
  // dann solltest du diese zurückschreiben:
  ini.UpdateFile;

  ini.Free;
end;
Die Umwandlung des String in einen PChar ist dann nur noch eine kleine Hürde:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(Application.Handle, 'open', PChar(exeFileName),
    nil, nil, SW_NORMAL);
Das ist das Handwerkszeug - du solltest es an deine Bedürfnisse anpassen können.

Grüße vom marabu

Jesus2k 10. Mär 2006 20:03

Re: Caption und Pfad für ShellExecute aus .INI lesen
 
Vielen dank für die schnelle antwort.
habs zwar nicht gleich hingekrigt aber jetzt gets...
danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:43 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