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

Вниз

Свойство не сохраняется   Найти похожие ветки 

 
Juice ©   (2005-09-15 19:17) [0]

Тривиальная задача а напоролся на глупую проблему: создаю ActiveX форму, размещаю на ней компоненты и все такое. Теперь надо обьявить парочку своих дополнительных свойств. Открываю редактор библиотеки типов, создаю в интерфейсе нужные мне свойства, проверяю - они появились. Одна проблема - они не сохраняются в dfm-файле. Напр. кидаю на форму созданный ActiveX, редактирую в Object Inspector"e мое св-во "Params", сохраняю проект, закрываю, открываю - "Params" пустое. Глянул как оно в pas-файле библиотеке типов - property Params: WideString index 218 read GetWideStringProp write SetWideStringProp stored False;
Почему, что делаю не так ?


 
Juice ©   (2005-09-16 14:26) [1]

Больше всего добивает то, что в трех книгах (2 по СОМ и одна по Delphi) расписано до мелочей ка создвать ActiveX, Эктив-формы, редакторы свойств, куча страниц - и хоть бы где упомянулось какого @#$% свойства не сохраняются. В справке Delphi такая же картина, в нете тоже куча статей про кликанье по кнопкам. Я не верю что тут нет людей разбирающихся в ActiveX.


 
k2 ©   (2005-09-19 09:58) [2]

1) определить соответствующее поле для хранения значения свойства Params и реализовать методы доступа:
допустим

library Project1;
uses
 ComServ,
 Project1_TLB in "Project1_TLB.pas",
 ActiveFormImpl1 in "ActiveFormImpl1.pas" {ActiveFormX: TActiveForm} {ActiveFormX: CoClass};
...


в ActiveFormImpl1.pas:

type
 TActiveFormX = class(TActiveForm, IActiveFormX)
 private
   { Private declarations }
   FEvents: IActiveFormXEvents;
   FParams: WideString;
   procedure ActivateEvent(Sender: TObject);
   ...
 end;
...
implementation
...
function TActiveFormX.Get_Params: WideString;
begin
 Result := FParams;
end;

procedure TActiveFormX.Set_Params(const Value: WideString);
begin
 if FParams <> Value then
   FParams := Value;
end;
...


2)к сожалению не уверена какой флаг в библиотеке типов необходимо установить,
штобы при импорте получилось ActiveX контрола получилось stored true, но можно
на крайний случай поправить ручками(нехорошо ибо при возможном последующем импорте
значение затрется, думаю мастера подскажут какой флаг):

Project1_TLB;

interface

...
 TActiveFormX = class(TOleControl)
 private
 ...
   property Params: WideString index 16 read GetWideStringProp write SetWideStringProp stored True;
 ...
 end;


 
Juice ©   (2005-09-19 13:31) [3]

Все сделано так, как вы говорите, визуальный редактор сам это все проделывает. А вот ручками поправить не приводит к нужному результату, т.к. при следующем refresh библиотеки оно снова устанавливается в false. Флаги я уже все перепробовал - никакого эффекта.


 
k2 ©   (2005-09-20 09:11) [4]

я была не права, пункт 2 не нужен

>Juice ©   (19.09.05 13:31) [3]
врядли визуальный редактор пишет реализацию, во всяком случае мой пятерочный не хочет, противный :)

пример: форма, библиотека и тестовое приложение http://www.webfile.ru/528471
весит 31кб без *.ocx и *.exe тестового приложения
удачи


 
Juice ©   (2005-09-20 11:08) [5]


> k2 ©   (20.09.05 09:11) [4]

Большое спасибо!



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

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

Наверх




Память: 0.46 MB
Время: 0.042 c
2-1165372992
Myxa_0
2006-12-06 05:43
2006.12.24
Как можно выполнить код записанный в текстовом поле?


8-1145691384
QuickFinder
2006-04-22 11:36
2006.12.24
объединение WMV-файлов


15-1164876089
Anatoly Podgoretsky
2006-11-30 11:41
2006.12.24
Перепись


8-1147097193
Лев
2006-05-08 18:06
2006.12.24
Не могу вовремя сфотографировать форму


15-1164891888
Uncle
2006-11-30 16:04
2006.12.24
Компонент Hhopen(справка)





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