(Ich habe leider derzeit kein Delphi.)
Wenn man mit Delphi arbeitet wird man auf Win sein. Da sollte es drei Proceduren geben, die das können (zuehmende Vielseitigkeit):
WinExec (nicht mehr empfohlen)
ShellExecute
CreateProcess
So kann man dann LibreOffice oder OpenOffice mit den nötigen Prarametern, darunter dem absuluten Pfadnamen der zu öffnenden Date, anlassen. Die Delphi Hilfe wird dazu auch etwas wissen.
Nachtrag1: Ich habe das auch selbst gemacht, allerdings nicht mit Delphi, sondern mit Lazarus. Das ist aber insoweit voll kompatibel. Es genügt übrigens, den Dateinamen anstatt der Anwendung anzugeben (und dann einen leeren Parameterstring), wenn auf dem System die betreffende Dateiendung zur Ausführing LibreOffice zugeordnet ist.
Nachtrag2: Ich vermute, die Ziele sind bescheidener, als Regina unterstellt. Ich gebe deshalb den code einer Ereignisbehandlungsroutine an, die mit OnClick für einen Button verbunden ist:
procedure TForm1.Button1Click(Sender: TObject);
var OpenWith, TheFile, Returned: String; i: LongInt;
begin
OpenWith := 'C:\Program Files\LibreOffice 5\program\soffice.exe';
{Default location of LibO5-64 on a recent Win}
TheFile := Edit1.Text;
i := ShellExecute(Form1.Handle,PChar('open'),PChar(OpenWith),PChar(TheFile),PChar(''),1);
Str(i, Returned);
Edit1.Text:= Edit1.Text + ' got number '+ Returned;
end;
Natürlich muss Edit1 in Form1 existieren und passend befüllt sein. Außerdim ist die Unit ShellAPI einzubinden. Dann arbeitet das in Lazarus wirklich. Soll ich “die .exe” zur Demo zur Verfügung stellen?