Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.06.2014, 13:55
CrazyMan86 CrazyMan86 вне форума
Прохожий
 
Регистрация: 03.09.2008
Адрес: Владикавказ
Сообщения: 13
Репутация: 10
По умолчанию работа с TComponent

Добрый день
подскажите пожалуйста как правильно обработать переменные TComponent
Прога типа таймера
Есть несколько TDateTimePicker на форме, выбираем в комбобоксе номер и в соответствующем Datetimepicker проверяем значение и при необходимости вносим изменение
Выскакивает access violation, пробовал делает create но не помогло. Не правильно как-то создаю видимо
Подскажите что не так

Код:
procedure TForm1.Button2Click(Sender: TObject);
var  min2: integer;
DTPickE, DTPickS,Labelprice:tcomponent;
begin
     DTPickS:=FindComponent('DTPickS'+Comb.Text);
     DTPickE:=FindComponent('DTPickS'+Comb.Text);
     LabelPrice:=FindComponent('LabelPrice'+Comb.Text);
     if (DTPickS as Tdatetimepicker).Time=strtodatetime('00:00:00') then (DTPickS as Tdatetimepicker).Time:=Time
                else
                if (DTPickE as Tdatetimepicker).Time=strtodatetime('00:00:00') then
                        begin
                                    (DTPickE as Tdatetimepicker).Time:=Time;
                                    min2:=minutesbetween((DTPickS as Tdatetimepicker).Time,(DTPickE as Tdatetimepicker).Time);
                                    if  (min2 mod 60 > 30) then
                                            (Labelprice as TLabel).Caption:=inttostr((min2 div 60)*150+150)
                                            else (Labelprice as TLabel).Caption:=inttostr((min2 div 60)*150);
                        end
                      else
                        begin
                        (DTPickS as Tdatetimepicker).Time:=strtodatetime('00:00:00');
                        (DTPickE as Tdatetimepicker).Time:=strtodatetime('00:00:00');
                        (Labelprice as TLabel).Caption:='0';
                        end;
end;
__________________
Вечность имеет обыкновение проходить очень быстро
Ответить с цитированием
  #2  
Старый 10.06.2014, 14:05
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от CrazyMan86
подскажите пожалуйста как правильно обработать переменные TComponent
Прога типа таймера
Есть несколько TDateTimePicker на форме, выбираем в комбобоксе номер и в соответствующем Datetimepicker проверяем значение и при необходимости вносим изменение
Выскакивает access violation, пробовал делает create но не помогло. Не правильно как-то создаю видимо
Скорее всего FindComponent не находит нужный компонент. Если FindComponent не находит компонент - он возвращает nil, а работа с nil-указателем приводит к ошибке Access Violation. После FindComponent нужно проверять что она вернула:
Код:
DTPickS := FindComponent('DTPickS'+Comb.Text);
if DTPickS = nil then raise Exception.Create('Компонент с таким именем не найден');
Ответить с цитированием
  #3  
Старый 10.06.2014, 14:41
CrazyMan86 CrazyMan86 вне форума
Прохожий
 
Регистрация: 03.09.2008
Адрес: Владикавказ
Сообщения: 13
Репутация: 10
По умолчанию

Спасибо. у меня именна немного другие были =(
вот так бывает, когда со всех сторон запаривают
__________________
Вечность имеет обыкновение проходить очень быстро
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:38.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter