Thema: Delphi Hint-Window

Einzelnen Beitrag anzeigen

MatthiasW

Registriert seit: 29. Jan 2003
Ort: Reichenbach
253 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Hint-Window

  Alt 2. Dez 2004, 00:08
Also so wie du den Hint erzeugst dann gehört er dem FCL - Formular. Wenn jetzt der Hint über den Rand des Fensters geht wird der dort abgeschnitten.

Ich habe foldenden Code:

Delphi-Quellcode:
HintParentForm := GetParentForm(Self);
GetCursorPos(FormPos);

if fHintWindow = nil then
begin
  if HintParentForm <> nil then
    fHintWindow := THintWindow.Create(HintParentForm)
  else
    fHintWindow := THintWindow.CreateParented(Self.ParentWindow);
end;

fHintWindow.ParentWindow := GetDesktopWindow;

iItemLength := Canvas.TextWidth(fItems.Strings[fMouseMovedItem]) + 10;
iItemHeight := Canvas.TextHeight('100') + 2;

HintRect := Rect(FormPos.x,FormPos.y,FormPos.x+iItemLength,
                 FormPos.y+iItemHeight);
fHintWindow.ActivateHint(HintRect,fItems.Strings[fMouseMovedItem]);
Das Hintwindow soll aus innerhalb einer Componente angezeigt werden.

In Delphi5 hat dieser Code exakt das gewünschte Hint - Window zum vorschein gebracht. Wenn ich jetzt exakt diesen Code von Delphi 7 oder 2005 ausführen lasse, blitzt das Hint kurz auf und der Form bekommt den Focus entzogen und nach etwa 5 - 10 Sekunden automatisch wieder zugewiesen.

Lasse ich das "ActivateHint" weg und setze die "Width" und "Height" Eigenschaften dann wird der Hint wieder dauernd angezeigt.

Tja drum hab ich halt gedacht ob da was anders geworden ist, das das "ActivateHint" nicht mehr notwendig ist.
Hilfe wir stürzen ab!!!
  Mit Zitat antworten Zitat