Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Удаление кнопки после ее нажатия

8.2K
19 мая 2007 года
DriveIS
10 / / 08.04.2005
Как удалить кнопку с формы после нажатия на нее же?
Если просто писать Free в обработчике события OnClick вылетает ошибка, хотя кнопка удаляется. Такая ошибка происходит не всегда, закономерности ее появления пока не нашел.
Может кто-то сталкивался с такой проблемкой.
7.9K
19 мая 2007 года
user13
66 / / 07.11.2006
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Visible := false;
end;
257
19 мая 2007 года
kosfiz
1.6K / / 18.09.2005
Цитата: user13
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Visible := false;
end;


так кнопка станет невидимой, но не удалится.

[quote=DriveIS]Если просто писать Free в обработчике события OnClick вылетает ошибка, хотя кнопка удаляется. Такая ошибка происходит не всегда, закономерности ее появления пока не нашел.[/quote]
приведи пример кода, в результате отработки которого вылазиет ошибка.

497
19 мая 2007 года
IL84
267 / / 24.04.2003
Цитата: DriveIS
Если просто писать Free в обработчике события OnClick вылетает ошибка, хотя кнопка удаляется.


Ессно будет ошибка. Как можно удалять объект в его собственном методе?

268
20 мая 2007 года
Михаил
587 / / 25.06.2005
Цитата: IL84
Как можно удалять объект в его собственном методе?


метод будет не кнопки, а формы

268
20 мая 2007 года
Михаил
587 / / 25.06.2005
Цитата: DriveIS
Такая ошибка происходит не всегда, закономерности ее появления пока не нашел.
Может кто-то сталкивался с такой проблемкой.


вероятно вы где то обращаетесь к уже уничтоженной кнопке

24K
22 мая 2007 года
Liverpool
16 / / 08.05.2007
просто опиши независимую процедуру!!!
При отображении формы закинь в onClick имя процедуры.
При удалении ты удалишь кнопочку а процедурка у тебя будет висеть и можешь вызвать где тебе понадобится
10
23 мая 2007 года
Freeman
3.2K / / 06.03.2004
Цитата: Liverpool
При удалении ты удалишь кнопочку а процедурка у тебя будет висеть и можешь вызвать где тебе понадобится


Сам-то понял, что сказал?

24K
24 мая 2007 года
Liverpool
16 / / 08.05.2007
Цитата: Freeman
Сам-то понял, что сказал?



я то понял!!!

27K
27 мая 2007 года
mcWhuper
11 / / 22.05.2007
свяжи удаление с другим объектом. Например с таймером.

пишу пример:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
timer1.Enabled:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
button1.Free;
timer1.Free
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
timer1.Enabled:=false;
end;

end.

в свойствах тайемра интервал ставишь на 1
типа того... работает?
261
27 мая 2007 года
ahilles
1.5K / / 03.11.2005
Цитата: Михаил
вероятно вы где то обращаетесь к уже уничтоженной кнопке


наверно так и есть!
чего распинаться! у него 100% где-то есть обращение к уничтоженной кнопке!

4.6K
27 мая 2007 года
Tokolist
268 / / 22.03.2007
Цитата: ahilles
наверно так и есть!
чего распинаться! у него 100% где-то есть обращение к уничтоженной кнопке!



Полностью согласен с ahilles.

27K
28 мая 2007 года
mcWhuper
11 / / 22.05.2007
приведенный мною код в сообщении #10 работает даже если где-то есть обращение к уничтоженной кнопке! Проверил сам...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог