![]() |
BitBtn Button effekt
Hallo
ich möchte mein BitBtn ein Bild bei Mousemove zuweisen d.h. wenn ich den Cursor auf das Button lege ohne zu klicken, soll das Button sein Bild (Icon) ändern Das BitBtn Button hat in moment 4 Bilder 1 bei normal 2. wenn deaktiviert 3. wenn angeklickt 4. bei UP wie kann ich das Bilder (Icon) von BitBtn ändern, wenn der Cursor drauf ?
Delphi-Quellcode:
procedure TForm1.BitBtn1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); begin end; |
Re: BitBtn Button effekt
MousEnter und MouseLeave wäre wohl geeigneter
|
Re: BitBtn Button effekt
am Einfachsten indem du dem Button ein anderes Bild/Bilderset zuweist.
aber die Erkennung ob die Maus wieder vom Button runter ist wird über BitBtn1MouseMove schwer zu erkennen sein. [edit] war wohl wer schneller -.-'' |
Re: BitBtn Button effekt
Zitat:
Ich möchte wissen wie man ein Bild zuweißt Ich habe so versucht
Delphi-Quellcode:
procedure TForm1.BitBtn1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); begin BitBtn1.Glyph.Data:='...' // funktioniert leider nicht ! |
Re: BitBtn Button effekt
In welcher Form leigen die Bilder vor?
Schau dir mal BitBtn.Glyph.Assign(); an |
Re: BitBtn Button effekt
Oder nimm eine TImageList. Damit geht's auch einwandfrei:
Delphi-Quellcode:
procedure TForm1.BitBtn1MouseEnter(Sender: TObject);
begin BitBtn1.Glyph := nil; ImageList1.GetBitmap(0, BitBtn1.Glyph); end; procedure TForm1.BitBtn1MouseLeave(Sender: TObject); begin BitBtn1.Glyph := nil; ImageList1.GetBitmap(1, BitBtn1.Glyph); end; |
Re: BitBtn Button effekt
Über Glyph sollte es eigentlich aber doch auch gehen?
Edit: Oh, da steht die Lösung ja :) |
Re: BitBtn Button effekt
Zitat:
Up, Disabled,Clicked,Down mehr nicht. Wie Onmouseenter, Onmouseleave, ... nicht oder ? Allerding so habe ich verscuht ohne Erfolg :
Delphi-Quellcode:
auch so nicht geklappt :
type
TForm1 = class(TForm) BitBtn1: TBitBtn; ImageList1: TImageList; private procedure BitBtn1MouseEnter(Sender: TObject); procedure BitBtn1MouseLeave(Sender: TObject); { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.BitBtn1MouseEnter(Sender: TObject); begin BitBtn1.Glyph := nil; ImageList1.GetBitmap(0, BitBtn1.Glyph); end; procedure TForm1.BitBtn1MouseLeave(Sender: TObject); begin BitBtn1.Glyph := nil; ImageList1.GetBitmap(1, BitBtn1.Glyph); end; end.
Delphi-Quellcode:
procedure TForm1.CMMouseEnter(var Message: TMessage);
var ptWork : TPoint; begin GetCursorPos(ptWork); if WindowFromPoint(ptWork) = BitBtn1.Handle then BitBtn1.Glyph := nil; ImageList1.GetBitmap(2, BitBtn1.Glyph); end; |
Re: BitBtn Button effekt
Gibts nen Fehler, wird was falsches angezeigt oder passiert garnichts? Das man danach immer fragen muss :roll: Sind in der ImageList überhaupt Bilder drin?
|
Re: BitBtn Button effekt
Es passiert nichts
kein Fehler ListImage1 enthält natürlich Icons (mehrere) |
Re: BitBtn Button effekt
Vielleicht muss man das Neuzeichnen noch anstossen?
Ein Invalidate oder ein Repaint könnten da helfen. |
Re: BitBtn Button effekt
Zitat:
ich so getestet
Delphi-Quellcode:
procedure TForm1.BitBtn1MouseEnter(Sender: TObject);
begin //BitBtn1.Glyph := nil; //ImageList1.GetBitmap(0, BitBtn1.Glyph); Form2.Show; // es erscheint Form2 auch nicht ! end; |
Re: BitBtn Button effekt
Das Ereignis ist dem BitBtn schon zugewiesen oder?
|
Re: BitBtn Button effekt
Dann setz doch mal nen Breakpoint und debugge was das Programm macht. Himmel..
Das ist kein 'Testen' was Du machst, das ist 'Try & Error', und diese Vorgehensweise ist a) Unpofessionell und b) führt sie zu nichts. Nimm Dir endlich mal zu Herzen was die Leute hier schreiben und lerne die absoluten Grundlagen wie z.B. Debuggen. Ich würde jede Wette eingehen, der Button ist mit dem Eventcode gar nicht verdrahtet.. Du hast unter Garantie wieder nur den Code kopiert und nicht im Objektinspektor die Events verdrahtet :wall: |
Re: BitBtn Button effekt
Zitat:
sondern onMove, ... Das habe ich vorher bereit getestet und funktioniert Es Fehlt OnMouseleave |
Re: BitBtn Button effekt
Und dann wunderst Du Dich, dass es nicht funktioniert, wenn der BitBtn diese Events nicht hat? Gib mal im Profil Deine Delphi-Version an, das wäre sehr hilfreich. Weil hier in Turbo Delphi hat der die Events. Du kannst aber die Messages selbst abfangen (CM_MOUSEENTER und CM_MOUSELEAVE)
|
Re: BitBtn Button effekt
Delphi-Quellcode:
Das Button bekommt ein Bild wenn der Cursor auf Form kommt und nicht wenn der Cursor auf Button
private
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER; procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE; { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses Unit2; {$R *.dfm} procedure TForm1.CMMouseEnter(var Message: TMessage); var ptWork : TPoint; begin GetCursorPos(ptWork); if WindowFromPoint(ptWork) = BitBtn1.Handle then BitBtn1.Glyph := nil; ImageList1.GetBitmap(0, BitBtn1.Glyph); end; procedure TForm1.CMMouseLeave(var Message: TMessage); var ptWork : TPoint; begin GetCursorPos(ptWork); if WindowFromPoint(ptWork) = BitBtn1.Handle then BitBtn1.Glyph := nil; ImageList1.GetBitmap(1, BitBtn1.Glyph); end; end. Das Bild bleibt für immer das selbe, auch wenn ich den Cursor entferne ! |
Re: BitBtn Button effekt
Warum zeigst du immer nur ein derart kleinen Auschnitt deines Codes? Den kannst du dann auch gleich weglassen. Regierst du auch auf den Event der richtigen Komponente?
|
Re: BitBtn Button effekt
Mit ein wenig Geschick und der Hilfe der Delphipraxis eigenen Suchfunktion kann Man([n] / und oder Frau) durchaus fertige komponenten, fasst nach Wunsch finden.
![]() |
Re: BitBtn Button effekt
Zitat:
|
Re: BitBtn Button effekt
Zitat:
|
Re: BitBtn Button effekt
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
BitBtn2 mit Function OnMouseEnter und OnMouseLeave Keiner funktioniert gut ! |
Re: BitBtn Button effekt
Oh man.. wenn Du schon Dateien anhängst, dann bitte in einem Standard-Format. .rar kann so gut wie keiner aufmachen. .zip schon. Also das nächste mal bitten Zippen und ned raren. Viele werden ganz sicher ned nur wegen Dir ein Programm installieren nur um die Archive aufzumachen :roll:
Edit Nachtrag: Und Manuel hat es schon zweimal gesagt: Geb endlich Deine Delphi-Version im Profil an. |
Re: BitBtn Button effekt
Ja, die Angabe der Delphi-Version wäre wirklich sinnvoll.
Schau die den Artikel auf ![]() |
Re: BitBtn Button effekt
Zitat:
Zitat:
Delphi-Quellcode:
type
TForm1 = class(TForm) BitBtn1: TBitBtn; procedure BitBtn1MouseEnter(Sender: TObject); procedure BitBtn1MouseLeave(Sender: TObject); private |
Re: BitBtn Button effekt
Das ist egal. Solange es eine Methode ist ;)
|
Re: BitBtn Button effekt
Eine Klassenmethode darf es nicht sein.
|
Re: BitBtn Button effekt
Zitat:
|
Re: BitBtn Button effekt
Das ist klar. Ich bezog mich nur auf Garfield, der die Methoden verschoben hat.
|
Re: BitBtn Button effekt
Zitat:
Zitat:
Zitat:
Delphi-Quellcode:
Bei D7 gibt es kein OnMouseLeave. OnMouseMove und OnExit funktionieren. Das OnExit eben nur auftritt, wenn der BitBtn den Eingabefokus verliert.
procedure BitBtn2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); procedure BitBtn2Exit(Sender: TObject); ___ Nachtrag: Zitat:
|
Re: BitBtn Button effekt
Liste der Anhänge anzeigen (Anzahl: 2)
Vielleicht so:
Delphi-Quellcode:
Zumindest ändern sich die Bildchen des BitBtn2.
procedure TForm1.CMMouseLeave(var Message: TMessage);
var ptWork : TPoint; begin GetCursorPos(ptWork); if WindowFromPoint(ptWork) <> BitBtn2.Handle then begin BitBtn2.Glyph := nil; ImageList1.GetBitmap(1, BitBtn2.Glyph); end; end; |
Re: BitBtn Button effekt
Ist das Format .7z nur für dich? Für uns bestimmt nicht!
Ich habe das Format .rar verwendet, dann bewchweren die Leute, obwohl winrar so bekannt wie winzip :mrgreen: Was hast du gemacht!? Begin und end; hinzugefügt ? |
Re: BitBtn Button effekt
Er prüft auf Ungleichheit und nicht auf Gleichheit.
|
Re: BitBtn Button effekt
Und begin-end sind an der Stelle ja auch nicht verkehrt :zwinker:
|
Re: BitBtn Button effekt
Zitat:
ich möchte diesen Effekt erreichen : ![]() |
Re: BitBtn Button effekt
Was hat das eine (Hover-Effekt auf einem Button) mit dem anderen (Maximierte Anwendung auf einem anderen Monitor) zu tun?
Daniel hat Dir schonmal eindringlich klar gemacht, dass Du hier gefälligst ordentliche Fragen zu stellen hast. Solange Du das nicht lernst wird Dir hier nicht geholfen werden. Und wegen dem Themensprung und Deiner Uneinsichtigkeit wird hier jetzt zugemacht. |
Re: BitBtn Button effekt
Neben dem, was sowohl Daniel als auch Sebastian dir schon geschrieben haben, hast du IMMMER NOCH NICHT angegeben, welche Delphi Version du verwendest. Mein D2007 hat sehr wohl OnMouseEnter und OnMouseLeave Events für BitButtons. Antworte endlich mal auf konkret gestellte Fragen, wenn du schon selbst nicht in der Lage bist, zu erklären, was du eigentlich willst (siehe dein Link zu Chip).
Also nochmal: Hast du die Events wirklich registriert Hast du das mit dem Abfangen der Windows Messages versucht. Wir reden hier von 2 Zeilen Code, die bei mir einwandfrei funktionieren. Mittlerweilen haben sich hier 30 Antworten gegeben. Meinst du wirlich, das wär dein Problem wert, zumal dir die Lösung schon auf 2 unterschiedliche Weisen auf dem Tablett serviert wurden. Streng dich an Junge. Wenn du mit Delphi nicht klar kommst, dann solltest du dir vielleicht mal überlegen, nicht besser einer anderen Beschäftigung nachzugehen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz