Einzelnen Beitrag anzeigen

GreyGoo

Registriert seit: 2. Okt 2006
5 Beiträge
 
#5

Re: TGraphicControl aud MDI-Client Fenster

  Alt 22. Okt 2006, 04:02
Ja, TGraphicControls reagieren auf Maus-Events, siehe TSpeedButon, aber leider nicht wenn sie auf einer Form mit FormStyle=fsMDIForm (MDI-Client) sind. Setze ich auf die MDI-Form ein Panel und darauf zb einen TSpeedbutton, dann sollte wohl alles richtig sein, aber dann ist das Panel immer im Vordergrund und überdeckt alle MDI-Child-Fenster.
TPanel und TButton sind von TWinControl abgeleitet und haben ein eigenes FensterHandle, während TGraphicControl von TControl abgeleitet ist und somit über kein eigenes FensterHandle verfügt. Eigentlich macht ein TGraphicControl nichts weiter als auf dem Canvas seines Parent was zu zeichnen. Damit ein TGraphicControl überhaupt auf Maus-Events reagieren kann, werden von der VCL die Maus-Events vom Parent des TGraphicControls an das TGraphicControl weitergeleitet und dort ausgewertet, siehe TSpeedButton. Sitzt das TGraphicControl aber auf einer Form mit FormStyle=fsMDIForm (die MDI-Form ist in diesem Fall das Parent des TGraphicControls), so scheint dieser Mechanismus zu versagen.
  Mit Zitat antworten Zitat