Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Borland C++ Builder » Text finden und kopieren / ausschneiden

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
14.04.2005, 08:22 Uhr
~Sonja
Gast


Moin zusammen,

ich brauche einen Menüpunkt ( wie bei Windows üblich ) Bearbeiten -> kopieren / ausschneiden / einfügen.
Mit Edit1->CopyToClipboard(); klappt das auch. Nur muß ich da ja immer angeben welches Feld gerade markiert ist.
Aber wie bekomme ich das raus ???
Oder brauche ich da ne andere Funktion ? Ich möchte also ein beliebiges ( markiertes ) Editfeld
kopieren und dann in ein anderes Feld einfügen können.


Thanks
Sonja
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
14.04.2005, 10:22 Uhr
Th



Mit Form->ActiveControl bekommest du das Steuerelement, daß gerade den Focus besitzt, d.h. wenn du abfragst, ob es ein Edit-Feld ist, dann kannst du dann CopyToClipboard aufrufen (funktioniert auch für Memo-Felder).

C++:
if(Form->ActiveControl && Form->ActiveControl->ClassName() == "TEdit")
   ((TEdit*)(Form->ActiveControl))->CopyToClipboard();



Besser wäre es, zu prüfen, ob es eine Klasse ist, welche CopyToClipboard unterstützt, in diesem Fall TCustomEdit. Dafür gibt es die Methode InheritsFrom, also

C++:
TWinControl *pCtrl = Form->ActiveControl;
if(pCtrl && pCtrl->InheritsFrom(__classid(TCustomEdit)))
   ((TCustomEdit*)pCtrl)->CopyToClipboard();


Dies funktioniert dann auch für eigene oder andere von TCustomEdit abgeleitete Komponenten.

Dieser Post wurde am 14.04.2005 um 10:35 Uhr von Th editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
14.04.2005, 11:45 Uhr
~Sonja
Gast


Vielen Dank Th,

beim ersten Quellcode bekomme ich zwar ne Fehlermeldung :
E2094 'operator ==' ist im Typ 'ShortString' für Argumente des Typs 'char *' nicht implementiert.

Aber der zweite Quellcode funktioniert einwandfrei.

Danke nochmal.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
14.04.2005, 14:37 Uhr
Th



Hab ich einfach so hingeschrieben, daher fehlt wohl noch ein casting beim ersten Code:

C++:
if(Form->ActiveControl && Form->ActiveControl->ClassName() == ShortString("TEdit"))
   ((TEdit*)(Form->ActiveControl))->CopyToClipboard();


Aber der 2. Code ist ja auch besser, wie mir anschließend einfiel, als ich den ersten schon hingeschrieben hatte...

Dieser Post wurde am 14.04.2005 um 14:37 Uhr von Th editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Borland C++ Builder ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: