![]() |
Wie bei Apple Taskleiste --> in Delphi programmieren
Hallo,
ich will in Delphi eine Leiste programmieren. Ich habe mir das so gedacht, das wenn ich mit der Mouse auf diese Leiste klicke, das dann das Bild größer wird. Wie bei Apple auch unten die Taskleiste. Wie kann ich sowas mit Delphi machen. Gibt es da schon eine Komponente für??? MFG Christian18 |
Re: Wie bei Apple Taskleiste --> in Delphi programmieren
Hi,
ich weiß nicht ob es dafür eine fertige Komponente gibt, aber was du dazu brauchst bietet dir Delphi allemal. Du benötigst im einfachsten Fall einfach nur ein Panel auf dass du für jeden link ein Image setzt. Dieses veränderst du immer wenn die Maus drüber bewegt wird (Falls OnMouseEnter und OnMouseLeave nicht zu den fertigen Ereignissen eines TImage gehören, einfach von TImage ableiten und dort auf die entsprechenden Nachrichten reagieren). Das wäre es im einfachsten Fall auch schon. Wie du ein Programm per Drag&Drop auf die Leiste ziehen kannst, hat neulich erst jmd. mit seiner Toolbar gezeigt, musst du mal nach suchen. Gruß Der Unwissende PS. Sorry, aber ist absichtlich etwas knapp gehalten, ist halt eine sehr umfangreiche Frage und da du sicherlich weißt, das dir hier keiner eine komplette Lösung postet, hoffe ich es reicht dir als Denkanstoß. Es fehlt halt was du dir wirklich schon gedacht hast, denn wie die Leiste funktioniert (Bild größer bei Maus rüber), dass ist nun ja, gegeben. |
Re: Wie bei Apple Taskleiste --> in Delphi programmieren
Die interessante Frage ist ob die Grafiken Vektorgrafiken oder Bitmaps sind.
Vista wird auf jeden Fall Vektorgrafiken nehmen. Sollten es Bitmaps sein, so muss man auf jeden Fall nicht vergroessern, sondern verkleinern oder es sieht grauenhaft aus. |
Re: Wie bei Apple Taskleiste --> in Delphi programmieren
Hallo,
hat jemand eine Idee wie ich herrausfinde, ob der Mousezeiger auf ein Image geparkt wurde oder nicht??? MFG Christian18 |
Re: Wie bei Apple Taskleiste --> in Delphi programmieren
Hat ein Image ein onMouseOver?
|
Re: Wie bei Apple Taskleiste --> in Delphi programmieren
nein leider nicht
|
Re: Wie bei Apple Taskleiste --> in Delphi programmieren
Wie bereits gesagt, musst du nur auf die Nachrichten reagieren indem du dir eine Komponente von TImage ableitest.
Delphi-Quellcode:
Die beiden Methoden werden immer dann aufgerufen, wenn die Maus den Bereich des Image "betritt" bzw. "verlässt".
TExtendedImage = class(TImage)
private FOnMouseEnter : TNotifyEvent; FOnMouseLeave : TNotifyEvent; protected procedure MouseEnter(msg : TMessage); message CM_MOUSEENTER; procedure MouseLeave(msg : TMessage); message CM_MOUSELEAVE; published OnMouseEnter : TNotifyEvent; end; procedure MouseEnter(msg : TMessage); begin if self.FOnMouseEnter <> nil then begin self.FOnMouseEnter(self); end; end; ... |
Re: Wie bei Apple Taskleiste --> in Delphi programmieren
Hi,
das Ding im Mac-OSX heist "Dock" und es gibt etliche Tools ( ![]() wie z.B. das ![]() Zu Deiner Frage: Ein Image besitzt zwar kein MouseOver-Event, aber Du kannst ja das Control unter der Maus mit ![]()
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var P : TPoint; h: HWND; begin GetCursorPos(P); if (P.x>Left) and (P.x<Left+Width) and (P.Y>Top) and (P.Y<Top+Height) then begin h := WindowFromPoint(p); if (h = Img.Handle) AND (Img.Scale < 2) then Img.Scale := Img.Scale + 0.3 else if (h <> Img.Handle) AND (Img.Scale > 1) then Img.Scale := Img.Scale - 0.3; end; end; Grüsse, hannes |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:38 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