Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.188.40.207] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Доброго времени суток.
мне необходим редактор компоненты на подобии TDataSet; Добросовестно передрав пример из DSDesigner (X:\Program Files\Borland\Delphi7\Source\Property Editors\DSDesign.pas) =) И наткнулся на след. проблемы: 1. при двойном щелчке по компоненту кажд раз создаётся новое окно 2. не знаю на каком этапе загрузить филды если можно в примерах плз. Добавлено c пунктом 2 разобрался. |
Сообщ.
#2
,
|
|
|
Цитата subdigger @ при двойном щелчке по компоненту кажд раз создаётся новое окно Нужно чтобы активизировалось уже созданное? Смотри в сторону счетчика ссылок. К примеру я обычно делаю вот так: TGSAccessList = class private ... class procedure AddInstance; class procedure ReleaseInstance; ... public ... class function NumOfInstances: Integer; end; implementation uses Math; var TGSAccessList_Instance: Integer = 0; { TGSAccessList } class procedure TGSAccessList.AddInstance; begin Inc(TGSAccessList_Instance); end; constructor TGSAccessList.Create; begin ... AddInstance; end; destructor TGSAccessList.Destroy; begin ReleaseInstance; ... end; class function TGSAccessList.NumOfInstances: Integer; begin Result := TGSAccessList_Instance; end; class procedure TGSAccessList.ReleaseInstance; begin Dec(TGSAccessList_Instance); end; Сответственно уже на этапе создания компонента мы можем выяснить что как минимум один экземпляр класса уже создан... |
Сообщ.
#3
,
|
|
|
пасибо решил. немного по другому но решил.
появился другой вопрос при исползовании сомпанента не могу скомпилица. ош [Fatal Error] DesignWindows.pas(15): File not found: 'ComponentDesigner.dcu' [QUOTE] в юните DesignWindows!!! |
Сообщ.
#4
,
|
|
|
Подключи к пакету Designide.dcp и все решиться
|
Сообщ.
#5
,
|
|
|
он подклёчён и .dpk компилица нармально но когда я создаю проект и кидаю туда компонент то при компилировании проекта вылазит эта ош.
Цитата subdigger @ [Fatal Error] DesignWindows.pas(15): File not found: 'ComponentDesigner.dcu' |
Сообщ.
#6
,
|
|
|
Проверь наличие в путях: $(DELPHI)\Source\ToolsAPI
Если есть - кидай сюда компонент с DPK, будем смотреть |
Сообщ.
#7
,
|
|
|
Сообщ.
#8
,
|
|
|
Значит так, у меня все работает. При инсталяции я почистил Директории в опциях проекта, все стало на ура. Работает также без проблем.
В путях (в меню Tools -> Enironment Options -> Library -> library Path) указыны следующие данные: $(DELPHI)\Lib $(DELPHI)\Bin $(DELPHI)\Imports $(DELPHI)\Projects\Bpl $(DELPHI)\Rave5\Lib C:\Program Files\Borland\Delphi7\Source\ToolsAPI c:\program files\borland\delphi7\projects C:\Program Files\Borland\Delphi7\Ocx\Servers C:\Program Files\Borland\Delphi7\Source\Samples C:\Program Files\Borland\Delphi7\Demos\ShellControls C:\Program Files\Borland\Delphi7\Demos\ActiveX\OleAuto\SrvComp c:\program files\borland\delphi7\ocx\isp C:\Program Files\Borland\Delphi7\Ocx Проверяй что забыл у себя... |
Сообщ.
#9
,
|
|
|
тоесть ты создал новый проект. кинул на него мой компонент и проект скомпилился?
|
Сообщ.
#10
,
|
|
|
Ага, понятно, ты совместил RunTime часть компонента и ту часть которая используется в DesignTime, разделяй их, чтоб в RunTime части не использовались никакие юниты из ToolsAPI
|
Сообщ.
#11
,
|
|
|
а как это сделать?
|
Сообщ.
#12
,
|
|
|
Весь код который у тебя показывает всякие формочки в DesignTime перемести в один модуль, я обычно помещаю все в файл регистрации компонента, а в основном модуле должны остаться только тот код, который не относятся к показу этих формочек (обрати внимание чтоб небыло ссылок в uses). Ну т.е. пересмотри логику, тебе как автору будет это проще сделать чем мне...
|
Сообщ.
#13
,
|
|
|
С этим разобрались. Пасиба.
ещё если не трудно объясни почему в DesignTime у мя в компоненте есть филды, а када запускаю прект то их там нет |
Сообщ.
#14
,
|
|
|
После модификации кода вот эта строка осталась?
property Fields: TUNIFields read FFields; |
Сообщ.
#15
,
|
|
|
. Да.
|