Einzelnen Beitrag anzeigen

Benutzerbild von Stony2k
Stony2k

Registriert seit: 21. Mai 2005
Ort: Moers
76 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: Rechte Maustaste auf Image blockieren

  Alt 22. Jun 2005, 12:18
Irgentwie scheintst du es echt nicht zu verstehen, gut hier nochmal die Code schnipsel:

Code:
procedure Tfrm_main.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then
  begin
    image1.Picture:=img_btn_gedrueckt.Picture;
    Label1.Top:=Label1.Top+2;
    Label1.Left:=Label1.Left-1;
  end;
end;
Code:
procedure Tfrm_main.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then
  begin  
    image1.Picture:=img_btn_normal.Picture;
    Label1.Top:=Label1.Top-2;
    Label1.Left:=Label1.Left+1;
  end;
end;

Und nun nochmal wo das Problem ist. Ich klicke mit der linken Maustaste auf das Image und es passiert wie im Code folgendes:
Code:
    image1.Picture:=img_btn_gedrueckt.Picture;
    Label1.Top:=Label1.Top+2;
    Label1.Left:=Label1.Left-1;
Soweit so gut. Das Image ändert seine Grafik auf die eines gedrückten Buttons.
Sobald ich nun die Maustaste loslasse, sollte ja an für sich die "procedure Tfrm_main.Image1MouseUp" ausgelöst werden. Tut

sie aber nicht. Heisst, dass die Grafik des gedrückten Buttons bestehen bleibt.
Ändere ich nun
Code:
procedure Tfrm_main.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then
  begin  
    image1.Picture:=img_btn_normal.Picture;
    Label1.Top:=Label1.Top-2;
    Label1.Left:=Label1.Left+1;
  end;
end;
in
Code:
procedure Tfrm_main.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  image1.Picture:=img_btn_normal.Picture;
   Label1.Top:=Label1.Top-2;
   Label1.Left:=Label1.Left+1;
end;
wird die "procedure Tfrm_main.Image1MouseUp" ausgelöst und die Grafik geändert, in die des Buttons im Normaozustand.
Und meine frage war nun wieso die "procedure Tfrm_main.Image1MouseUp" nicht ausgelöst wird, sobald ich diese
Code:
if Button = mbLeft then
Abfrage drin habe.
  Mit Zitat antworten Zitat