Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Richedit: Anzeige Einfügen/Überschreiben (https://www.delphipraxis.net/44406-richedit-anzeige-einfuegen-ueberschreiben.html)

Brüggendiek 19. Apr 2005 07:29


Richedit: Anzeige Einfügen/Überschreiben
 
Hallo!

Bei einem RichEdit möchte ich gerne eine Anzeige realisieren, ob das Feld auf Einfügen oder Überschreiben gestellt ist - wie es bei fast allen Editoren ja Standard ist.
Die Umschaltung ist ja bereits mit der 'Einfg'-Taste realisiert - da gibt es kein Problem.

Leider finde ich jedoch bei meinem Delphi 5 Standard keine Möglichkeit, den Zustand dieser Taste auszulesen. Im PSDK ist ebenfalls kein Flag dafür zu finden.
Bei mehreren RichEdits auf dem Formular geht es übrigens individuell zu - Einfügen auf einem RichEdit umschalten beeinflußt die anderen RichEdits nicht.
Gibt es eine Möglichkeit, den Status auszulesen - oder muß ich ein Flag mitführen und beim Drücken der Taste umschalten?

Danke im Vorraus

Dietmar Brüggendiek

Lannes 19. Apr 2005 09:00

Re: Richedit: Anzeige Einfügen/Überschreiben
 
Hallo,

versuch das mal, ob das mit D5 Standard geht?
Delphi-Quellcode:
if GetKeyState(VK_INSERT)=0 then
    Label1.Caption:='Insert'
    else Label1.Caption:='Replace';

Brüggendiek 20. Apr 2005 01:52

Re: Richedit: Anzeige Einfügen/Überschreiben
 
Hallo Lannes!

Danke für den Vorschlag, aber das geht leider nicht - jedenfalls nicht so, wie ich mir das vorgestell hatte.

Der von Dir vorgeschlagene "GetKeyState" enthält systemweit gültige Werte. Bei CapsLock und NumLock hat das ja auch Auswirkungen auf die eingegebenen Zeichen - OnKeyPress verarbeitet dann die Tasten entsprechend.
Leider hält sich kaum ein Programm an den systemweiten Einfügestatus. Die Delphi-IDE speichert den zuletzt benutzte Wert in der Desktop-Datei, er gilt dann für alle Editor-Tabs. Meine RichEdits starten grundsätzlich mit Einfügen und können einzeln auf Überschreiben umgestellt werden.
Die Anzeige ändert sich auch brav - aber ein "Einfg" außerhalb des RichEdits (anderes Control des Programms, ja sogar in anderen Programmen!) schaltet die Anzeige ebenfalls um.

Da die RichEdits auf die Einfügen-Taste reagieren können, muß es doch irgendwo ein Flag für diesen Wert geben. Eine Lösung mit parallel geführtem eigenen Flag riecht mir irgendwie zu sehr nach Pfusch.

Gruß

Dietmar Brüggendiek


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:14 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