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

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

Как сделать свой hint!!!!!! [D6, Win95/98, WinME, NT4, Win2k, WinXP]


CRACKISH ©   (2003-01-29 08:36:00) 

Люди вот задаю для вас смешной вопрос! но!!!!!!!!! как сделать свой hint! выхоть только самое главное покажите!!!!!!!! Спасибо!!!!!!!


smok_er   (2003-02-08 11:27:00) [1]

Уважаемые, не понимаю, зачем все это надо. CRACKISH, сходи на торри, там есть фриварные компоненты с исходниками, и разбирайся. Имхо это будет лучший вариант.


Юрий Зотов   (2003-02-08 08:32:00) [2]

Значит, так изменил. Код - в студию, что ж тут еще скажешь.


CRACKISH   (2003-02-08 08:25:00) [3]

Юрий Зотов! втомто и дело что я вторую форму изменл (цвет и рисунок впихнул!!!!!)!! А hint серавно стандартный!


ййй   (2003-02-07 09:25:00) [4]

На скорую руку но работает

unit Unit2;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;

type
TForm2 = class(TForm)
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
{ Private declarations }

{ Public declarations }
end;

TMyHint = Class ( THintWindow)
public
constructor Create(AOwner: TComponent); override;
procedure Paint ; Override;
procedure ActivateHint(Rect: TRect; const AHint: string); Override;
end;
var
Form2: TForm2;

implementation

{$R *.dfm}

constructor TMyHint.Create(AOwner: TComponent);
begin
inherited;
Form2 := TForm2.Create(self);
Form2.Show;
end;

procedure TMyHint.Paint;
var Cp : TPoint;
begin
GetCursorPos(Cp);
Form2.Top := Cp.Y + 2;
Form2.Left := Cp.X + 2;
Form2.Caption := Caption;
Form2.Timer1.Enabled := false;
Form2.Timer1.Enabled := true;
Form2.Show;
end;

procedure TMyHint.ActivateHint(Rect: TRect; const AHint: string);
begin
Caption := AHint;
Paint;
end;

procedure TForm2.Timer1Timer(Sender: TObject);
begin
Close;
end;

end.


Юрий Зотов   (2003-02-07 09:10:00) [5]

А почему хинт должен измениться? Ваш TForm2 воспринят нормально, но ведь он пока еще ничем не отличается от стандартного THintWindow - поэтому и хинт пока еще стандартный.

Нестандартный хинт - его же писать надо, сам по себе он не возникнет. Вот и пишите класс TForm2.


CRACKISH   (2003-02-07 08:12:00) [6]

Юрий Зотов! Код Delphi вопринемается!!! но серавно hint станлартный! вот че я делал!
1.В uses дописал unit2
2. Дописал
type
TForm2 = class (THintWindow)
end;
3. А в oncreate то что вы мне сказали!!!!!!!
Как быть????????


CRACKISH   (2003-02-06 07:45:00) [7]

спасибо!!!!!!!!!:)


Юрий Зотов   (2003-02-05 08:12:00) [8]

Да, пример не работает, здесь я дал маху, признаюсь. Он не работает потому, что класс хинта должен быть потомком THintWindow, а не TForm. Значит, Ваша задача - написать такого потомка и при старте программы переопределить HintWindowClass.

А идея, конечно, отличная. Жаль только, что не моя, а Borland"а.
:о)


CRACKISH   (2003-02-05 07:55:00) [9]

Юрий Зотов ! че то твой пример не работает????? а идея отличная!!!!! спасибо!!!!!!!


CRACKISH   (2003-01-31 08:00:00) [10]

Спасибо!!!!


malkolinge   (2003-01-29 13:51:00) [11]

А еще лучше разориться на Стива Тексейру и Ксавье Пачеко :)))) сколько вопросов сразу отпадент


Юрий Зотов   (2003-01-29 09:49:00) [12]

См. в справке:
HintWindowClass variable.

Например, сделайте пустую форму TForm2, а в OnCreate главной формы TForm1 напишите: HintWindowClass := TForm2;

Только не забудьте в unit1 добавить:
uses
..., unit2;

Результат, конечно, будет ужасен, но он будет. Ваша задача - превратить TForm2 во что-то приличное.


Anatoly Podgoretsky   (2003-01-29 09:45:00) [13]

.hint := "My hint";


Наверх

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