Как сделать Free родителю

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Blood_Magic
Сообщения: 273
Зарегистрирован: 30 июн 2005, 14:53

Народ, помогите, что-то я совсем ничего не понимаю. Пример: На форме есть Panel1, на ней Image1. В модуле пишу:

Код: Выделить всё

procedure TForm1.Image1Click(Sender: TObject);
begin
  TImage(Sender).Parent.Free;
end;
Не работает, выдает ошибку, причем если несколько Image на Panel, то ошибки выдаются разного типа и не всегда.
Blood_Magic
Сообщения: 273
Зарегистрирован: 30 июн 2005, 14:53

Причем с кнопкой Button все прокатывает нормально
- Чем юзер похож на обезьяну?
- Он жмет на все, что жмется, дергает все, что дергается и крутит все, что крутится.
- Чем юзер отличается от обезьяны?
- У обезьяны хватает ума не воспроизводить ту последовательность, которая приводит к краху системы.
OTELLO
Сообщения: 59
Зарегистрирован: 11 дек 2004, 11:52
Откуда: Питеррр
Контактная информация:

Ну так ты убиваешь родителя,теряются все связи,это вообще злая ошибка происходит на самом деле,кароче нельзя так делать=)
Blood_Magic
Сообщения: 273
Зарегистрирован: 30 июн 2005, 14:53

OTELLO писал(а):Ну так ты убиваешь родителя,теряются все связи,это вообще злая ошибка происходит на самом деле,кароче нельзя так делать=)
спасибо что подсказал, и как это я сам не додумался.

Дельные советы есть?
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Сделай ее невидимой да не парся
аля
.Visible := False;
[syntax=Delphi] [/syntax]
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

Blood_Magic, тебе это для чего? может надо с другой стороны подходить...
Изображение
Blood_Magic
Сообщения: 273
Зарегистрирован: 30 июн 2005, 14:53

Игорь Акопян писал(а):Blood_Magic, тебе это для чего? может надо с другой стороны подходить...
У меня есть главная форма. При нажатии кнопки создается новая форма,а на главной форме соответственно создаются кнопочки. При нажатии кнопочки происходит переход на соответствующую форму.
Состав кнопки: Panel (сама кнопка), на ней расположены: Bevel (в виде рамки - стиль оформления) и Image (Кнопка закрытия формы - крестик как у окон Windows). При нажатии на Image должно происходить уничножение соответствующей формы и кнопки (Panel,Bevel,Image).
OTELLO
Сообщения: 59
Зарегистрирован: 11 дек 2004, 11:52
Откуда: Питеррр
Контактная информация:

Ну так и уничтожай в обратном порядке- сначала Image, потом Bevel, а потом и панельку-все заработает...
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

Дай угадаю. Ты в рунтайме кнопки с бевелами создаёшь? Если да, то как? Обычно Free парента убивает детей, но только если дети созданы корректно! Проверь свойства Parent и Owner
Изображение
OTELLO
Сообщения: 59
Зарегистрирован: 11 дек 2004, 11:52
Откуда: Питеррр
Контактная информация:

2 Игорь Акопян
Обычно Free парента убивает детей


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