Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.47 MB
Время: 0.009 c
8-100834
diablo
2003-03-31 20:03
2003.07.31
Рисование в корале


14-100971
chexum
2003-07-15 16:58
2003.07.31
Теория графов


14-100936
nick-from
2003-07-15 02:08
2003.07.31
проблема жилья в столицы


6-100849
Beregin
2003-05-25 16:13
2003.07.31
Переслать файл без TfileStream


6-100870
Леопольд (К)
2003-05-24 10:37
2003.07.31
Всётаки фрейм





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский