AGB  ·  Datenschutz  ·  Impressum  







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

Hint verschwindet nicht

Ein Thema von Jonny-Flash · begonnen am 8. Jul 2004 · letzter Beitrag vom 12. Jul 2004
Antwort Antwort
Jonny-Flash

Registriert seit: 18. Mai 2004
Ort: HH
18 Beiträge
 
Delphi 7 Professional
 
#1

Hint verschwindet nicht

  Alt 8. Jul 2004, 07:04
Ich habe folgendes Problem:
In meinem Programm werden in einem Stringgrid werden Daten aus einer Datenbank angezeigt. Nun lasse ich mir, wenn der Mauszeiger über einem Datensatz steht die Daten dafür anzeigen. Allerdings verschwindet dieser Hint erst, wenn ich das Stringgrid mit dem Mauszeiger verlasse und nicht schon beim Mousemove, wie er ja eigentlich sollte. Ich poste hier mal einen Auszug aus meinem Programm.

Delphi-Quellcode:
procedure TMain.sgDispMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
// Variablen
begin
  // Mauszeiger auf Stringgrid-Position umrechen
  x1 := X / 21;
  x2 := trunc(x1) - 1;
  y1 := Y / 21;
  y2 := trunc(y1);
  y2 := (y2 * 20) - 20;
  intMousePos := x2 + y2;

  // Datensatz aus Datenbank holen
  if ((x2 >= 0) AND (y2 >= 20)) then
  begin
    case components[intMousePos] of
      'T' : Txt.GetTxtName(strTxtName,intMousePos,intFraID,intTxtID);
      'B' : Btn.GetBtnName(strBtnName,intMousePos,intFraID,intBtnID);
      'V' : Vari.GetVarName(strVarName,intMousePos,intFraID,intVarID);
      'L' : Lst.GetLstName(strListName,strColName,intMousePos,intFraID,
        intListID, intColNr);
      'C' : Lst.GetLstName(strListName,strColName,intMousePos,intFraID,
        intListID, intColNr);
    end;

    // Wenn es ein Text war :
    if (strTxtName<>'') then
    begin
      strComp := 'Text: ';
      // Datensätze aus der Datenbank holen.
      with dm.setTxtID do
      begin
        intTxtPos := FieldByName('Txt_Pos').AsInteger;
        intTxtLng := FieldByName('Txt_Length').AsInteger;
        strTxtCap := FieldByName('Txt_Caption').AsString;
      end;
      // Die Hintdarstellung ist tabellarisch, d.h. Sprung ins Unterprogramm...
      sgDisp.Hint := strComp + ';' +
                     '' + ';' +
                     'Frame ID<@=80@>' + ': ' + IntToStr(intFraID) + '<@=120@>' + ';' +
                     'Text ID<@=80@>' + ': ' + IntToStr(intTxtID) + '<@=120@>' + ';' +
                     'Text name<@=80@>' + ': ' + strTxtName + '<@=120@>' + ';' +
                     'Text pos.<@=80@>' + ': ' + IntToStr(intTxtPos) + '<@=120@>' + ';' +
                     'Text length<@=80@>' + ': ' + IntToStr(intTxtLng) + '<@=120@>' + ';' +
                     'Text caption<@=80@>' + ': ' + strTxtCap;
    end;
    // ... geht hier noch weiter, aber zwecks übersichtlichkeit weggelassen ...
  end;
end;
Hab schon versuch
  Application.HideHint; an den Anfang der Prozedur zu schreiben, aber dann wird der Hint garnicht angezeigt.

Vieleicht weiss ja einer von euch einen Rat

Mfg
Jonny
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: Hint verschwindet nicht

  Alt 9. Jul 2004, 18:04
Hallo
Zitat:
// Mauszeiger auf Stringgrid-Position umrechen
gugg dir mal mousetocell an.
Ansonsten könnte application.cancelhint weiterhelfen und schau hier (vorletztes Post):
http://www.delphipraxis.net/internal...tringgrid+hint

Mfg Frank

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
Jonny-Flash

Registriert seit: 18. Mai 2004
Ort: HH
18 Beiträge
 
Delphi 7 Professional
 
#3

Re: Hint verschwindet nicht

  Alt 12. Jul 2004, 07:12
Hallo Frank,
das klappt jetzt wunderbar .

Wieso hab ich das nicht schon vorher beim Suchen gefunden.

Hier nochmal meine Lösung, damit der Hint verschwindet:

Delphi-Quellcode:
procedure TMain.sgDispMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
Var strOldHint : String;
begin
  strOldHint := sgDisp.Hint;

// ....
// ....
// ....

  if (strOldHint <> sgDisp.hint) then
    Application.CancelHint;
end;
Nochmals vielen Dank
Jonny.
  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 08:38 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