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

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

Как удалить предок компонента из его же события


Страницы:   1 2

Sco ©   (2006-10-18 16:10:00) 

Мне надо так но выдаётся ошибка, шо делать?

procedure TAlarmClockF.AlarmDelIconClick(Sender: TObject);
begin
// smth code
AlarmDelIcon.parent.destroy
// smth code
end;

Всё идёт гладно до end; потом ошибка памяти, шо можно сдесь сделать?


MikePetrichenko   (2006-10-19 06:50:00) [1]

procedure TfmMain.Button1Click(Sender: TObject);
var
 Obj: TOBject;
begin
 Obj := TButton(Sender).Parent;
 TButton(Sender).Parent := TButton(Sender).Parent.Parent;
 Obj.Free;
end;


Schamane   (2006-10-18 23:06:00) [2]

Эх, надо мне названия внимательнее читать...


Schamane   (2006-10-18 22:45:00) [3]

Если не гнаться за красотой, поставить таймер на 50 мс, и в его обработчике замочить экземпляр и выключить таймер. Согласен, кривовато.
И ещё. Я писал такое:
procedure someproc(Sender: TObject);
begin
//
Sender.Free;
//
end;

И у меня всё работало. Мож я чё не понимаю?


Германн   (2006-10-18 22:42:00) [4]


> sniknik ©   (18.10.06 22:39) [28]
>
> Германн ©   (18.10.06 22:34) [27]
> человек не знает про события, а ты ему чтобы по куску догадался
> свое сделать, и вызов исправить...

Так вот пусть и узнаёт, а не глотает уже разжеванное. :-)


sniknik   (2006-10-18 22:39:00) [5]

Германн ©   (18.10.06 22:34) [27]
человек не знает про события, а ты ему чтобы по куску догадался свое сделать, и вызов исправить... к тому же это лишнее, должно сработать системное

procedure TAlarmClockF.AlarmDelIconClick(Sender: TObject);
begin
 PostMessage(AlarmDelIcon.Parent.Handle, WM_CLOSE, 0, 0);
end;


Германн   (2006-10-18 22:34:00) [6]


> вторым параметром надо передавать переменную Cardinal, а
> в примере ^ передаётся процедура... так не я же придумал
> етот пример.

Но ты же мой пример "тупо" скопировал, да ещё и с ошибкой.
У меня PostMessage(Handle, WM_AlarmDelIcon_parent_destroy,0,0);

procedure TAlarmClockF. WMAlarmDelIcon_parent_destroy(var Mes: TMessage);
Наиди разницу.


Sco   (2006-10-18 21:52:00) [7]

2Virgo_Style чтото я тебя недопонял, ты предлагаешь перенести тему в "основные"? я думаю ей там не место, просто я имел ввиду что ето вопрос не из лёгких, однако ине и продвинутых. Ты ответ на мой вопрос знаешь?


Sco   (2006-10-18 21:49:00) [8]

"Если ты в "начинающим" нормально вопрос сформулировать не можешь, сделай вывод: тебе еще рано этим заниматься... а то и вовсе не судьба... смирись... А придется..."
Я щас учусь в политехе, на программиста, в потоке я лучший, 1 курс... так что не пиши придётся или нет... А чтобы ты знал - ты просто флудер, хороший ты программист или нет, но флудер ты стабильно - я ето хуже дворника причём намного.
Тебе уже ответили... работа на свежем воздухе метлой способствует усилению мозговой деятельности... типа, лучший отдых - смена деятельности... я не сомневаюсь, что метлой махать у тебя получится... правда, в отношении решения тобою программных задач у меня очень сильные сомнения... (ну вот, я опять повторился)...
Я конечно нарушаю правил а форума- но у меня к тебе вопрос - ты чо ахренел? ты чо бля думаешь что все программеры с нуля сразу становятся крутыми? я тут такие топики видел, где такие елементарные вопросы обсуждались, и знаешь никто про дворников ничо не говорил.
P.S. Замечательная у тебя анкета: "Увлечения / хобби: Delphi рисую лыжи"... ну, раз удается рисовать в Delphi лыжи, то метла получится и подавно...я вижу ты на форуме не зарегистрен, ты ваще хоть какоенибудь отношение к Делфи имеешь? или ты просто нашёл в яндексе страничку, и твоя никчёмная душонка решила испананить мне настроение?
Ты претваряешься кретином или ето давно уже твой диагноз?


Пользователь   (2006-10-18 21:24:00) [9]

то смею напомнить что раздел называется "начинающим", а всякие системные сообщения далеко не азы в Делфи...

Если ты в "начинающим" нормально вопрос сформулировать не можешь, сделай вывод: тебе еще рано этим заниматься... а то и вовсе не судьба... смирись...

