Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка: Control has no parent window 
:(
    Опции темы
pushok
Дата 28.7.2010, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 7.2.2007

Репутация: нет
Всего: нет



Здравствуйте.

Появилась такая ошибка: 'Control has no parent window' (строка № 28 в приведенном ниже коде)

Искал по интернету: в основном советуют переопределить метод какой-то, которые у меня в принципе не используются и процедура то вроде простенькая

Код

procedure MySave(FileName:string); // FileName содержит полный путь к файлу (с директорией)
var
files:TStrings;
d1,d2:string;
flb:TFileListBox;
begin
// Узнаем путь где лежит данная программа
d1:=application.ExeName;
while ((length(d1)>1) and (d1[length(d1)]<>'\')) do
delete(d1,length(d1),1);
// Создаем временную директорию для помещения туда файлов
d2:=d1+'mytmp';
CreateDir(d2);
// Перемещаем туда файлы из компонент
// ...
Form1.Memo2.Lines.Clear; // В Memo2 будет располагаться информация о файлах, которые содержать в папке
//
Form1.Memo2.Lines.Add('1'); // Первый раздел - текстовые файлы (кол-во, имена файлов)
Form1.Memo1.Lines.SaveToFile(d2+'\text1.txt');
Form1.Memo2.Lines.Add('text1.txt'); //
Form1.Memo2.Lines.Add('1'); // Второй раздел - файлы изображений (кол-во, имена файлов)
Form1.Image1.Picture.SaveToFile(d2+'\img1.bmp'); //
Form1.Memo2.Lines.Add('img1.bmp'); //
Form1.Memo2.Lines.SaveToFile(d2+'\main.ini');
//
flb:=TFileListBox.Create(form1); // Создаем бокс для получения списка файлов в папке
flb.Directory:=d2;  // Задаем боксу путь к папке
files:=TStrings.Create; // Создаем переменную под список имен файлов в папке
files:=flb.Items; // Копируем список имен файлов из бокса в переменную
CompressFiles(files,FileName); // Архивируем в один файл
DelDir(d2); // Удаляем временную папку со всем содержимым
end;


По комментариям должно быть ясно что там происходит.
Постараюсь пресечь сразу три ветви "советов":
1. Это проба, т.е. я только пробую как возможно сделать, то что я хочу, поэтому взял только один Image и один Memo
2. Знаю, что можно поместить содержимое компонент в потоки, объединить их и после архивировать в один файл - пока пробую такой вариант.
3. Пробовал обойтись без files:TStrings - выдает ту же ошибку при попытке архивировать

Остальные советы и замечания буду рад слышать.

Заранее благодарю за помощь.

Это сообщение отредактировал(а) pushok - 28.7.2010, 21:29
PM ICQ   Вверх
Данкинг
Дата 28.7.2010, 21:45 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 9
Всего: 130



Код

files:TStringList

? smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Delvish
Дата 28.7.2010, 21:58 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


oO
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 13.12.2006

Репутация: 1
Всего: 4



1. Данкинг указал на ошибку, которую тебе выкидывает программа. тут бы тему и закрыть, но...
2. несовсем понятен кусочек кода
Код

d1:=application.ExeName;
while ((length(d1)>1) and (d1[length(d1)]<>'\')) do
delete(d1,length(d1),1);


т.е. если путь "c:\proga.exe", то при первом шаге d1 станет равен "c:\proga.ex", при втором "c:\proga.e" и т.д., но что это даст? на 3-м шаге ошибку?
PM MAIL   Вверх
~FoX~
Дата 28.7.2010, 22:03 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 13
Всего: 68



Цитата(pushok @  28.7.2010,  22:22 Найти цитируемый пост)
// Узнаем путь где лежит данная программа
d1:=application.ExeName;


Код

ExtractFilePath(Application.ExeName); //Вурент путь вместе с '\'


Добавлено через 3 минуты и 11 секунд
Цитата(pushok @  28.7.2010,  22:22 Найти цитируемый пост)
3. Пробовал обойтись без files:TStrings - выдает ту же ошибку при попытке архивировать

TStrings - абстрактный/базовый класс, не рекомендуеца его использовать для таких работе, есть наслдники более подходящие - TStringList


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
pushok
Дата 28.7.2010, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 7.2.2007

Репутация: нет
Всего: нет



= ))

Спасибо, за советы. Буду пробовать, думаю вы не ошибаетесь, поэтому тему можно закрывать = )
PM ICQ   Вверх
Данкинг
Дата 28.7.2010, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 9
Всего: 130



Цитата(pushok @  28.7.2010,  23:27 Найти цитируемый пост)
поэтому тему можно закрывать = ) 

Закрывай. Сверху справа. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
bems
Дата 28.7.2010, 23:25 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



pushok, про TStrings тебе правильно сказали, но это же EAbstractError а не Control has no parent window

Предполагаю ошибку строкой раньше. Сделай сразу после создания flb
Код

flb.Parent := form1



--------------------
Обижено школьников: 8
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0479 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.