![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
компонент StatusBar [D2005]
Роман © (2014-02-10 11:26:00)Добрый День.
Здравствуйте занимаюсь по книге Михаила Флёнова, там разбирают компонент StatusBar.
расклад такой, добавляется процедура ShowHint
procedure TForm1.ShowHint(Sender: TObject);
begin
StatusBarl.SimpleText := Application.Hint;
end;
Внутри процедуры мы присваиваем в свойство SimpleText строки состояния текст, находящийся В Application. Hint. А В Application .Hint всегда находится подсказка, которую надо сейчас отобразить.
И обработчик события для главной формы OnShow
procedure TFormi.FormShow(Sender: TObject);
begin
Application.OnHint := ShowHint;
end;
Получается обработчик события OnHint компонента Application принимает значение процедуры ShowHint
и при наведении мыши например на компонент кнопка должна вылетать подсказка (а она есть) в StatusBar1.
Но к сожалению программа не работает, в свойствах формы выставлено свойство ShowHint на True и все вроде бы правильно но она все равно не работает.
Пожалуйста помогите с этой проблемой
Palladin (2014-02-12 01:45:00) [1]Фленов
Роман (2014-02-10 14:41:00) [2]Ага спасибо, работает!
Германн (2014-02-10 14:25:00) [3]Значит надо было поставить SimplePanel True.
Роман (2014-02-10 14:03:00) [4]Спасибо большое!
Когда добавил панель и к ней присвоил Application.Hint то все получилось.
stas (2014-02-10 13:19:00) [5]Добавьте панель в статус бар и сделайте так:
procedure TForm1.ShowHint(Sender: TObject);
begin
StatusBar1.Panels[0].Text:=Application.Hint;
end;
stas (2014-02-10 13:08:00) [6]Ну, может в 2005 че-то намутили в D7 работает...
stas (2014-02-10 13:04:00) [7]Вот так:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
StatusBar1: TStatusBar;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
procedure ShowHint(Sender:TObject);
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.FormShow(Sender: TObject);
begin
Application.OnHint:=ShowHint;
Button1.Hint:='Это Button1...';
end;
procedure TForm1.ShowHint(Sender: TObject);
begin
StatusBar1.SimpleText:=Application.Hint;
end;
end.
Роман (2014-02-10 13:03:00) [8]Хинт выставил в свойствах кнопки
stas (2014-02-10 13:02:00) [9]Application.OnHint срабатывает даже если у контрола ShowHint:=false, но чтобы вывести hint, то свойство hint контрола, должно быть заполнено.
stas (2014-02-10 12:59:00) [10]А откуда хинту взяться ?
Германн (2014-02-10 12:57:00) [11]
> в свойствах формы выставлено свойство ShowHint на True
А в свойствах самой кнопки?
Роман (2014-02-10 11:39:00) [12]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
StatusBar1: TStatusBar;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
procedure ShowHint(Sender:TObject);
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.FormShow(Sender: TObject);
begin
Application.OnHint:=ShowHint;
end;
procedure TForm1.ShowHint(Sender: TObject);
begin
StatusBar1.SimpleText:=Application.Hint;
end;
end.
asddsa (2014-02-10 11:28:00) [13]выложили бы код...