в дворники я не собираюсь...

А придется...

если я чего то не знаю ето не значит что я ничего не умею и мне надо идти в дворники...

При таком подходе к решению задач - придется... (извини, что повторяюсь)...

и ваще ето борзо вместо ответа писать такое...

Тебе уже ответили... работа на свежем воздухе метлой способствует усилению мозговой деятельности... типа, лучший отдых - смена деятельности... я не сомневаюсь, что метлой махать у тебя получится... правда, в отношении решения тобою программных задач у меня очень сильные сомнения... (ну вот, я опять повторился)...

P.S. Замечательная у тебя анкета: "Увлечения / хобби: Delphi рисую лыжи"... ну, раз удается рисовать в Delphi лыжи, то метла получится и подавно...


Virgo_Style   (2006-10-18 21:21:00) [10]

Sco ©   (18.10.06 21:13) [22]
то смею напомнить что раздел называется "начинающим", а всякие системные сообщения далеко не азы в Делфи...


Ну так и незачем начинаюшим туда лезть


Sco   (2006-10-18 21:13:00) [11]

прочитал статью про сообщения, посмотрел функцию PostMessage...
вторым параметром надо передавать переменную Cardinal, а в примере ^ передаётся процедура... так не я же придумал етот пример. Надо както "оформить" процедуру через cardinal? если да то как? если нет то что нужно передать в качестве второго параметра?

Вы что меня игнорируете... если да, и если из за [19], то Ketmar, Игорь Шевченко, Amoeba реально ничо не сделали для етого топика, тока нафлудили, так что моё замечание вполне справедливо. А если все считают что мой вопрос слишком лёгок... то смею напомнить что раздел называется "начинающим", а всякие системные сообщения далеко не азы в Делфи...
2Игорь Шевченко в дворники я не собираюсь... если я чего то не знаю ето не значит что я ничего не умею и мне надо идти в дворники... и ваще ето борзо вместо ответа писать такое...


Virgo_Style   (2006-10-18 20:58:00) [12]

Sco ©   (18.10.06 20:45) [20]
В чём проблема?


В незнании.
Посмотри, какие параметры у PostMessage и сравни с тем, что ты ей дал.


Sco   (2006-10-18 20:45:00) [13]

Ау народ! Как ето сделать - у меня в ^ коде выводит ошибку:
AlarmClock.pas(512): Not enough actual parameters, на параметр WMAlarmDelIcon_parent_destroy, если я пишу:
procedure TAlarmClockF.AlarmDelIconClick(Sender: TObject);
var
mes: TMessage;
begin
// smth code
PostMessage(Handle,WM_AlarmDelIcon_parent_destroy(mes),0,0);
// smth code
end;
то она ругается [Ошибка] AlarmClock.pas(512): Incompatible types: 'Cardinal' and 'procedure, untyped pointer or untyped parameter'.
В чём проблема?


Sco   (2006-10-18 20:18:00) [14]

Флудеры... чо незя ответиь нормально??? ну незнаю я етого, разобраться не смог... уровень не тот, мона же обьяснить, а вы флудите...


Ketmar   (2006-10-18 19:54:00) [15]

>[17] Sco(c) 18-Oct-2006, 19:39
>какой метлой?
обычной. в стране дефицит хороших дворников.


Sco   (2006-10-18 19:39:00) [16]

2Игорь Шевченко какой метлой? чо проблемы с головой? книжки я итак читай, ДелфиВорлд изучаю и т.д. А как решить ету траблу не знаю.

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


Игорь Шевченко   (2006-10-18 17:45:00) [17]

Sco ©   (18.10.06 17:36) [15]

Лучше не смеяться. Лучше книжки читать. Или за метлой бежать в ближайший магазин.


Sco   (2006-10-18 17:36:00) [18]

2Германн не прокатило, пишет "[Ошибка] AlarmClock.pas(512): Not enough actual parameters"
2Игорь Шевченко можно смеятся?


Игорь Шевченко   (2006-10-18 17:21:00) [19]


> лучше бы написал код который мне надо ввести...


Ему ничего не надо вводить. Это тебе надо ввести. Вот и мучайся.


Германн   (2006-10-18 17:09:00) [20]

procedure TAlarmClockF.AlarmDelIconClick(Sender: TObject);
begin
// smth code
 PostMessage(Handle,WM_AlarmDelIcon_parent_destroy,0,0);
// smth code
end;
procedure TAlarmClockF.WMAlarmDelIcon_parent_destroy(var Mes: TMessage);
begin
 AlarmDelIcon.parent.free;
end;


Страницы:   1 2

Наверх

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