AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hint-Popup manuell anzeigen

Ein Thema von Puddi · begonnen am 23. Nov 2005 · letzter Beitrag vom 24. Nov 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Puddi
Puddi

Registriert seit: 25. Sep 2005
20 Beiträge
 
Delphi 2005 Architect
 
#1

Hint-Popup manuell anzeigen

  Alt 23. Nov 2005, 12:10
Ahoi!

Ich habe ein DBGrid, das bei Bewegung des Cursors über einen Datensatz den Inhalt einer bestimmten Zelle des aktiven Datensatzes im Hint-Popup anzeigt. Das klappt soweit problemlos.

Meine Frage dazu: Kann ich das Anzeigen des Popups auch auslösen, wenn ich beispielsweise mit den Cursortasten zum nächsten Datensatz springe, also ohne überhaupt die Maus zu bewegen?

Also quasi sowas hier (ich weiß, geht so nicht )

DBGrid.Hint.Visible:=true; oder geht es auch anders?
  Mit Zitat antworten Zitat
Benutzerbild von chrisw
chrisw

Registriert seit: 11. Jan 2005
Ort: Schleswig
193 Beiträge
 
Delphi XE8 Professional
 
#2

Re: Hint-Popup manuell anzeigen

  Alt 23. Nov 2005, 12:43
In etwa so :

Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  I: Integer;
  r : TRect;
begin
  r.Left := Form1.Left + BitBtn1.Left;
  r.Right := r.Left +50;
  r.Top := Form1.Top + BitBtn1.Top;
  r.Bottom := r.Top + 20;
  for I := 0 to Application.ComponentCount - 1 do
    if Application.Components[I] is THintWindow then
    begin
      with Application.Components[I] as THintWindow do
      ActivateHint(r,'hallo');
      Break;
    end;
end;
Christian Wahl
me, myself and I, die lustigen Drei !!
  Mit Zitat antworten Zitat
Benutzerbild von Puddi
Puddi

Registriert seit: 25. Sep 2005
20 Beiträge
 
Delphi 2005 Architect
 
#3

Re: Hint-Popup manuell anzeigen

  Alt 23. Nov 2005, 13:18
Vielen Dank, das sieht schon mal ganz gut aus!

Jetzt habe ich nur noch das Problem, dass die Größe des Popup-Hints ja dadurch fest definiert wird. Der Standard-Hint passt sich ja aber der Größe seines Inhalts automatisch an.

Wie kann man das noch in dieser Prozedur unterbringen?
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Hint-Popup manuell anzeigen

  Alt 23. Nov 2005, 16:42
Zitat von Puddi:
DBGrid.Hint.Visible:=true;
Dies bewirkt nur, dass der Hint überhaupt angezeigt wird (also beim überfahren mit der Maus). Wenn du hier false setzen würdest, würdest du den Hint nie sehen.

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Hint-Popup manuell anzeigen

  Alt 23. Nov 2005, 16:54
Hai,

ich hatte da doch mal einen Code der zwar für das MouseMove ist. Aber Du solltest das eigentlich ohne Probleme ein deine Anforderung anpassen können.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: Hint-Popup manuell anzeigen

  Alt 23. Nov 2005, 16:56
Da gäbe es Application.ActivateHint(CursorPos: TPoint).
Ob das geeignet ist, musst du testen.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Puddi
Puddi

Registriert seit: 25. Sep 2005
20 Beiträge
 
Delphi 2005 Architect
 
#7

Re: Hint-Popup manuell anzeigen

  Alt 24. Nov 2005, 09:01
Vielen Dank für die Hilfe , Sharkys Codeschnipsel hat das Problem gelöst. Hab es etwas für meine Bedürfnisse angepasst:

Delphi-Quellcode:
procedure TForm1.DataMainKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var OldHint: String;
begin
  DataMain.ShowHint:=false;
  OldHint:=DataMain.Hint;
  DataMain.Hint:='Trallala';
  DataMain.ShowHint:=true;
  if (Oldhint <> DataMain.Hint) then
    begin
      Application.CancelHint;
    end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Hint-Popup manuell anzeigen

  Alt 24. Nov 2005, 09:04
Hai Puddi,

warum verwendest Du denn das OnKeyUp-Ereigniss? Wäre das OnClick nicht besser geeignet?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Puddi
Puddi

Registriert seit: 25. Sep 2005
20 Beiträge
 
Delphi 2005 Architect
 
#9

Re: Hint-Popup manuell anzeigen

  Alt 24. Nov 2005, 09:25
Oha, es läuft doch noch nicht . Eben ging es problemlos, das liegt aber glaube ich daran, dass meine optische Maus zwischendurch gerne mal kleine "Hüpfer" macht. Das löst dann natürlich die automatische Hint-Anzeige aus.

Dass ich das Ganze mit dem "OnKeyUp"-Event verknüpfe, liegt daran dass das Programm ja den Hint auch anzeigen soll, wenn ich die Maus nicht bewege, sondern mit den Cursortasten den Datensatz wechsle. Das "OnClick"-Ereignis führt bereits zur Hintanzeige.

Ich werd noch mal ein wenig herumprobieren.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Hint-Popup manuell anzeigen

  Alt 24. Nov 2005, 10:37
Zitat von Puddi:
Oha, es läuft doch noch nicht .
Hai Puddi,

Ja, ich habe mir das auch noch mal angesehen. Mein Code ist wirklich nur dafür da den Hint zu setzen. Angezeigt wird er dann bei einer Mausbewegung.

Ich habe mir jetzt verschiedene Lösungen überlegt aber keine davon war befriedigend was die Ergonomie des Programmes angeht.
Darum würde ich dir etwas ganz anderes Vorschlagen.

Schnappe dir ein Panel, setze auf dieses ein TStatusbar mit einem TStatusPanel, dann lege dein DBGrid auf das Panel (Allign = alClient) und zeige im OnAfterScroll deines TDataSet den Text in dem TStatusPanel an.

Ich finde das ist die sauberste Lösung. Wenn Du nun möchtest das der Text nicht die ganze Zeit da steht kannst Du ihn ja mit einem Timer nach x Sekunden wieder entfernen.

IMHO ist das besser als wenn ständig ein Hin-Fenster aufpopt.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:11 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