![]() |
Sender verwenden
Warum funktioniert folgender Code nicht ?
Delphi-Quellcode:
Er meldet
procedure Tfrm_dlg_farben.inp_pflichtClick(Sender: TObject);
begin ColorDialog := TColorDialog.Create(Application); try ColorDialog.Color := sender.color; if ColorDialog.Execute then sender.color := ColorDialog.Color; finally ColorDialog.Free; end; end; Zitat:
Es geht hierbei darum die Hintergrundfarben von Editfeldern via Dialog zu verändern, ich wollte nur ein Procedure für alle Editfelder anlegen, weil sich ja ausser dem Sender(??) nichts ändert. Und da braucht es ja dann nicht 10x dieselbe Procedure wo jeweils nur ein Name ausgetauscht ist. |
Versuch das mal;
Delphi-Quellcode:
ColorDialog.Color := (Sender as TEdit).color;
|
Es ist nicht zu erkennen, was für ein Klassentyp der Sender sein soll. Deshalb, wenn es z.B. vom Typ TButton ist, dann geht das wie folgt.
Code:
...:cat:...
procedure Tfrm_dlg_farben.inp_pflichtClick(Sender: TObject);
begin [color=#ff0000]if not Sender is TButton then Exit;[/color] ColorDialog := TColorDialog.Create(Application); try ColorDialog.Color := [color=#ff0000]TButton([/color]sender[color=#ff0000])[/color].color; if ColorDialog.Execute then [color=#ff0000]TButton([/color]sender[color=#ff0000])[/color].color := ColorDialog.Color; finally ColorDialog.Free; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:16 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