Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Listbox Speichern, + Listbox und Shellexecute (https://www.delphipraxis.net/39439-listbox-speichern-listbox-und-shellexecute.html)

killerkarl 2. Feb 2005 17:57


Listbox Speichern, + Listbox und Shellexecute
 
moin
Also ich habe zwei Probleme:

Wenn ich in eienr Listbox Items wie
C:\Programme\test.exe
d:\Docs\test.doc

Stehen habe und die Listbox abspeichern möchte ist das nciht möglich.
Weiss jemand, wieih das lösen könnte?

Ob Listbox oder TMemo oder TRich is mir egal.

Zweites Problem:
Habe ich dann die Pfade in der Datei (durch manuelles reinschreiben) läd er die Dateien zwar in die Listbox, aber er führt es nciht aus. weil er Ein anderes Format braucht (als String).

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
if fileexists('conf.cfg') then Listbox1.Items.LoadFromFile('conf.cfg');
end;

procedure TForm1.FormShow(Sender: TObject);
var i:Integer;
begin
for i:=0 to Listbox1.Items.count-1 do
begin
Shellexecute(Handle, nil, Listbox1.Items.Strings[i], nil, nil, SW_SHOW);
end;
close;
end;
Freue mich über jede hilfe

Rastaman 2. Feb 2005 18:07

Re: Listbox Speichern, + Listbox und Shellexecute
 
Delphi-Quellcode:
Shellexecute(Handle, nil, PChar(Listbox1.Items.Strings[i]), nil, nil, SW_SHOW);

killerkarl 2. Feb 2005 18:09

Re: Listbox Speichern, + Listbox und Shellexecute
 
Danke für zweitens..
Fehlt nur nch erstens

Sharky 2. Feb 2005 18:10

Re: Listbox Speichern, + Listbox und Shellexecute
 
Hai killerkarl,

bitte nur eine Frage pro Thread ;-)

bzgl. deines ShellExecute-Problemes -> Ändere es mal in diesen Aufruf:
Delphi-Quellcode:
    Shellexecute(Handle, nil,PAnsiChar(Listbox1.Items.Strings[i]), nil, nil, SW_SHOW);
Was mir aber noch nicht klar ist was das Programm machen soll. Es sieht so aus als wolltest Du damit einfach nur eine Reihe von Programmen starten bzw. Dateien öffnen und es dann automatisch wieder beenden lassen.
Dafür brauchst Du aber doch keine solche Anwendung.

killerkarl 2. Feb 2005 18:13

Re: Listbox Speichern, + Listbox und Shellexecute
 
Also ich möchte ein Programm haben, das sich manuell starten lässt oder mit Windows und dann vorher festgelegte Programme öffnet, und sich dann wieder schlieest

jfheins 2. Feb 2005 18:26

Re: Listbox Speichern, + Listbox und Shellexecute
 
Wenn es einfach nur das tun muss, reicht folgendes:
Delphi-Quellcode:
program Project1;

uses
  Forms, ShellAPI, Windows;

var
 i: Cardinal;
 Programme: Array[0..2] of String = ('notepad', 'calc', 'iexplore');

{$R *.res}

begin
  Application.Initialize;
  Application.Run;

for i := 0 to high (Programme) do
  Shellexecute(Application.Handle, nil, PChar(Programme[i]), nil, nil, SW_SHOW);

end.

killerkarl 2. Feb 2005 18:29

Re: Listbox Speichern, + Listbox und Shellexecute
 
Ja, das wäre schon möglich, nur ich hätte halt gerne ein Config Programm, und ein Programm, das sich selber schliesst für den Autostart.
Ich muss halt nur die Pfade übergeben können.

Sharky 2. Feb 2005 18:30

Re: Listbox Speichern, + Listbox und Shellexecute
 
Zitat:

Zitat von killerkarl
Also ich möchte ein Programm haben, das sich manuell starten lässt...

Aber dafür brauchst Du keine visuellen Objekte (TForm, TListBox).
Delphi-Quellcode:
program Project1;

uses
  SysUtils,
  ShellApi,
  Windows,
  Classes;

  {$R *.res}

var
 sl : TStringList;
 i : Integer;
 datei : String;
begin
  datei := ExtractFilePath(ParamStr(0)) + 'test.cfg';
  if FileExists (datei) then
  begin
    sl := TStringList.Create;
    try
      sl.LoadFromFile(datei);
      for i:=0 to Pred(sl.count) do
      begin
        Shellexecute(0, nil,PAnsiChar(sl.Strings[i]), nil, nil, SW_SHOW);
       end;
    finally
      sl.free;
    end;
  end;
end.
[Edit]Die Konfigurationsdatei kannst Du ja mit einem zweiten Programm bearbeiten.

Binärbaum 3. Feb 2005 12:36

Re: Listbox Speichern, + Listbox und Shellexecute
 
Zitat:

Zitat von jfheins
Wenn es einfach nur das tun muss, reicht folgendes:
Delphi-Quellcode:
program Project1;

uses
  Forms, ShellAPI, Windows;

var
 i: Cardinal;
 Programme: Array[0..2] of String = ('notepad', 'calc', 'iexplore');

{$R *.res}

begin
  Application.Initialize;
  Application.Run;

for i := 0 to high (Programme) do
  Shellexecute(Application.Handle, nil, PChar(Programme[i]), nil, nil, SW_SHOW);

end.

Für diesen Zweck würde doch auch eine einfache Konsolen-Anwendung reichen. Dann spart man Ressourcen ein und der Programmstart dauert nicht so lange, wie bei einer "richtigen" Anwendung.
Also in etwa so:
Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE}

uses
   ShellAPI, Windows;

var
 i: Cardinal;
 Programme: Array[0..2] of String = ('notepad', 'calc', 'iexplore');

begin
 for i := 0 to high (Programme) do
  Shellexecute(0, nil, PChar(Programme[i]), nil, nil, SW_SHOW);
end.
MfG
Binärbaum

killerkarl 3. Feb 2005 15:24

Re: Listbox Speichern, + Listbox und Shellexecute
 
Ja, danke für die vielen antworten, aber das Problem ist die Bearbeitung der Config Datein...
Der rest ist kein problem..
Wenn man in dem Programm die Programme auswählt, die gestartet werden sollen, weiss ich cniht, wie ich die abspeichere.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:08 Uhr.
Seite 1 von 3  1 23      

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