Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.09.12;
Скачать: [xml.tar.bz2];

Вниз

Access violation at address 00356273 in module designide60.bpl .   Найти похожие ветки 

 
DROWSY   (2010-06-16 10:00) [0]

Сделал робкую попытку создать простой компонент :
unit fb_DataSet;

interface

uses
 Windows, Messages, SysUtils, Classes, DB, IBCustomDataSet;

type
 TfbDataSet = class(TIBDataSet)
 private
   FMastData: TDataSet;
   procedure SetMastData(const Value: TDataSet);
 protected
 published
   property MastData : TDataSet read FMastData write SetMastData;
 public
 end;

procedure Register;

implementation

{ TfbDataSet }

procedure TfbDataSet.SetMastData(const Value: TDataSet);
begin
 FMastData := Value;
end;

procedure Register;
begin
 RegisterComponents("few_DataSet", [TfbDataSet]);
end;

end.

Установил его на панель инструментов.

И расположил на датамодуле рядом с обычным компонентом TIBDataSet;

type
 TdmLayOut = class(TDataModule)
   ibLayOut   : TIBDataSet;
   fbDataSet : TfbDataSet;
.......
.......

После этого, при попытке в дизайне редактировать свойства
и
   ibLayOut
и
   fbDataSet
выдаётся ошибка :
Access violation at address 00356273 in module "designide60.bpl".

Если разместить их на разных датамодулях, то всё нормально.
В чём причина?


 
Ega23 ©   (2010-06-16 11:59) [1]

ЕМНИП, это что-то связанное с поведением компонента в design-time. Тебе 2 пакета надо, один для runtime, другой для designtime. У Тейксейры это очень хорошо было расписано. Ну или на крайняк погугли "designide60.bpl", тоже много нароешь.


 
DROWSY   (2010-06-16 12:21) [2]


> Ega23 ©   (16.06.10 11:59) [1]
> ЕМНИП, это что-то связанное с поведением компонента в design-
> time. Тебе 2 пакета надо, один для runtime, другой для designtime.
>  У Тейксейры это очень хорошо было расписано. Ну или на
> крайняк погугли "designide60.bpl", тоже много нароешь.


Спасибо, EGA23!
Будет время, обязательно посмотрю Текстейру.

> Тебе 2 пакета надо, один для runtime, другой для designtime.

У меня, кажется не такой сложный случай.
Почему - не знаю, но выяснилось, что если после добавления нового
свойства в  TfbDataSet = class(TIBDataSet), и компиляции пакета,
если выйти и снова загрузить Дельфи, то новый компонент ведёт себя
нормально.


 
icWasya ©   (2010-06-16 12:24) [3]

в интерфейсе

procedure Notification(AComponent: TComponent; Operation: TOperation);override

и в реализации
procedure TfbDataSet .SetMastData(const Value: TDataSet);
begin
 if FMastData = Value then Exit;

 if Assigned(FMastData ) then RemoveFreeNotification(FMastData );
 FMastData := Value;
 if Assigned(FMastData ) then  FreeNotification(FMastData );

end;

procedure TfbDataSet .Notification(AComponent: TComponent; Operation: TOperation);
begin
 if Operation = opRemove then begin
   if (AComponent = FMastData ) then
     FMastData := Nil;
 end;
 inherited;

end;


 
DROWSY   (2010-06-16 13:08) [4]


> icWasya ©   (16.06.10 12:24) [3]

Спасибо!



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

Форум: "Начинающим";
Текущий архив: 2010.09.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.004 c
15-1276810212
Юрий
2010-06-18 01:30
2010.09.12
С днем рождения ! 18 июня 2010 пятница


15-1276247660
balepa
2010-06-11 13:14
2010.09.12
Задержка на CloseHandle при чтении файла на удаленном ПК


2-1276357423
DROWSY
2010-06-12 19:43
2010.09.12
2 запроса в Firebird 1.5


2-1276380946
AKE
2010-06-13 02:15
2010.09.12
Принадлежит ли точка треугольнику?


15-1276959726
ArtGrek
2010-06-19 19:02
2010.09.12
Protocol





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский