Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Schriftgrößenänderung in RichEdit sperren


hRb - Fr 21.11.14 18:51
Titel: Schriftgrößenänderung in RichEdit sperren
Im RichEdit-Objekt ändert sich an meinem PC bei gedrückter linker Maustaste und Bewegung des Rollrades die Schriftgröße. Selbst über eine neue Zuweisung von RichEdit.Font.Size und RichEdit.Font.Height lässt sich die Größe nicht zurücksetzen. Bei einer TEdit-Komponente geschieht dies nicht. Wie kann man die Größenänderung durch die Maus in Richedit sperren? (Im Logitechtreiber finde ich keine Einstellmöglichkeit).
PS: in einem gekauften Editorprogramm beobachte ich diesen Effekt auch. Windows-Eigenschaft?


galagher - Fr 21.11.14 18:58

user profile iconhRb hat folgendes geschrieben Zum zitierten Posting springen:
Im RichEdit-Objekt ändert sich an meinem PC bei gedrückter linker Maustaste und Bewegung des Rollrades die Schriftgröße.


So kannst du das abstellen:

Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.RichEdit1MouseWheel(Sender: TObject; Shift: TShiftState;
  WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
  Handled := True;
end;


user profile iconhRb hat folgendes geschrieben Zum zitierten Posting springen:
PS: in einem gekauften Editorprogramm beobachte ich diesen Effekt auch. Windows-Eigenschaft?

Sieht danach aus! Ist wohl eine Eigenschaft von TRichEdit- und davon abgeleiteten Komponenten.


hRb - Fr 21.11.14 19:10

Danke für schnelle Antwort. Diese Anweisung verhindert tatsächlich die Änderung der Schriftgröße. Aber jetzt kann ich mit dem Maus-Rad auch nicht mehr scrollen. Gibt es statt des "großen Hammers" auch eine spezielle Lösung für mein Problem?


galagher - Fr 21.11.14 19:20

user profile iconhRb hat folgendes geschrieben Zum zitierten Posting springen:
Gibt es statt des "großen Hammers" auch eine spezielle Lösung für mein Problem?

Hab's auch nur einfach schnell mal getestet!

Damit kommst du der Lösung vielleicht besser näher:

Delphi-Quelltext
1:
2:
if (ssLeft in Shift) then
  Handled := True;


//Edit:
Etwas eleganter:

Delphi-Quelltext
1:
  Handled := (ssLeft in Shift);                    


hRb - Fr 21.11.14 20:34

Danke, funktioniert bestens!!!


galagher - Fr 21.11.14 21:56

user profile iconhRb hat folgendes geschrieben Zum zitierten Posting springen:
Danke, funktioniert bestens!!!

Ich bedanke mich auch! Habe deine Frage gelesen, dadurch konnte ich dieses Verhalten auch bei meinem Programm abstellen.
Ich kannte das bis jetzt gar nicht!