eben das letzte ist bei allen varianten das Problem.
wäre ne Möglichkeit, ich denke aber das ist keine saubere LösungSind das denn sehr viele Labels? So das sie nicht schon im Formulareditor erzeugt werden können (Visible := Fals;).

Gruss KH
Code: Alles auswählen
unit Unit1;
interface
uses
Windows, Messages, Classes, Graphics, Controls, Forms, StdCtrls;
const
WM_KILL_CONTROL = WM_USER+ 66;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
CheckBox1: TCheckBox;
procedure Button1Click(Sender: TObject);
procedure Button1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private-Deklarationen }
procedure WMKillControl(var msg:TMessage); message WM_KILL_CONTROL;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WMKillControl(var msg: TMessage);
var
c : TControl;
i : Integer;
begin
c := TControl(msg.LParam);
if not Assigned(c) then
Exit;
c.Free;
windows.MessageBeep($FFFFFFFF);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
// Sender.Free; // würde meistens eine Exception auslösen
PostMessage(Self.Handle, WM_KILL_CONTROL, 0, Integer(Sender));
end;
procedure TForm1.Button1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key=VK_DELETE) and (Shift=[ssCtrl]) then
begin
// Sender.Free; // würde meistens eine Exception auslösen
PostMessage(Self.Handle, WM_KILL_CONTROL, 0, Integer(Sender));
end;
end;
end.
Du würdest das besser sofort beherzigenkhh hat geschrieben:
PS das mit denwerde ich zukünfig beherzigenWie sinnvoll das ist, kann ich nicht beurteilen, da khh immer nur "Schrittchen-Fragen" stellt
ok, dann will ich das mal versuchen zu erklären.Es ist doch wieder so, dass keiner genau weiss weshalb du Labels auf ihr eigenes OnClick entfernen willst, bzw. was du überhaupt, im grösseren Zusammenhang erreichen willst.
wo bitte hab ich das gemacht?@kkh, kannst dus bitte lassen hier geschützten code zu posten ?