Einzelnen Beitrag anzeigen

Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Mouseover für Panel + Inhalt

  Alt 27. Jan 2008, 08:31
Hi,

deine Buttons hast du ja total an den Rand des Panels gesetzt, dann funktioniert es natürlich nicht. Wenn du dann vom Button auf das Formular kommst, wird kein onMouseLeave mehr ausgelöst.
Dann musst du wohl auch bei jedem Button wieder onMouseLeave abfragen oder du machst ein onMouseEnter im Formular und prüfst dort, ob ein Panel noch rot ist und setzt es dann zurück.
Am einfachsten wär es natürlich wenn du einen gewissen Abstand zum Rand des Panels ein hältst.

Warum machst du überhaupt für jedes Panel ein eigenes onMouseLeave und onMouseEnter damit blähst du deinen Code doch nur unnötig auf? Es reicht doch, wenn du im OT jeden die gleiche Prozedur zuweist.

Wenn du den Code abkürzen möchtest kannst du auch allen Controls auf den Panels das gleiche Ereignis zuweisen:
Delphi-Quellcode:
type
  TMyControl= class(Controls.TControl);

procedure TForm1.FormShow(Sender: TObject);
var
  i: integer;
begin
  for i:= 0 to Panel1.ControlCount- 1 do
    TMyControl(Panel1.Controls[i]).OnMouseLeave:= Panel1.OnMouseLeave;
end;
Dann musst du noch mit if Sender is TPanel then prüfen wer der Sender ist und den Code natürlich noch erweitern.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat