![]() |
TRichEdit: Mausrad-Zoom?
Hallo! Wie ich kürzlich durch Zufall entdeckt habe, kann ich im neuesten TRichEdit (Delphi 12, Windows 11, PlainText=True) bei gedrückter CTRL-Taste mit dem Mausrad (MouseWheel) zur Laufzeit den Text-Inhalt raus- und reinzoomen. (Ich weiß nicht, ob es dieses Mausrad-Zoom bei TRichEdit schon länger gibt). Dabei wird jedoch weder die Zoom-Eigenschaft noch der Font-Size des RichEdit-Controls verändert. Offensichtlich funktioniert diese Art von Zoom intern.
Weiß jemand, wie der Wert dieser Art von Zoom zum Zweck der Wiederherstellung ausgelesen werden kann? |
AW: TRichEdit: Mausrad-Zoom?
Seltsamerweise gibt diese Funktion in Delphi 12.1 dieses Ergebnis zurück: "RichEdit 2.0":
Delphi-Quellcode:
function GetRichEditVersion(RichEdit: TRichEdit): string;
var ClassName: array[0..255] of Char; begin // Get the window class name of the RichEdit control if GetClassName(RichEdit.Handle, ClassName, Length(ClassName)) > 0 then begin if StrPos(ClassName, 'RICHEDIT50W') <> nil then Result := 'RichEdit 4.1' else if StrPos(ClassName, 'RichEdit20W') <> nil then Result := 'RichEdit 3.0' else if StrPos(ClassName, 'RichEdit') <> nil then Result := 'RichEdit 2.0' else Result := 'RichEdit 1.0 or older'; end else Result := 'Unable to determine RichEdit version'; end; |
AW: TRichEdit: Mausrad-Zoom?
Ich habe diese History von TRichEdit gefunden:
• RichEdit 1.0: The first version, very basic, supports only ANSI text. • RichEdit 2.0: Introduced with Windows 95, supports Unicode. • RichEdit 3.0: Introduced in Windows 2000/XP, added more features such as better font handling. • RichEdit 4.0 and later: RichEdit 4.1 is included with Windows Vista and later, with advanced features such as zoom support (which is what TRichEdit in modern Delphi versions typically wraps). |
AW: TRichEdit: Mausrad-Zoom?
Weil dein Test Blödsinn ist und du nichtmal verifiziert hast, was GetClassName liefert.
Oder was erwartest du, wenn GetClassName "TRichEdit" zurück gibt? Und auch RealGetWindowClass hilft hier nicht, auch wenn ich etwas erwartet hätte, es liefert den Basis-/Vorfahrtypen vom SuperClassing. Hat Raymond etwa nicht Recht? ![]() [add]
Delphi-Quellcode:
= RICHEDIT50W
type
TWinControlAccess = class(TWinControl); procedure TForm2.FormCreate(Sender: TObject); var Params: TCreateParams; begin TWinControlAccess(RichEdit1).CreateParams(Params); ShowMessage(Params.WindowClass.lpszClassName); Aber das ist auch irgendwie klar, denn Zitat:
![]() ![]() |
AW: TRichEdit: Mausrad-Zoom?
Hier ist eine erweiterte Version:
Delphi-Quellcode:
Aber bis jetzt hat noch niemand auf meine eigentliche Ausgangsfrage geantwortet:
type
TWinControlAccess = class(TWinControl); function GetMyRichEditVersion(RichEdit: TRichEdit): string; var ClassName: array[0..255] of Char; Params: TCreateParams; begin // First, check the class name created by TRichEdit TWinControlAccess(RichEdit).CreateParams(Params); ShowMessage('CreateParams ClassName: ' + string(Params.WindowClass.lpszClassName)); // Now, use GetClassName to check the actual class name at runtime if GetClassName(RichEdit.Handle, ClassName, Length(ClassName)) > 0 then begin ShowMessage('GetClassName: ' + string(ClassName)); // Display runtime class name if StrPos(ClassName, 'RICHEDIT50W') <> nil then Result := 'RichEdit 4.1' else if StrPos(ClassName, 'RichEdit20W') <> nil then Result := 'RichEdit 3.0' else if StrPos(ClassName, 'RichEdit') <> nil then Result := 'RichEdit 2.0' else Result := 'RichEdit 1.0 or older'; end else Result := 'Unable to determine RichEdit version'; end; "Weiß jemand, wie der Wert dieser Art von Zoom zum Zweck der Wiederherstellung ausgelesen werden kann?" |
AW: TRichEdit: Mausrad-Zoom?
Liste der Anhänge anzeigen (Anzahl: 1)
Aber um nochmals auf die Frage zur Version von RichEdit zurückzukommen, die TRichEdit zugrunde liegt (welches lediglich Windows RichEdit in eine Delphi-Komponente verpackt), beantwortet WinSpy++ diese Frage:
Anhang 57139 |
AW: TRichEdit: Mausrad-Zoom?
Wieso kommt niemand auf die Idee die Hilfe zu fragen?
![]() ![]() ![]() ![]() ![]() und natürlich ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:13 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