Einzelnen Beitrag anzeigen

praktiker

Registriert seit: 9. Jun 2003
Ort: Hesedorf
11 Beiträge
 
#3
  Alt 9. Jun 2003, 11:56
Hi,

setze erfolgreich diese von mir entwickelte Variante ein

Delphi-Quellcode:
(* Schließt alle offenen Datenbanken*) 
procedure closealldatabase;
var i:integer;
begin
if session.databasecount > 0 then
for i:=0 to Session.DatabaseCount-1 do
Session.Databases[i].Close;

end;

function startwinproc(const value:String;param:String;Mode: boolean ):hwnd;

type
TfileName = array [0..128] of char; {Für Windows Aufrufkonvention} 
pFileName = ^TfileName; {Zeiger auf Char Nullterminiert bereitstellen} 
varszbuffer:Tfilename; {ZeigerVariable für das Array} 
czbuffer:Tfilename; {ZeigerVariable für das Array} 
pBuffer:pFilename;
cBuffer:pFilename; {Zeiger auf den Dateinamen} 
begin
result:=0;

if mode and not FileExists(value) then
showmessage(format( 'Laden des externen Programms %s fehlgeschlagen.',[value]));
pbuffer:=@szbuffer; {Puffer zuweisen} 
cBuffer:=@czBuffer;
strPcopy(pbuffer^,value); {Nulltermierter String wandeln} 
strPcopy(cbuffer^,Param); {Nulltermierter String wandeln} 
result:=ShellExecute(Application.Handle,PChar('open'),szbuffer,czBuffer,nil,SW_NORMAL);
end;

procedure Restartprogram;
var param:^String;
begin

new(param);
closealldatabase; // Siehe Funktion oben
(* GGF Parameter mit auf den Weg geben sonst mit '' vorbelegen!*) 
param^:=''; // für Kommandzeile
Startwinproc(paramstr(0),Param^,true) ;// Siehe Funktion oben
dispose(param);
application.terminate;
end;
[Edit=Sakura]Delphi-Tags gesetzt[/Edit]
  Mit Zitat antworten Zitat