Autor Beitrag
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Fr 28.11.08 12:09 
Hallo,
ich habe ein programm von Delphi nach Lazarus portiert, um es auch u.a. unter Linux (Debian) und Mac laufen soll.
Das Problem: Ich brauche ein Pendant zu ShellExecute, dass auf allen Plattformen funktionert.

Hauptsächlich geht es darum, eine URL im Browser zu öffnen (Möglichst Standartbrowser)
Daneben wäre es gut, auch eine Datei, die aus einem Memo gespeichert wurde, im Browser zu öffnen (HTML)

Wie mache ich das?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 28.11.08 12:34 
Grundsätzlich hilft dir dabei TProcess, das ist das plattformübergreifende Pendant zu ShellExecute. Zum Benutzen des Standardbrowsers gibt es z.B. hier eine Diskussion:
www.lazarus.freepasc...viewtopic&t=1719

TProcess an sich sieht so aus:
wiki.lazarus.freepas...External_Programs/de
Flamefire Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Mi 03.12.08 12:24 
hab ich gesehn...
aber irgendwie will das mit dem standartbrowser nicht funktionieren...
der kennt die funktionen nicht (kommt mir spanisch vor. wortwörtlich)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 03.12.08 12:24 
Was hast du denn versucht? Und was genau ging dabei schief?
Flamefire Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Mi 03.12.08 12:30 
1) die openurl funktion aus dem link: "shell()" ist nicht bekannt (in welcher unit soll die sein? hab was von wegen linux/unix unit gelesen; aber ich wills ja auch unter win und mac haben)
2) die aprifile funtion: "TipoDeskMang","MettiVirgolette","EmettiErrore"... sind unbekannt
außerdem sieht die funtion auch nicht so aus, als würde sie überall laufen...(wegen der if abfrage)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 03.12.08 12:46 
user profile iconFlamefire hat folgendes geschrieben Zum zitierten Posting springen:
2) die aprifile funtion: "TipoDeskMang","MettiVirgolette","EmettiErrore"... sind unbekannt
Ich kann zwar nicht italienisch, aber was die Funktionen, die es bei dir nicht gibt (weil die selbst definiert sind), machen, verstehe ich trotzdem...
MettiVirgolette, ein Blick ins Online-Wörterbuch sagt mir, dass virgoletta Anführungszeichen heißt. Also soll es die vermutlich hinzufügen, was auch logisch ist, da wie du danach siehst der Parameter einfach angehängt wird und dafür ja Anführungszeichen braucht.
EmettiErrore brauche ich gar nicht nachschauen, das soll sicher eine Fehlermeldung anzeigen.
Und bei TipoDeskMang siehst du ja, welche Werte es bekommen kann, dementsprechend musst du es eben definieren:
ausblenden Delphi-Quelltext
1:
2:
type
  TipoDeskMang = (dmBoh, dmGnome, dmKde);


user profile iconFlamefire hat folgendes geschrieben Zum zitierten Posting springen:
außerdem sieht die funtion auch nicht so aus, als würde sie überall laufen...(wegen der if abfrage)
Ähm, es wird gerade deshalb zwischen Windows und Linux unterschieden, damit es auf beidem läuft...

// EDIT:
user profile iconFlamefire hat folgendes geschrieben Zum zitierten Posting springen:
1) die openurl funktion aus dem link: "shell()" ist nicht bekannt (in welcher unit soll die sein? hab was von wegen linux/unix unit gelesen; aber ich wills ja auch unter win und mac haben)
Das ist sicherlich eine dafür definierte Funktion, um das Ausführen des zusammengebastelten Kommandos zu vereinfachen.
Flamefire Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Do 04.12.08 12:52 
ach italiensich war das...habs mit spanisch versucht ^^

hmm...da ich von linux und mac eigendlich 0 Ahnung habe: kann ich mit meinem Win-rechner irgendwie das ganze testen?
also z.b. ne emulation oder virtuelle festplatte, wo ich das kompilieren kann und testen, obs überhaupt geht und wie?

was ist z.b. das gnome und was das kde?
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 04.12.08 12:55 
Zumindest Linux könntest Du Dir in einer virtuellen Maschine (z.B. VirtualBox) installieren und das Programm dort testen. Und KDE und Gnome sind Fenstermanager für die grafische Oberfläche. Es gibt da noch einige mehr, aber diese beiden sind die bekanntesten.