AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Wie bei Apple Taskleiste --> in Delphi programmieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wie bei Apple Taskleiste --> in Delphi programmieren

Ein Thema von Christian18 · begonnen am 14. Feb 2006 · letzter Beitrag vom 14. Feb 2006
Antwort Antwort
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#1

Wie bei Apple Taskleiste --> in Delphi programmieren

  Alt 14. Feb 2006, 08:38
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
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: Wie bei Apple Taskleiste --> in Delphi programmieren

  Alt 14. Feb 2006, 08:44
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.
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#3

Re: Wie bei Apple Taskleiste --> in Delphi programmieren

  Alt 14. Feb 2006, 09:02
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.
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#4

Re: Wie bei Apple Taskleiste --> in Delphi programmieren

  Alt 14. Feb 2006, 09:34
Hallo,

hat jemand eine Idee wie ich herrausfinde, ob der Mousezeiger auf ein Image geparkt wurde oder nicht???

MFG Christian18
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Wie bei Apple Taskleiste --> in Delphi programmieren

  Alt 14. Feb 2006, 09:35
Hat ein Image ein onMouseOver?
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#6

Re: Wie bei Apple Taskleiste --> in Delphi programmieren

  Alt 14. Feb 2006, 09:36
nein leider nicht
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#7

Re: Wie bei Apple Taskleiste --> in Delphi programmieren

  Alt 14. Feb 2006, 09:51
Wie bereits gesagt, musst du nur auf die Nachrichten reagieren indem du dir eine Komponente von TImage ableitest.

Delphi-Quellcode:
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;
...
Die beiden Methoden werden immer dann aufgerufen, wenn die Maus den Bereich des Image "betritt" bzw. "verlässt".
  Mit Zitat antworten Zitat
noch_ein_hannes

Registriert seit: 18. Sep 2003
130 Beiträge
 
#8

Re: Wie bei Apple Taskleiste --> in Delphi programmieren

  Alt 14. Feb 2006, 09:55
Hi,

das Ding im Mac-OSX heist "Dock" und es gibt etliche Tools (Bei Google suchendock windows) für XP
wie z.B. das http://www.openwares.org/. (Downloads/System)

Zu Deiner Frage:

Ein Image besitzt zwar kein MouseOver-Event, aber Du kannst ja das Control unter der Maus
mit Hier im Forum suchenWindowFromPoint() per Timer abfragen:

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
- everything is possible -
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:39 Uhr.
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