Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#1

Painting in the code editor

  Alt 31. Mai 2020, 22:51
Ich möchte bestimmte Texte im Codeeditor farbig hinterlegen.

Ein früherer Ansatz über IOTAHighlighter (https://www.delphipraxis.net/204355-...hlighting.html) schägt offenbar fehl (ist auch so im Netz als Problem zu finden).


Einen anderen Ansatz beschreibt David von Parnassus (woher auch die neuen Bookmarks stammen).

-> https://parnassus.co/mysteries-of-id...editor-part-1/

Ich habe das soweit nachgebaut und versucht, das Beispiel aus dem Screenshot zu erreichen.
Es wird als Basisfall einfach "Hello Word" links oben in den Editor gemalt.

Wenn das funktioniert, lässt sich das weiter ausbauen, was auch in einem zweiten Teil näher beschrieben wird.

-> https://parnassus.co/mysteries-ide-p...editor-part-2/


Aber ich komme mit Part 1 noch nicht ganz zurecht.
Ich habe bereits alles umsetzen können bis auf EINEN Punkt:
Delphi-Quellcode:
 FOriginalPaintLine := TCodeRedirect.GetActualAddr(GetProcAddress(FCoreIDEHandle, '@Editorcontrol@TCustomEditControl@PaintLine$qqrr16Ek@TPaintContextiii'));
 // Patch the code editor’s PaintLine to use our method
 FPaintLineHook := TCodeRedirect.Create(@FOriginalPaintLine, @HookedIDEPaintLine);
Zitat:
Note: FCoreIDEHandle is the module handle of coreide*.bpl, loaded into the current process. Finding this is left as an exercise for the reader, and there are variety of ways. This method may get you started.
-> https://stackoverflow.com/questions/...unction-within

FCoreIDEHandle ist nicht bekannt. In den Hinweisen ist das bereits erläutert und man muss irgendwie die IDECore.dll laden und dort zur Laufzeit suchen.
Ob der Controlname noch stimmt, weiß ich auch nicht.
Ich hätte aber auf jeden Fall Interesse, den Weg noch weiter zu versuchen (ist schwierig als Autodidakt).

Kann hier jemand helfen??? Oder hat jemand Grundkenntnisse bei der Verwendung einer DLL und Interesse an dem Thema?

Wir könnten die unfertigen Units entsprechend teilen und weiter entwickeln...
Miniaturansicht angehängter Grafiken
31-05-_2020_23-04-14.png  
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat