![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как удалить предок компонента из его же события
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;