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

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

Это глюк или я чего-то не понимаю? [D6, IB6.x, ]


drpass ©   (2002-01-28 14:26:00) 

Самый простой вариант этой ситуации:
Form1 в Unit1 и DataModule1 в Unit2.
В DataModule:
Ibtable1->DataSource1
В Form1:
Label1

Обработчик
DataSource1OnDataChange(...)
begin
Form1.Label1.Caption:=IBTable1Field1.AsString;
end;

Все работает, в свойство Caption записывается правильное содержимое, но... не отображается на экране, т.е., внешний вид Label не обновляется, даже после вызова Update! Вернее, обновляется - но только при первом срабатывании обработчика во время открытия таблицы
Это касается любого типа данных и любых компонент (DataControls работают без проблем), и других событий, например, TIBTable.AfterScroll

Переношу DataSource из DataModule1 на Form1 - все начинает работать, как и должно было.
Почему???


AndrewK   (2002-01-29 09:21:00) [1]

Попробуй Form1.Label1.Refresh после Form1.Label1.Caption:=IBTable1Field1.AsString;

Label может просто не прорисовываться.


RAVEN   (2002-01-29 09:14:00) [2]

Попробуй Application.ProcessMessages после присваивания Form1.Label1.Caption:=IBTable1Field1.AsString;
Application.ProcessMessages;


drpass   (2002-01-28 18:26:00) [3]

Угу, как раз так он и не работает


asafr   (2002-01-28 16:36:00) [4]

DataModule1.DataSource1OnDataChange(...)
begin
Form1.Label1.Caption:=IBTable1Field1.AsString;
end;


Наверх

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