Форум: "Основная";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];
ВнизГлюк в компонентике? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c