Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Markierten Text in Edit Feld übertragen (https://www.delphipraxis.net/91209-markierten-text-edit-feld-uebertragen.html)

Nagetier 1. Mai 2007 15:08


Markierten Text in Edit Feld übertragen
 
Wie kann ich es programmtechnisch realisieren, dass ich in einem Edit Feld Text Markiere, dann duch drücken eines Buttons diesen Text in ein anderes EditFeld übertrage?

Delphi-Quellcode:
Edit1.Text := Edit2.Text
Der Code fällt ja schonmal weg, da dieser zu statisch ist, ich will ein kleines Clipboard in meinem Programm realisieren, undweiß nicht, wie die Bezeichnung für markierten Text ist...

Danke

Helmi 1. Mai 2007 15:11

Re: Markierten Text in Edit Feld übertragen
 
Hallo,

probiers doch mal mit SelText:

Delphi-Quellcode:
Edit2.Text := Edit1.SelText;

Matze 1. Mai 2007 15:12

Re: Markierten Text in Edit Feld übertragen
 
Ich bin mir nicht ganz sicher, aber einige Controls haben die Eigenschaft SelText.

Edit: Zu langsam, mal wieder ...

mkinzler 1. Mai 2007 15:12

Re: Markierten Text in Edit Feld übertragen
 
Warum eine eigene Zwischenablage implemnetieren und verwendest nicht die vorhandene?

Hafish 1. Mai 2007 15:18

Re: Markierten Text in Edit Feld übertragen
 
Delphi-Quellcode:
SendMessage(Edit1.Handle, WM_COPY,0,0);
Edit2.Text := '';
SendMessage(Edit2.Handle, WM_PASTE,0,0);

Matze 1. Mai 2007 15:22

Re: Markierten Text in Edit Feld übertragen
 
Das ginge auch über die Clipbrd-Unit:

Delphi-Quellcode:
uses Clipbrd;
...
// copy
Clipboard.AsText := Edit1.SelText;

// paste
Edit2.Text := Clipboard.AsText;

Nagetier 1. Mai 2007 16:02

Re: Markierten Text in Edit Feld übertragen
 
Das das alles so geht ist klar, mein problem ist aber doch, dass ich das nicht an einzelne Felder binden will, sondern egal, was markiert ist irgendwo (in einem Edit Feld, Memo etc pp), dass das kopiert wird, nur "SelText" geht ja leider nicht :-/

Apollonius 1. Mai 2007 16:08

Re: Markierten Text in Edit Feld übertragen
 
Sowohl Edit als auch Memo und Richedit, also die Controls, die du haben willst, sind letztlich von TCustomEdit abgeleitet. Du prüfst also, welches Control aktiv ist, schaust mit is nach, ob es ein TCustomEdit ist, castest es nach TCustomEdit und fertig ist die Laube.
Hoffe geholfen zu haben
Apollonius

Nagetier 1. Mai 2007 16:13

Re: Markierten Text in Edit Feld übertragen
 
Ja, das würde dann heißen, dass ich jetzt quasi n Variable festlege und diese Variable dann immer den Namen des Edit Feldes annimmt, welches aktiv ist?

Und dann kann ich das ableiten, joa gute Idee ;)
Ich probiers mal und stell bei Erfolg den Code rein...

//Geht nicht, leider wie meintest du das dann genau, wie soll ich das prüfen, das ist mir nicht ganz verständlich...

Apollonius 1. Mai 2007 16:39

Re: Markierten Text in Edit Feld übertragen
 
Ich erkläre es noch mal genauer.
Du musst es mit einem SpeedButton lösen, denn der Button, den du klickst, klaut dir den Fokus, sodass dein Edit oder Memo oder wasauchimmer nicht mehr aktiv ist. Hier ist mein Code für das onClick des Speedbuttons:
Delphi-Quellcode:
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if not (activecontrol is TCustomEdit) then //Falls das aktive Control kein TCustomEdit, also z.B. Memo oder Edit ist,
 exit;                                     // wird sofort abgebrochen
Memo2.lines.commatext:=TCustomEdit(activeControl).SelText; //Ich caste das aktive Control nach TCustomEdit und
end;                                                       //verwende dessen Eigenschaft selText, um den markierten
                                                            //Text in Memo2 zu schreiben
Bei mir funktioniert das mit Edits und Memos.
Hoffe geholfen zu haben
Apollonius


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:26 Uhr.
Seite 1 von 2  1 2      

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