Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.31;
Скачать: CL | DM;

Вниз

Глюк в компонентике?   Найти похожие ветки 

 
PrettyFly ©   (2003-07-18 13:03) [0]

Привет! Есть компонентик, который отличается от TDBLookupComboboxEh тем, что он сам заполняет SourceList в зависимости от свойства DirName... Если эту способность использовать во время выполнения приложения, всё ok. А если во время разработки, она показывает ошибку:

Access violation at address 034F43B1 in Module "TA.bpl". Read of address 00000300.

Может кто-нибудь знает, почему так и как это исправить?


type
TAtDirEdit = class(TDBLookupComboboxEh)
private
FDirName : String;
procedure SetDirName(Value : String);
published
property DirName : String read FDirName write SetDirName;
end;

implementation

procedure TAtDirEdit.SetDirName(Value : String);
begin
FDirName := Value;
Self.ListSource := DirForm.TDataSource(DirForm.FindComponent("Source"+FDirName));
end;

end.


 
Skier ©   (2003-07-18 13:06) [1]

DirForm.TDataSource(...) - Это довольно странно...


 
PrettyFly ©   (2003-07-18 13:12) [2]

Ой... я имел ввиду наоборот ;)
Странно, что это вообще работает...


 
Юрий Федоров ©   (2003-07-18 13:12) [3]

Self.ListSource := TDataSource(DirForm.FindComponent("Source"+FDirName));
Наверно так.
а DirForm тоже в этом компоненте находится (я так понял, что код приведен в сокращении), или это глобальная переменная ?
Если так, то все это очень криво


 
PrettyFly ©   (2003-07-18 13:16) [4]

Ясно что криво... Мне вообще-то нужен компонент для одного проекта и он должен использовать всякие модули этого проекта. как лучше сделать?


 
Skier ©   (2003-07-18 13:19) [5]

>PrettyFly © (18.07.03 13:16)

> как лучше сделать?

Советую писать сразу правильно; для всех
случаев жизни...


 
Юрий Федоров ©   (2003-07-18 13:19) [6]

Не нужен для этого компонент, однозначно.
Вынеси заполнение SourceList в отдельную функцию, и все


 
PrettyFly ©   (2003-07-18 13:26) [7]


> Skier © (18.07.03 13:19)

Меня и интересует, как правильно сделать...

> Юрий Федоров © (18.07.03 13:19)

Мне не только для этого, это я только начало... т.е. кусок, который глючит.


 
Skier ©   (2003-07-18 13:32) [8]

>PrettyFly © (18.07.03 13:26)
А отладчик не спасает ?


 
PrettyFly ©   (2003-07-18 13:47) [9]

Не спасает... отладчик же работает только во время выполнения программы, а там всё нормально. Я же говорю, глюки возникают, когда вручную в object inspectore исправляешь.


 
Юрий Федоров ©   (2003-07-18 13:51) [10]

У тебя в DesignTime нет никакой DirForm


 
Skier ©   (2003-07-18 13:53) [11]

>PrettyFly © (18.07.03 13:47)

Испытай :

procedure TAtDirEdit.SetDirName(Value : String);
begin
if DirForm = nil then ShowMessage("DirForm = nil");
end;


 
PrettyFly ©   (2003-07-18 14:26) [12]

А разве в DesignTime все формы не создаются?



Страницы: 1 вся ветка

Текущий архив: 2003.07.31;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
3-100614
Klot
2003-07-09 16:24
2003.07.31
EhLib


3-100632
SergeyI
2003-07-10 09:53
2003.07.31
Как не убрать помеченые на удаление записи ?


1-100795
dmitry99
2003-07-17 04:59
2003.07.31
Как с помощью RAVE отобразить в отчете StringGrid ?


7-101008
Romkin
2003-05-15 13:23
2003.07.31
файл Services - как работать?


1-100822
Alexsus
2003-07-17 16:47
2003.07.31
Подскажите пожалуйста как можно уставить тип курсора для формы