Главная страница
    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.046 c
2-1165392523
Roman_ln
2006-12-06 11:08
2006.12.24
список ComboBox функция поиска элемента


3-1160711164
Дырчик
2006-10-13 07:46
2006.12.24
Cannot load driver


15-1165265831
Kolan
2006-12-04 23:57
2006.12.24
Пишем программы по русски?


2-1165299323
Клара
2006-12-05 09:15
2006.12.24
DBChart


4-1155651344
apic
2006-08-15 18:15
2006.12.24
MAC-адрес





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