Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

StringGrid и Hint


def_ ©   (2006-06-15 11:57:00) 

Доброго дня. Такая проблема - нужно решить задачу показывания отдельной подсказки для каждой ячейки StringGrid/ В сети нашел такой код :
 type
   TForm1 = class(TForm)
   StringGrid1: TStringGrid;
   procedure StringGrid1MouseMove(Sender: TObject;
   Shift: TShiftState; X, Y: Integer);
   procedure FormCreate(Sender: TObject);
   private
   {Private declarations}
   Col : integer;
   Row : integer;
   public
   {Public declarations}
    end;
 
 var
   Form1: TForm1;
 
 implementation
 
 {$R *.DFM}
 
 procedure TForm1.FormCreate(Sender: TObject);
 begin
   StringGrid1.Hint := '0 0';
   StringGrid1.ShowHint := True;
 end;
 
 procedure TForm1.StringGrid1MouseMove(Sender: TObject;
             Shift: TShiftState; X, Y: Integer);
 var
   r : integer;
   c : integer;
 begin
   StringGrid1.MouseToCell(X, Y, C, R);
   with StringGrid1 do
   begin
   if ((Row <> r) or(Col <> c)) then
   begin
   Row := r;
   Col := c;
   Application.CancelHint;
   StringGrid1.Hint :=IntToStr(r)+#32+IntToStr(c);
   end;
   end;
 end;

Пример довльно распространненый и есть на многих крупных порталах, т.т.е должен быть правильным. Но не работает. В чем может быть причина. Пробывал в delphi7 и 8.


evvcom   (2006-06-15 13:17:00) [1]

Сравни с моим:
procedure DoShowHint(Control: TControl);
var
 l_P: TPoint;
 l_Message: TWMMouse;
begin
 Application.CancelHint;
 if Control.Hint <> '' then
 begin
   GetCursorPos(l_P);
   l_Message.Pos := PointToSmallPoint(Control.ScreenToClient(l_P));
   Application.HintMouseMessage(Control, TMessage(l_Message));
 end;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо