Autor Beitrag
Born-to-Frag
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1094

Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
BeitragVerfasst: Sa 10.06.06 16:40 
Hallo!

Ich habe eine ListBox und speicher für jeden Eintrag gewisse Informationen. Jetzt möchte ich, ähnlich wie in ICQ, wenn man mit der Maus auf einem Eintrag eine gewisse Zeit drauf zeigt ein gelbes Informations-Fenster aufgeht in denen die Informationen stehen.
Ich weiß leider nicht wie ich den Hint immer so anpassen kann das er für den Eintrag entsprechend stimmt.

Kann mir da jemand helfen? Danke schon mal!


greetz

_________________
Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
Danniolo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 693



BeitragVerfasst: Sa 10.06.06 16:51 
also so z.B: gehts:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var i: Integer;
begin
  For i := 0 To ListBox1.Items.Count-1 Do
  Begin
    Button1.Hint := Button1.Hint + ListBox1.Items[i]+#13;
  End;
End;


huch, sorry, Frage falsch durchgelesen, ich denk nochma über des richtige nach^^
Born-to-Frag Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1094

Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
BeitragVerfasst: Sa 10.06.06 19:05 
Das einzige was mir einfällt, ist den hint immer im OnMouseMove-Event anzupassen :?
Dann müsste ich nur noch wissen wie ich es rausbekomm welcher eintrag gerade unter der Maus ist..

greetz

_________________
Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
Stefan-W
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 475

Win 7 SP1
D2005 PE
BeitragVerfasst: So 11.06.06 11:54 
Ich hab da vor kurzem auch so was gebraucht...
habs mir dann selbst gebastelt ;-)
Hier ein Auszug aus meinem Projekt:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
Procedure TF_Main.LB_LogMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
Begin
    Try
        LB_Log.Hint := LB_Log.Items.Strings[LB_Log.ItemAtPos(Point(X, Y), True)]; // Passenden Hint setzen
    Except
    End;
End;

Gleich mit Fehlerbehandlung, da wenn du mit der Maus über eine leere Zeile kommst es dir gleich ein Fehler um dir Ohren haut :D
Ich hoffe du kannst die Komponenten aus den Namen erkennen ("LB" steht für ListBox, das "_" als Trennzeichen und dann der eigentliche Name)

gut ich hoffe geholfen zu haben :D
Tschau Stefan
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: So 11.06.06 12:31 
Hallo,

@user profile iconStefan-W
da muss man aber mit der Maus zwischendurch den Listbox-Bereich verlassen, damit ein anderer Hint angezeigt wird.

die folgende Variante benutzt die Tag-Eigenschaft der Listbox und Application.CancelHint,
beim Überfahren mit der Maus wird direkt der Hint gewechselt.
Eventuel in FormCreate noch Application.HintPause := 500;setzen, dann erfolgt der Wechsel schneller.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  aIndex: integer;
begin
  aIndex := ListBox1.ItemAtPos(Point(X, Y), True);
  if aIndex <> -1 then//ist Item unter der Maus?
    begin
    Hint:= ListBox1.Items[aIndex];
    end
    else
      Application.CancelHint;
  //ist anderes Item als das im Tag gespeicherte unter der Maus?
  if aIndex <> ListBox1.Tag then
    begin
      Application.CancelHint;
      ListBox1.Tag := aIndex;
    end;
end;

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
Born-to-Frag Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1094

Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
BeitragVerfasst: Di 13.06.06 00:02 
Danke, das hab ich gesucht! :beer:

greetz

_________________
Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.