![]() |
Re: Markierter Text in TField
Moin!
Sorry, die Nachricht heisst EM_REPLACESEL um die Selektion zu ersetzen. Nähere Info's dazu in der ![]() MfG Muetze1 |
Re: Markierter Text in TField
hey,
:thuimb: thxxx !! Genau das was ich benötigte! ...manche Probleme lösen sich ja fast von selbst :zwinker: ciao -se0man |
Re: Markierter Text in TField
:gruebel:
Jetzt noch eine kleine Frage: Ist es nötig, den markierten Text mit '' zu ersetzen, um ihn zu löschen, oder gibt es noch so etwas in der Richtung EM_DELETESEL, (was es ja nicht gibt... :lol: )?? -se0man |
Re: Markierter Text in TField
Ich muss mich verbessern:
Es ist nämlich nicht nur 'nicht nötig', sondern vielmehr 'nicht möglich' das mit EM_REPLACESEL zu machen. Das verursacht eine AV. :wall: Irgendwelche Ideen?? -se0man |
Re: Markierter Text in TField
OK, ich hab es:
Nennt sich WM_CLEAR. thx, trotzdem. -se0man |
Re: Markierter Text in TField
Nun, an dieser Stelle mach ich dann mal eine kleine Zusammenfassung,
dieses Threads, also Cut, Copy and Paste in einem Field.
Code:
thx
procedure Tform1.Cut;
begin // markierten Text kopieren Clipboard.AsText := GetDBGridSelText; // markierten Text löschen SendMessage(GetWindow(DBGrid.Handle,GW_CHILD),WM_CLEAR,0,0); end; procedure Tform1.Copy; begin // markierten Text kopieren Clipboard.AsText := GetDBGridSelText; end; procedure Tform1.Paste; var cardinalClipbrdText: Cardinal; begin // an aktueller Position einfügen cardinalClipbrdText := Cardinal(Clipboard.AsText); // kopierten Text als Cardinal in Variable SendMessage(GetWindow(DBGrid.Handle,GW_CHILD),EM_REPLACESEL,1,cardinalClipbrdText); // Text an aktueller Position ausgeben end; function Tform1.GetDBGridSelText: String; var cardinalWnd, cardinalSelStart, cardinalSelEnd : Cardinal; strBuffer : String; begin cardinalWnd := GetWindow(DBGrid.Handle,GW_CHILD); SendMessage(cardinalWnd,EM_GETSEL,Integer(@cardinalSelStart),Integer(@cardinalSelEnd)); SetLength(strBuffer,SendMessage(cardinalWnd,WM_GETTEXTLENGTH,0,0)+1); SendMessage(cardinalWnd,WM_GETTEXT,Length(strBuffer),Integer(@strBuffer[1])); Result := Copy(strBuffer,cardinalSelStart+1,cardinalSelEnd-cardinalSelStart); end; -se0man |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:06 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