Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Problem mit Buttons OnMouseEnter. Alle Buttons gläntzern (https://www.delphipraxis.net/118553-problem-mit-buttons-onmouseenter-alle-buttons-glaentzern.html)

Praxist 10. Aug 2008 11:07


Problem mit Buttons OnMouseEnter. Alle Buttons gläntzern
 
Hallo

by speedbuttons und Bitbtn Buttons leuchten alle Buttons zusamen, wenn ich den Mousezeiger
auf ein Button oder auf ein Control in Form bewege
Onmouse Enter bekommt das Button ein neues Icon und auch beim OnMouseleave :
Delphi-Quellcode:
procedure TForm1.ButtonsCMMouseEnter(var Message: TMessage);
begin
if WindowFromPoint(ptWork) = BitBtn2.Handle then
ImageList1.GetBitmap(2, BitBtn2.Glyph);
//...
procedure TForm1.ButtonsCMMouseleave(var Message: TMessage);
begin
if WindowFromPoint(ptWork) <> BitBtn2.Handle then
ImageList1.GetBitmap(3, BitBtn2.Glyph);
gibt es eine Lösung für das Problem
Ich weiß nicht, warum alle Buttons glitzern, wenn der Mausezeiger auf ein Control in Form bewegt :(

TonyR 10. Aug 2008 14:32

Re: Problem mit Buttons OnMouseEnter. Alle Buttons gläntzern
 
Ich versteh nicht ganz, möchtest du bei allen BitButtons diesen Effekt haben, oder nur bei einem?

Bei letzterem würde ich folgene Anweisung nicht verstehen
Delphi-Quellcode:
if WindowFromPoint(ptWork) = BitBtn2.Handle then
Und bei Ersterem nicht, warum du nicht ganz normal über die OnEnter Prozedur des Bitbtn zugreifst!?

Praxist 10. Aug 2008 15:17

Re: Problem mit Buttons OnMouseEnter. Alle Buttons gläntzern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von TonyR
Ich versteh nicht ganz, möchtest du bei allen BitButtons diesen Effekt haben, oder nur bei einem?

Bei letzterem würde ich folgene Anweisung nicht verstehen
Delphi-Quellcode:
if WindowFromPoint(ptWork) = BitBtn2.Handle then
Und bei Ersterem nicht, warum du nicht ganz normal über die OnEnter Prozedur des Bitbtn zugreifst!?

ich möchte diesen Effekt bei mehreren BitButtons haben
>> warum du nicht ganz normal über die OnEnter Prozedur des Bitbtn zugreifst!?
weil D7 den Event OnMouseLeave nicht hat sondern nur OnMouseMouve

Das Problem kommt von dem Event OnMouseEnter, was ich programmiert habe, und
möchte ich ändern

>> Bei letzterem würde ich folgene Anweisung nicht verstehen
Delphi-Quellcode:
procedure TForm1.ButtonsCMMouseEnter(var Message: TMessage);
var
  ptWork : TPoint;
begin
  GetCursorPos(ptWork);
  if WindowFromPoint(ptWork) = BitBtn2.Handle then // wenn der cursor drauf kommt

TonyR 10. Aug 2008 15:28

Re: Problem mit Buttons OnMouseEnter. Alle Buttons gläntzern
 
Zitat:

Zitat von Praxist
...
weil D7 den Event OnMouseLeave nicht hat sondern nur OnMouseMouve
...

sorry, daran hatte ich nicht gedacht.


geht das bei MouseEnter vllt. auch so:
Delphi-Quellcode:
procedure TForm1.BitBtn1MouseEnter(Sender: TObject);
begin
TBitbtn(sender).Glyph:= {irgendwas} ;
end;

Praxist 10. Aug 2008 15:40

Re: Problem mit Buttons OnMouseEnter. Alle Buttons gläntzern
 
OnMouseEnter und OnMouseNove beide funktionieren
Das Problem was macht man OnMouseLeave ?
Das BitButton soll ein anderes Bild bekommen wenn der Cursor das Button verlässt

TonyR 10. Aug 2008 15:51

Re: Problem mit Buttons OnMouseEnter. Alle Buttons gläntzern
 
Oder du lädst dir einfach die LMD Tools herunter: http://www.lmd.de/download/#LMD%20Freeware

Da ist der TLMDButton unter der Rubrik LMDStd dabei, der besitzt OnMouseEnter + OnMouseExit, da umgehst du die ganze Sache

Edit: Außerdem kann man in diesen Button natürlich auch ein Glyph laden ;-)

Praxist 10. Aug 2008 16:02

Re: Problem mit Buttons OnMouseEnter. Alle Buttons gläntzern
 
BitButton hat auch besitzt OnMouseEnter + OnMouseExit
Das geht um OnMouseLeave

DeddyH 10. Aug 2008 16:09

Re: Problem mit Buttons OnMouseEnter. Alle Buttons gläntzern
 
Unter Delphi 7 hat ein BitBtn kein Ereignis OnMouseEnter oder OnMouseExit.

Praxist 10. Aug 2008 16:16

Re: Problem mit Buttons OnMouseEnter. Alle Buttons gläntzern
 
Versehen, das war OnEnte und OnExit aber kein OnMouseEnter
Kann man sie nicht programmieren ?

DeddyH 10. Aug 2008 16:34

Re: Problem mit Buttons OnMouseEnter. Alle Buttons gläntzern
 
Kann man. Kleines Beispiel (komplette Unit):
Delphi-Quellcode:
unit bla;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons;

type

  TBitBtn = class(Buttons.TBitBtn)
  private
    procedure CMMOUSEENTER(var Msg: TMessage); message CM_MOUSEENTER;
    procedure CMMOUSELEAVE(var Msg: TMessage); message CM_MOUSELEAVE;
  end;

  TForm1 = class(TForm)
    btn1: TBitBtn;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TBitBtn }

procedure TBitBtn.CMMOUSEENTER(var Msg: TMessage);
begin
  inherited;
  Font.Style := Font.Style + [fsBold];
end;

procedure TBitBtn.CMMOUSELEAVE(var Msg: TMessage);
begin
  inherited;
  Font.Style := Font.Style - [fsBold];
end;

end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:18 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz