Главная страница
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.014 c
14-100951
antonyan
2003-07-15 14:23
2003.07.31
Контрольная сумма файла


1-100740
jack128
2003-07-15 21:56
2003.07.31
Как из Delphi выполнить код VBA в Excel?


3-100577
Sensor
2003-07-08 16:06
2003.07.31
TQuery и TDBGrid - Глюки


3-100549
Stas
2003-07-11 11:27
2003.07.31
AdoQuery и OnFilterRecord


14-100896
clickmaker
2003-07-11 20:04
2003.07.31
Офис 2000 и ХР не ставится на 2000 сервак (!!!)