Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Delphi-IDE: Cursor positionieren (https://www.delphipraxis.net/175918-delphi-ide-cursor-positionieren.html)

MacGuyver 29. Jul 2013 14:23

Delphi-IDE: Cursor positionieren
 
Moin Leute :hi:

Ich möchte von meiner Anwendung aus eine Textdatei in Delhpi öffnen und der Cursor soll gleich an einer bestimmten Stelle stehen. Ich habe mir schon einen Ast gesucht aber nichts gefunden. Geht das über einen Experten oder so? Ich hätte am liebsten einfach eine Funktion: OpenTxtFileInIDE(Dateiname, Zeile, Spalte). Beim Notepadd++ öffne ich einfach die Textdatei mit Spalte und Zeile als Parameter. Er startet dann nicht neu und stellt den Cursor an die gewünschte Stelle. Wie mache ich das mit der IDE?

Sir Rufo 29. Jul 2013 15:46

AW: Delphi-IDE: Cursor positionieren
 
Notepad++ wird sehr wohl erneut gestartet, erkennt eine existierende Instanz und übergibt die Parameter an diese und beendet sich.

Ist die Datei schon geöffnet, so wird der entsprechende Tab aktiviert, ansonsten die Datei geladen.

Die Parameter mit der x,y Position werden dann entsprechend behandelt.

Ein entsprechender Start-Parameter ist mir bei der IDE nicht bekannt.

MacGuyver 29. Jul 2013 16:21

AW: Delphi-IDE: Cursor positionieren
 
Danke für die fixe Antwort. Das was du geschrieben hast, weiß ich bereits, wollte nicht fett erklären wie Notepad++ das macht. Der aktuelle Gadanke ist, ihm mit SendKeys zu sagen, was er soll. Da muss es aber einen schöneren Weg geben.

dummzeuch 29. Jul 2013 20:04

AW: Delphi-IDE: Cursor positionieren
 
Eine einfache Loesung z.B. per Parameter beim Aufruf ist mir nicht bekannt.

Wenn es etwas komplizierter sein darf: GExperts hat in der Unit GTX_OtaUtils eine Procedure GxOtaGotoEditPos. Man koennte auf dem dort benutzten Prinzip basierend ein IDE Plugin schreiben, welches von extern gesagt bekommt, welche Datei zu oeffnen ist und wo der Cursor zu positionieren ist.

MacGuyver 30. Jul 2013 10:51

AW: Delphi-IDE: Cursor positionieren
 
Die Idee mit dem Experten finde ich gut. Ich habe es so weit, wenn ich auf einen Menüeintrag klicke, dass die gewünschte Datei geladen/angezeigt wird und der Cursor an eine gewünschte Position springt. Wie sage ich meinem Experten von außen, welche Datei er öffnen soll und in welche Zeile er springen soll? Vielleicht einen Timer über 1000ms prüfen, ob eine Datei da ist, die die Informationen inne hat. Oder über Pipes? Für Beides brauche ich einen Timer. Kann ich eine Botschaft dort hinschicken?

MacGuyver 30. Jul 2013 14:00

AW: Delphi-IDE: Cursor positionieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Fertig! :thumb:

Ich habe den einfachen Weg über einen Timer gewählt. In %AppData% einfach eine Datei mit dem Namen "OpenFileInDelphiIDE.txt" ablegen. Inhalt

Dateinamen
Zeilennummer

Und schon wechselt/öffnet die IDE die Datei und positioniert den Cursor. Nun muss man nur noch ein Handle zur IDE suchen und das Fenster in den Vordergrund holen.


Wenn jemand das schöner machen will, kann er das hier gerne dranhängen. Bei zwei geöffneten IDEs, z.B. klappt das dann nicht so.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz