![]() |
Editorschriftart auslesen
Wie
![]() Die erste Kleinigkeit hab ich schon behoben, eine Zugriffsverletzung, sobald im Blame-Bereich ein Tooltip gezeichnet werden sollte. Da stimmt etwas mit dem gestylten Zeichnen des Tooltips in TBlameHintWindow.PaintHint nicht. Was genau kann ich nicht sagen, für mich sieht der Tooltip aber auch in clBtnFace gut aus, und es gibt jetzt keine Zugriffsverletzung mehr ;-) Die zweite Kleinigkeit geht tiefer: Die Schriftart der Liveblame Paintbox ist fest auf Courier New mit 10Pt verdrahtet. Das ist ungünstig für Leute, die gerne andere Schriftarten oder auch nur -größen verwenden wollen. Immerhin "verrutschen" dann die Commits gegenüber den Zeilen. Ich könnte jetzt hergehen und meinen Font fest verdrahten, mir wäre aber eine flexiblere Behandlung lieber, und das Plugin liest ja ohnehin schon so einiges aus der IDE aus. Hier also die Frage: <TLDR> Wie lese ich die Editorschriftart aus der IDE aus? Welches ![]() Sherlock |
AW: Editorschriftart auslesen
Wenn es keine Möglichkeit gibt per OTA-Interfaces ran zu kommen, kannst du immer noch per Registry arbeiten und die Werte auslesen.
Beispiel: Computer\HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BD S\21.0\Editor\Options und dann der Schüssel "Editor Font" und "Font Size". |
AW: Editorschriftart auslesen
Da tippe ich mal auf IOTAEditorServices.
Ansonsten schau doch mal hier, ob da was hilfreiches und brauchbares zum Thema bei ist: ![]() |
AW: Editorschriftart auslesen
Delphi-Quellcode:
IOTAEditOptions60 = interface(IUnknown)
['{487BEA91-DBC0-11D2-ABDE-00C04FB16FB3}'] function AddSpeedSetting(const SpeedSetting: IOTASpeedSetting): Integer; procedure BeginUpdate; procedure EndUpdate; function GetBlockIndent: Integer; function GetBufferOptions: IOTABufferOptions; function GetFontName: string; // <--- ah, hier! function GetFontSize: Integer; ... |
AW: Editorschriftart auslesen
Danke! Probier ich gleich mal aus. Werde berichten ob es geklappt hat.
Sherlock |
AW: Editorschriftart auslesen
Klappt prima. Habe die TLiveBlameEditorPanel.PaintBoxPaint Methode um folgendes ergänzt:
Code:
Und verwende die beiden Fonteigenschaften wo gebraucht. Das ging viel schneller als erwartet. Dann schau ich mir mal an, warum das Styling für den Tooltip ab 10.3 nicht mehr funktioniert.
try
// Ungefähr so gefunden bei David Hoyle - https://github.com/Embarcadero/OTAPI-Docs/blob/main/The%20Delphi%20IDE%20Open%20Tools%20API%20-%20Version%201.2.md With (BorlandIDEServices As IOTAEditorServices) Do if EditOptionsCount > 0 then begin FontName := EditorOptions[0].FontName; FontSize := EditorOptions[0].FontSize; end; except FontName := 'Consolas'; FontSize := 11; end; Sherlock |
AW: Editorschriftart auslesen
Was liefert dein Code bei NICHT
Delphi-Quellcode:
:duck:
if EditOptionsCount > 0 then
|
AW: Editorschriftart auslesen
:D
Mittlerweile 11Pt Consolas ;-) Ich war so froh, daß es lief, da hab ich die Details erst später rund gemacht. Sherlock |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz