Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2011, 03:33   #21
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Кстати, заметил, что если использовать просто Sender.Free, то ошибка возникает, только когда кликаеш по кнопке мышкой. При нажатии с клавиатуры никаких ошибок.
Sibedir вне форума Ответить с цитированием
Старый 21.01.2011, 18:24   #22
NoName_emaNoN
Форумчанин
 
Аватар для NoName_emaNoN
 
Регистрация: 15.11.2007
Сообщений: 229
По умолчанию

+ 1 когда фокус на кнопке, и жмёшь пробел - ошибка не выскакивает.
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.
NoName_emaNoN вне форума Ответить с цитированием
Старый 21.01.2011, 18:56   #23
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Цитата:
Сообщение от NoName_emaNoN Посмотреть сообщение
+ 1 когда фокус на кнопке, и жмёшь пробел - ошибка не выскакивает.
Все верно. А почему ?
А вы обратите внимание, какое событие обрабатывается - событие отпускания клавиши.
А вот если б была обработка события нажатия - то ERROR...
Немного по-другому с нажатием мышки - если Sender.Free ставить в обработчик OnMouseUp, OnMouseDown - ошибки нет, OnMouseClick - ошибка...

Последний раз редактировалось asmodey1; 21.01.2011 в 19:01.
asmodey1 вне форума Ответить с цитированием
Старый 21.01.2011, 19:46   #24
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Наверное он пытается отрисовать отжатую кнопку, которой уже нет.
Sibedir вне форума Ответить с цитированием
Старый 21.01.2011, 22:02   #25
NoName_emaNoN
Форумчанин
 
Аватар для NoName_emaNoN
 
Регистрация: 15.11.2007
Сообщений: 229
По умолчанию

2 Sibedir: Наверное.

Вобщем, опытным путём было установлено, что в Delphi 2010 ошибки нет.

Если в Delphi 7 процедуру присваивать НЕ к OnClick, а к OnMouseUp, то всё работатет без ошибок, но если нажимать кноку, которая добавляет поля, не мышкой а с клавиатуры пробелом, то исчезают все кноки удаления предыдущих полей.

Вобщем вот накатал небольшую демку, кому интересно - зацените :-)
Вложения
Тип файла: zip Fields.zip (204.9 Кб, 7 просмотров)
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.
NoName_emaNoN вне форума Ответить с цитированием
Старый 21.01.2011, 22:19   #26
Vaigard
Delphi and (not C)
Форумчанин
 
Аватар для Vaigard
 
Регистрация: 04.12.2010
Сообщений: 117
По умолчанию

Не знаю, к чему так растягивать эту тему

Код:
procedure tform1.button1click(sender:tobject);
begin
button1.free;
end;
Исчезла без проблем
<--Жми на весы
Vaigard вне форума Ответить с цитированием
Старый 21.01.2011, 22:30   #27
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Цитата:
Сообщение от Vaigard Посмотреть сообщение
Не знаю, к чему так растягивать эту тему

Код:
procedure tform1.button1click(sender:tobject);
begin
button1.free;
end;
Исчезла без проблем
прежде чем писать прочитайте все посты.
vovk вне форума Ответить с цитированием
Старый 22.01.2011, 07:40   #28
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Цитата:
Сообщение от 2 NoName_emaNoN
Вобщем вот накатал небольшую демку, кому интересно - зацените :-)
Вложения Fields.zip (204.9 Кб, 0 просмотров)
Глюк с NewCount. Удалил средний блок, а добавить новый не могу.

Цитата:
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EComponentError with message 'A component named NewEdit16 already exists'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
Просто заведи счетчик и увеличивай на 1 и все. Ну или исправь своё именование.

Последний раз редактировалось Sibedir; 22.01.2011 в 11:16.
Sibedir вне форума Ответить с цитированием
Старый 22.01.2011, 15:42   #29
NoName_emaNoN
Форумчанин
 
Аватар для NoName_emaNoN
 
Регистрация: 15.11.2007
Сообщений: 229
По умолчанию

Да, точно, есть такая ошибка. Счётчик здесь не поможет. Тут нужно либо при удалении переименовывать последующие поля, либо придумывать новый способ создания объектов. Я думаю через try except можно.

UPD: Исправил проблему заменой одной строки в процедуре CreateAddNewField;
Строку:
Код:
Inc(NewCount, 1);
Заменил на:
Код:
NewCount := GroupBox1.Controls[I].Tag + 1;
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.

Последний раз редактировалось NoName_emaNoN; 22.01.2011 в 18:56.
NoName_emaNoN вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
при нажатии на кнопку Delete vik85 Помощь студентам 0 20.12.2009 20:34
Скрытие интерфейса при нажатии на кнопку kostghost Общие вопросы Delphi 3 28.08.2009 11:10
прокрутка при нажатии на кнопку neformat JavaScript, Ajax 0 20.06.2008 20:40
При нажатии на кнопку добавить в PageControl VenMaster Компоненты Delphi 5 25.04.2008 01:41
Загрузка файла при нажатии на кнопку Simply-Art Общие вопросы Delphi 15 23.01.2007 14:00