Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
Zlobnyj_Prapor
0 / 0 / 0
Регистрация: 16.07.2015
Сообщений: 20
#1

Приориторет операций - Delphi

29.07.2015, 23:17. Просмотров 284. Ответов 6
Метки нет (Все метки)

Доброго времени суток уважаемые форумчане. Кратко суть проблемы. Есть на форме компонент например панелька, она уничтожается двумя способами 1) нажатием кнопки Button 2) По истечении промежутка времени событием ONTimer.
Проблема в том что если сначала нажимаешь кнопку и панель удаляется то потом когда наступает событие ONTimer программа начинает искать данную панельку и выдает сообщения о неудачных к ней обращениях. Вопрос: как сделать приоритет события ONTimer ниже чтобы он после удаления панели не производил ее повторное удаление?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.07.2015, 23:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Приориторет операций (Delphi):

Напечатать все знаки арифметических операций и операций отношения - Delphi
Напечатать все знаки арифметических операций и операций отношения,которые входят в заданый массив и все знаки арифметических операций и...

Учет кассовых операций - Delphi
Помогите пожалуйста написать обработчик даны переменные: дата, остаток на начало дня, дебет, кредит и остаток на конец дня в первый...

Время выполнния операций - Delphi
Доброго времени суток всем!!! Ребят подскажите пожалуйста!!! Есть у меня вобщем база данных, в которой осуществляется поиск, так, препод...

Время выполнения операций - Delphi
Как узнать какое время у процессора займет выполнение какого либо действия. К примеру я на форме прорисовывал многоугольник с помощью 4-х...

Демонстрация операций над множествами - Delphi
Здравствуйте,помогите пожалуйста написать программу,которая демонстрировала бы операции над множествами в Делфи.

Рассчитать количество операций присваивания - Delphi
Помогите составить код, который рассчитает количество операций присваивания в Delphi

6
VladWH
239 / 189 / 65
Регистрация: 01.05.2015
Сообщений: 732
29.07.2015, 23:55 #2
Zlobnyj_Prapor, проверять существует ли панель
Delphi
1
2
if Panel <> nil then
 Panel.Free;
Добавлено через 1 минуту
или так
Delphi
1
2
if FindComponent('ИмяТвоейПанели') <> nil then
 ( FindComponent('ИмяТвоейПанели') as TPanel).Free;
0
northener
пофигист широкого профиля
3153 / 2206 / 469
Регистрация: 15.07.2013
Сообщений: 12,874
30.07.2015, 01:11 #3
Цитата Сообщение от VladWH Посмотреть сообщение
Zlobnyj_Prapor, проверять существует ли панель
Delphi
1
if Panel <> nil
не проверяет существование панели. Особенно если панель уничтожается
Delphi
1
Panel.Free
Тогда уж вместо Free надо вызывать FreeAndNil.
Но я просто в упор не понимаю зачем нужна панелька на форме, которую нужно уничтожать? Тем более таким сложным способом.
0
krapotkin
2664 / 2540 / 641
Регистрация: 14.04.2014
Сообщений: 12,262
Записей в блоге: 7
30.07.2015, 07:29 #4
если ты сам создаешь свою панель, так и храни ссылку на нее, эту ссылку потом FreeAndNil
а то набросать панелей, а потом искать их через FindComponent - это правая рука не знает, что делает левая...
0
Puporev
Модератор
52392 / 40239 / 13577
Регистрация: 18.05.2008
Сообщений: 93,003
30.07.2015, 07:39 #5
А если так?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var
  Form1: TForm1;
  f:boolean=true;
  k:integer;
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
Panel1.Free;
f:=false;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
inc(k);
if(k=10)and f then
 begin
  Panel1.Free;
  Timer1.Enabled:=false
 end;
end;
1
VladWH
239 / 189 / 65
Регистрация: 01.05.2015
Сообщений: 732
30.07.2015, 09:20 #6
Цитата Сообщение от northener Посмотреть сообщение
Тогда уж вместо Free надо вызывать FreeAndNil.
да, ошибся я. спасибо за исправление
0
Zlobnyj_Prapor
0 / 0 / 0
Регистрация: 16.07.2015
Сообщений: 20
30.07.2015, 18:30  [ТС] #7
Большое спасибо за совет PUPOREV . Все гораздо проще чем я думал). Northener ты не понял форма не уничтожается уничтожается только панелька находящаяся на ней)
0
30.07.2015, 18:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.07.2015, 18:30
Привет! Вот еще темы с ответами:

Вычислить за наименьшее количество операций - Delphi
Вычислить за наименьшее количество операций y=x^8 нужно решить в Delphi 7

Получить а в 13 степени за пять операций - Delphi
Дано действительное число а. Не пользуясь никакими другими арифметическими действиями кроме умножения получить а в 13 степени за пять...

Подсчет количества выполненых операций - Delphi
При выполнении программы нужно вести подсчет совершенных операций. Как реализовать?)

Одна процедура вместо повторяющихся операций... - Delphi
Всем доброго времени суток. Возник такой вот вопрос: Как можно к этому коду, сделать процедуру: case fmDirectory.pcDirectory.TabIndex...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru