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

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

Control '' has no parent window [D7, WinXP]


312kbps ©   (2007-12-24 17:48:00) 

procedure TForm1.FullListFile(ListF: TStrings;dir_base: string;mask: string);
var SR: TSearchRec;
begin

  if FindFirst(dir_base + mask, faAnyFile, SR) = 0 then
  begin
    repeat
      if (SR.Attr <> faDirectory) then
      begin
        ListF.Add(SR.Name);
      end;
    until FindNext(SR) <> 0;
    FindClose(SR);
  end;
end;

procedure TForm1.BackupDBF(dir_base: string);
begin

 dir_base:=RightStr(dir_base,length(dir_base)-5);

 FullListFile(ListFile.Items,dir_base,'*.dbf');

 ListBox.Items:=ListFile.Items;

end;

процедура BackupDBF запускается по событию формы OnActive

подскажи мне , почему программа ругается на SR и выдает ошибку 'Control '' has no parent window'

!? (


ЮЮ   (2007-12-25 03:21:00) [1]

> Если мне мой склероз не изменяет, то где-то летом было обсуждение
> сего исключения кучей мастеров.


Добавление элементов в листбох вызывает его перерисовку, а он ещё не "размещен" на форме.
Решений проблемы великое множество:

1) в TForm1.FullListFile формировать невизуальный TStringList и Assign-нуть его в OnShow
2) перенести из OnActive в OnShow
3) заполнение ListF.Items взять "в скобки" BeginUpdates; ... ;EndUpdate, дабы избежать попыток перерисовки.


Германн   (2007-12-25 02:36:00) [2]

P.S.
Если мне мой склероз не изменяет, то где-то летом было обсуждение сего исключения кучей мастеров.


Германн   (2007-12-25 01:00:00) [3]


> подскажи мне , почему программа ругается на SR и выдает
> ошибку 'Control '' has no parent window'

Программа может всяко ругаться на SR, но уж не так "Control '' has no parent window". Ошибка в другом месте.


Правильный_Вася   (2007-12-24 18:22:00) [4]


> ListBox.Items:=ListFile.Items;

это чево и зачем оно?


Наверх

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