OpenURL + OpenDocument in welcher Unit implementiert?

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.
Antworten
fpGUIcoder
Beiträge: 199
Registriert: Di 20. Okt 2015, 23:13

OpenURL + OpenDocument in welcher Unit implementiert?

Beitrag von fpGUIcoder »

Hallo!

Ich weiß bereits, dass diese beiden Funktionen in LCLIntf zwar definiert, aber nicht implementiert sind. Habe schon mit Grep gesucht aber leider ohne efolg. Gibt es etwa eine gleichnamige und parametergleiche Windows API Funktion? Befindet die sich dann in der Windows Unit? Oder in ShellAPI oder in WinSock?

Bin grad dabei den Quellcode von Lazarus bissl zu studieren, daraus ergibt sich diese Frage. Leider sind die möglicherweise relevanten Units in unterschiedlichen Ordneren und dazu noch der Code auf zahlreiche Include Dateien verteilt, welche die Suche zusätzlich erschweren.

Wer kann mir weiter helfen und die Unit mit der Imlementation dieser beiden im Titel genannten Funktionen verraten?

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: OpenURL + OpenDocument in welcher Unit implementiert?

Beitrag von wp_xyz »

Ich nehme an, dass in deinem Quellcode irgendwo "OpenURL(...)" sowie "uses lclintf" steht. Klick auf OpenURL mit gedrückter CTRL-Taste öffnet den Quelltext von OpenURL im Implementation-Teil (in früheren Versionen erfolgte der Sprung zum Interface-Teil - dann musst du noch SHIFT+CTRL+PfeilAuf oder Ab drücken um zur Implementation zu kommen.)

In diesem Fall wird die Implemantion in der Datei sysenvapis_win.inc geladen. Das ist weil ich Windows benutze. Unter Linux wird eine andere Datei geladen. Das liegt daran, dass LCLIntf je nach System andere Dateien einbindet.

Generell: Shift-Click und Shift+ctrl+Pfeilauf/ab sind die wichtigsten Tricks für die Navigation innerhalb der Lazarus/FPC Quelltexte.

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: OpenURL + OpenDocument in welcher Unit implementiert?

Beitrag von theo »

Oder mit dem Debugger durchsteppen, wenn die LCL mit Debug Info kompiliert ist.
Dann sieht man definitiv, was aufgerufen wird.

Antworten