Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi myedit.SelectAll ersetzen durch (Sender as TEdit).SelectAll (https://www.delphipraxis.net/104910-myedit-selectall-ersetzen-durch-sender-tedit-selectall.html)

eddy 12. Dez 2007 17:32


myedit.SelectAll ersetzen durch (Sender as TEdit).SelectAll
 
Hallo Leute,

ich möchte
Delphi-Quellcode:
myedit : TEdit;

procedure TForm.Kopieren1Click(Sender: TObject);
begin
  myedit.SelectAll;
  myedit.CopyToClipboard;
end;
ersetzen durch:
Delphi-Quellcode:
procedure TForm.Kopieren1Click(Sender: TObject);
begin
  (Sender as TEdit).SelectAll;
  (Sender as TEdit).CopyToClipboard;
end;
bekomme aber immer nur: EInvalidCast - ungültige Typumwandlung.

Kann mir jemand bei der Lösung helfen?

mfg
eddy

DeddyH 12. Dez 2007 17:35

Re: myedit.SelectAll ersetzen durch (Sender as TEdit).Select
 
Kopieren1 ist ein Button, nehme ich an. Was ist dann wohl der Sender, wenn Du diesen anklickst? Bestimmt kein Edit.

eddy 12. Dez 2007 17:58

Re: myedit.SelectAll ersetzen durch (Sender as TEdit).Select
 
Hallo DeddyH,

ich hab' schon geahnt, daß es an einem schweren Denkfehler meinerseits lag.

Der Sender ist in der Tat ein TMenuItem, und mit Deinem Hinweis zusammen ist mir nun auch klar, warum der obige Code Unsinn ist.

Wie kann ich nun aber auf den Name des Edti-Feldes (TEdit) kommen, das unter dem entsprechenden PopUp-Menü liegt?

Hintergrund:
In der Standard-Version, also ohne eigenes PopUp-Menü auf einem Edit-Feld, gibt es ja standardmäig Ausschneiden, Kopieren, Einfügen, usw. Ich habe nun ein paar Edit-Felder, die per PopUp-Menü andere Funktionen ermöglichen sollen, wobei aber Ausschneiden, Kopieren und Einfügen so funktionieren soll, wie im Standard-PopUp-Menü.

Kannst Du mir da auch noch weiterhelfen?

mfg
eddy

DeddyH 12. Dez 2007 18:04

Re: myedit.SelectAll ersetzen durch (Sender as TEdit).Select
 
Hmmm... das PopupMenu hat doch eine Eigenschaft PopupComponent. Das sollte Dir eigentlich weiterhelfen.

eddy 13. Dez 2007 00:37

Re: myedit.SelectAll ersetzen durch (Sender as TEdit).Select
 
Hallo DeddyH,

vielen Dank für Deine Unterstützung.

Delphi-Quellcode:
// copy1 : TMenuItem;

procedure TForm1.copy1Click(Sender: TObject);
var
  c1, c2, c3 : TComponent;
begin
  if Sender is TMenuItem then begin
    c1 := Sender as TMenuItem;
    c2 := c1.GetParentComponent;
    c3 := (c2 as TPopupMenu).PopupComponent;
    (c3 as TEdit).SelectAll;
    (c3 as TEdit).CopyToClipboard;
  end;
end;
mfg
eddy


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz