Keiner der mir helfen könnte?
Hab ein wenig rum probiert und durchs suchen bin ich dann auf PostMessage gestossen.
Da mein TObject leider kein Control besitzt klappt dies nicht.
Habe dann einfach mal testweise TWinControl genommen und meine anstatt den Button nun zu löschen sende ich eine Message.
Empfangen wird sie auch von meinem MenuManager.
Wenn ich aber nun meine Main App beende Reagiert es entweder überhaupt nicht mehr oder es kommt mal wieder eine
AV, je nachdem ob ich meine MenuManager beende oder nicht.
MenuManager beenden -> Ich kann klicken wohin ich will es tut sich nichts mehr.
MenuManager nicht beenden ->
AV beim beenden.
Delphi-Quellcode:
type
TMenuManager = class(TWinControl)
private
FOwner: TWinControl;
FXPos: Integer;
FYPos: Integer;
FTempYPos: Integer;
FMenuEntries: TMenuEntries;
FActiveButton: Integer;
FItemClick: TNotifyEvent;
FHandle: HWND;
function GetAcctiveButton: Integer;
procedure SetActiveButton(const Value: Integer);
procedure OnClick(Sender: TObject);
protected
procedure GetMessage(var Message: TMessage); Message WM_DELBUTTON;
public
constructor Create(AOwner: TWinControl; XPos, YPos: Integer);
destructor Destroy; override;
procedure AddButton(Caption: String; ButtonStyle: TButtonStyle = etButton);
procedure RemoveButton(Index: Integer);
procedure ClearButtons;
function Count: Integer;
property ButtonActive: Integer read GetAcctiveButton write SetActiveButton;
property OnItemClick: TNotifyEvent read FItemClick write FItemClick;
end;
implementation
constructor TMenuManager.Create(AOwner: TWinControl; XPos, YPos: Integer);
begin
inherited Create(AOwner);
Self.Parent := AOwner;
Self.FOwner := AOwner;
Self.FXPos := XPos;
Self.FYPos := YPos;
Self.FTempYPos := Self.FYPos;
Self.FActiveButton := -1;
Self.FMenuEntries := TMenuEntries.Create;
end;
procedure TMenuManager.GetMessage(var Message: TMessage);
begin
ShowMessage('Message');
end;
procedure TMenuManager.RemoveButton(Index: Integer);
begin
//Self.FMenuEntries.Del(Index);
PostMessage(Self.FOwner.Handle, WM_DELBUTTON, Index, 0);
end;
Mir kommt es so vor als würde meine Main App also die Form keine Messages mehr empfangen :/