IdleProc в Lazarus

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

IdleProc в Lazarus

Сообщение dvpt » 18.03.2009 11:57:39

В Delphi есть удобная штука для обработки событий в программе Application.OnIdle
например для обновления панели статуса.
В Lazarus этого не нашел.
Есть что подобное в Lazarus или чем можно заменить?


// например
procedure TFamily.IdleProc(Sender: TObject; var Done: Boolean);
begin
StatusBar1.Panels[0].Text := IntToSTr(StringGrid1.RowCount-1);
StatusBar1.Panels[1].Text := IntToSTr(StringGrid1.Row);
end;

procedure TFamily.FormCreate(Sender: TObject);
begin
{ Обновление панели статуса}
Application.OnIdle := IdleProc;
...
end;
dvpt
новенький
 
Сообщения: 38
Зарегистрирован: 18.03.2009 11:46:04

Re: IdleProc в Lazarus

Сообщение Mr.Smart » 18.03.2009 13:48:41

Плохо смотрели :wink:
есть там такая вещь
Код: Выделить всё
TApplication = class(TCustomApplication)
...
    property OnActivate: TNotifyEvent read FOnActivate write FOnActivate;
    property OnDeactivate: TNotifyEvent read FOnDeactivate write FOnDeactivate;
    property OnIdle: TIdleEvent read FOnIdle write FOnIdle;
    property OnIdleEnd: TNotifyEvent read FOnIdleEnd write FOnIdleEnd;
    property OnEndSession: TNotifyEvent read FOnEndSession write FOnEndSession; 
...
end;
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: IdleProc в Lazarus

Сообщение EmeraldMan » 18.03.2009 19:20:53

Кинуть на форму TApplicationProperties и выбрать событие OnIdle.
Аватара пользователя
EmeraldMan
постоялец
 
Сообщения: 149
Зарегистрирован: 16.10.2008 08:41:51
Откуда: Белгород

Re: IdleProc в Lazarus

Сообщение Mr.Smart » 18.03.2009 20:51:31

EmeraldMan писал(а):Кинуть на форму TApplicationProperties и выбрать событие OnIdle.

Можно и так :wink:
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: IdleProc в Lazarus

Сообщение dvpt » 19.03.2009 10:12:44

Замечательно!
Спасибо!

К стати в Lazarus неправильно работает FileExists() в чем причина? Как его исправить?
dvpt
новенький
 
Сообщения: 38
Зарегистрирован: 18.03.2009 11:46:04

Re: IdleProc в Lazarus

Сообщение voltron » 19.03.2009 10:41:14

dvpt писал(а):К стати в Lazarus неправильно работает FileExists() в чем причина? Как его исправить?

А каким образом проявляется эта неправильность? Может дело в том, что FileExists это функция из RTL компилятора, и работает она с кодировкой ANSI? Попробуйте передавать параметры, предварительно конвертируя их в нужную кодировку при помощи Utf8ToAnsi/Utf8ToSys. Кроме того, в юните FileUtils есть юникодный вариант этой функции - FileExistsUTF8
voltron
новенький
 
Сообщения: 64
Зарегистрирован: 06.07.2007 13:27:46
Откуда: Украина

Re: IdleProc в Lazarus

Сообщение dvpt » 19.03.2009 10:59:21

Спасибо!
Функция - FileExistsUTF8 помогла!
В документации ее не нашел.
Компилятор и среда хорошая, но отсутствие документации нерадует :-(
dvpt
новенький
 
Сообщения: 38
Зарегистрирован: 18.03.2009 11:46:04

Re: IdleProc в Lazarus

Сообщение voltron » 19.03.2009 16:29:44

dvpt писал(а):Компилятор и среда хорошая, но отсутствие документации нерадует :-(

Зато исходники есть :-). А документация дело наживное
voltron
новенький
 
Сообщения: 64
Зарегистрирован: 06.07.2007 13:27:46
Откуда: Украина


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 27

Рейтинг@Mail.ru