Einzelnen Beitrag anzeigen

Whookie

Registriert seit: 3. Mai 2006
Ort: Graz
441 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Selektives csAcceptControls möglich?

  Alt 29. Jan 2015, 10:47
Einen Teilerfolg gibt es zumindestens, in der Form der CM_CONTROLLISTCHANGING Message

Delphi-Quellcode:
procedure TMyPanel.CMControlListChanging(var Message: TCMControlListChanging);
begin
  if Message.ControlListItem^.Control.ClassName = 'TShapethen
  begin
    Message.ControlListItem^.Parent := NIL;
    iFrm := GetParentForm(Self);
    Message.ControlListItem^.Control.Parent := iFrm;
  end;
end;
Damit kann kein TShape mehr hinzugefügt werden, er landet vorerst in der Form (oder hat keinen Parent). Das Problem hier ist, das ich bisher keine Möglichkeit gefunden habe die unerwünschte Componente sauber freizugeben (ein Message.ControlListItem^.Control.Free führt in späterer Folge zu einer Exception)
Whookie

Software isn't released ... it is allowed to escape!
  Mit Zitat antworten Zitat