Desværre gutter, jeg har lige fundet ud af det selv.
Sad lige og rodede rundt i Controls.int, og vupti der lå en del af løsningen.
Deklaration:
procedure CMControlChange(var Message : TCMControlChange); message CM_ControlChange;
Implementering:
procedure TMyGroupBox.CMControlChange(var Message : TCMControlChange);
begin
inherited;
ShowMessage('CMControlChange');
if Message.Inserting then begin
// Flyt den komponent der blev droppet her
........
f.eks
if Message.Control.Left < fBorderWidth then
Message.Control.Left := BorderWidth + 2; // flyt den indenfor venstre side af rammen
end else Message.Result := Message.Result;
end;
Nu mangler jeg så bare lige at finde ud af hvad der skal ske hvis der flyttes på komponenten.
Jeg vidste at det var simpelt, men for f....... da hvor kan det bare tage lang tid at
finde løsningen.
Nååå Im off[Redigeret d. 27/02-03 14:04:06 af Stig Falck Hansen]
Hej,
AAhhhh, det var det du mente. Jeg troede at det var din "Caption" komponent som ikke måtte modtage komponenter.....men jeg kan forstå at du har lagt "Caption" på din GroupBox som en komponent....korrekt?
Hvis jeg har forstået dig korrekt ville det så ikke være nemmere at gøre din border størrer (højere i toppen) så der er plads til "Caption"?
Atlså du skal gøre dit client area mindre og selv tegner din border + caption.
På den måde er du sikker på at der ikke kan "droppes" nogle komponenter over din caption. Det er jo egentlig også sådan et vindue gør når du insætter en hovedmenu.
Nå, det var bare en idé (og selvfølgelig også for at fortælle at jeg misforstod ;0).
Mvh
Michael.