AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Editorschriftart auslesen

Ein Thema von Sherlock · begonnen am 7. Jul 2022 · letzter Beitrag vom 8. Jul 2022
Antwort Antwort
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#1

Editorschriftart auslesen

  Alt 7. Jul 2022, 13:39
Wie hier beschrieben, bin ich gerade dabei ein bis zwei Kleinigkeiten in dem LiveBlame Plugin zu beheben. Ich bin kein großer Plugin Held, ich habe mir dieses Projekt ausgesucht, weil es schon fertig ist, und die störenden Kleinigkeiten mir einfach zu beheben erschienen

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 Service Interface muss ich dazu nutzen?

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Editorschriftart auslesen

  Alt 7. Jul 2022, 14:17
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".
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#3

AW: Editorschriftart auslesen

  Alt 7. Jul 2022, 14:17
Da tippe ich mal auf IOTAEditorServices.

Ansonsten schau doch mal hier, ob da was hilfreiches und brauchbares zum Thema bei ist: Dave's Development Blog
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Editorschriftart auslesen

  Alt 7. Jul 2022, 14:20
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;
...
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#5

AW: Editorschriftart auslesen

  Alt 7. Jul 2022, 15:16
Danke! Probier ich gleich mal aus. Werde berichten ob es geklappt hat.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#6

AW: Editorschriftart auslesen

  Alt 7. Jul 2022, 16:25
Klappt prima. Habe die TLiveBlameEditorPanel.PaintBoxPaint Methode um folgendes ergänzt:
Code:
              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;
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.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#7

AW: Editorschriftart auslesen

  Alt 7. Jul 2022, 17:58
Was liefert dein Code bei NICHT if EditOptionsCount > 0 then
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#8

AW: Editorschriftart auslesen

  Alt 8. Jul 2022, 11:07

Mittlerweile 11Pt Consolas

Ich war so froh, daß es lief, da hab ich die Details erst später rund gemacht.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:32 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