![]() |
AW: Welches Ereignis muß ich tEdit verändern?
Ist doch das gleiche ... oder nicht?
Mit SendMessage(Self.Handle, ..., ..., ...) oder Perform(..., ..., ...) kann ich doch auch die Eingabefolge bestimmen. |
AW: Welches Ereignis muß ich tEdit verändern?
Das ist sicherlich nicht das gleiche...
Ich bin jetzt zu faul zum Schreiben, deshalb eine kopierter Ausblick auf die Mühe mit Sendmessage...
Delphi-Quellcode:
Sollte dir nach kurzer Analyse vielleicht weiter helfen...
const
MY_MESSAGE = WM_USER + 4242; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); // Handler that receive the Message procedure MessageReceiver(var msg: TMessage); message MY_MESSAGE; end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); var txt: string; begin txt := 'Hello World'; SendMessage(Form1.Handle, MY_MESSAGE, 0, DWORD(PChar(txt))); end; // To receive this custom Message that is addressed to form1.handle // you need a message handler. procedure TForm1.MessageReceiver(var msg: TMessage); var txt: PChar; begin txt := PChar(msg.lParam); msg.Result := 1; ShowMessage(txt); end; |
AW: Welches Ereignis muß ich tEdit verändern?
Hier noch ein "kleines" Beispiel:
Delphi-Quellcode:
Funktionsaufruf:
function GetActiveWord(rch : TRichedit;x,y: integer): string;
var pos : Integer; poin : TPoint; start_pos : Integer; end_pos : Integer; c : Char; txt : string; txtlen : Integer; begin poin.x := x; poin.y := y; pos := SendMessage(rch.handle, EM_CHARFROMPOS, 0, integer(@poin)); If pos <= 0 Then Exit; txt := rch.Text; while (pos > 0)and(txt[pos] in ['0'..'9','a'..'z','A'..'Z','_', 'ö','Ö','ü','Ü','ä','Ä']) do dec(pos); start_pos := pos+1; inc(pos); while (pos < length(txt))and(txt[pos] in ['0'..'9','a'..'z','A'..'Z','_', 'ö','Ö','ü','Ü','ä','Ä']) do inc(pos); end_pos := pos; result := copy(txt,start_pos,end_pos-start_pos); end;
Delphi-Quellcode:
Aber warum nicht einfach, wenn's auch umständlich geht...
procedure TForm1.RichEdit1MouseMove(Sender: TObject; Shift: TShiftState;
X,Y: Integer); begin statusbar1.SimpleText := GetActiveWord(richedit1,x,y); end; Wie bereits erwähnt: Was hast du eigentlich vor? Willste nur z.B. bei einer Passworteingabe ins PW-Verifizierungsfeld springen??? |
AW: Welches Ereignis muß ich tEdit verändern?
Nein, das ist ein Organisationsprogramm.
Ich habe es: procedure TriggerKeyOnPress(Sender: tObject; var key: char); begin ... ... if ord(key) = VK_RETURN then beginn key := #0; Perform(WM_NextDlgCrt, 0, 0); end; ... ... end; Vielen Dank!! |
AW: Welches Ereignis muß ich tEdit verändern?
Crt?
![]() ![]() Aber was ist/war eigentlich so schwer daran einfach mal zu erklären was genau du wolltest? Und Quellcode bitte in [DELPHI] :zwinker: |
AW: Welches Ereignis muß ich tEdit verändern?
|
AW: Welches Ereignis muß ich tEdit verändern?
@zillee
If you prefer to use the english language, it would be better to do so. greetings K-H |
AW: Welches Ereignis muß ich tEdit verändern?
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:53 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