CreateWindow
A('EDIT', ....)
und schon hat man ein "
TEdit" als
ANSI auf der Form.
Aber dennoch, warum unbedingt umständlich die Komponente als
ANSI?
Im OnChange kann man die Eingabe unmittelbar prüfen, um dem Nutzer zu sagen "nee, so nicht"
und beim Auslesen lösst sich das
Unicode problemlos in
ANSI umwandeln.
Beim Umwandeln dann ungültige Zeichen als '?' oder man wirft eine Fehlermeldung
und fertig.
Stichworte:
WinAPI,
NonVCL
Delphi-Quellcode:
var
H: HWND;
S: AnsiString;
begin
H := CreateWindowA('EDIT', 'Text 123', 0, 100, 50, 121, 21, Self.Handle, 0, HInstance, 0);
SetLength(S, GetWindowTextLengthA(H));
GetWindowTextA(H, PAnsiChar(S), Length(S) + 1);
ShowMessage(S);