![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Кто Owner невизуального компонента в DesignTime? [D5]
vvolkov © (2002-09-06 14:08:00)Уважаемые мастера!
Проблема такая, необходимо чтобы невизуальный компонент при добавлении на форму по умолчанию выставлял свои свойства по разному в зависимости от вида формы.
Пишу примерно так,...
constructor TWizardTipMaker.Create(AOwner: TComponent);
begin
inherited;
State:=stBegin;
if AOwner is TfmTipWizard and
(csDesigning in ComponentState) then
AutoButtonControl:=true
else
AutoButtonControl:=false;
end;
Однако не работает. Если компонент попадает на форму типаTfmTipWizardзначениеAutoButtonControl=false;
Если в Runtime выполнять Create значение выставляется. В чем грабли?...
vvolkov (2002-09-06 16:48:00) [1]Кстати с процедурой указанной в
> Ученик © (06.09.02 15:31)
Все работает. Большое спасибо.
Ученик (2002-09-06 15:45:00) [2]>vvolkov © (06.09.02 15:41)
С ними is не работает
vvolkov (2002-09-06 15:41:00) [3]Вроде нет... а причем тут DLL?
Ученик (2002-09-06 15:36:00) [4]DLL не где не было ?
vvolkov (2002-09-06 15:35:00) [5]Это и есть углублялка... Но все равно спасибо!
Ученик (2002-09-06 15:31:00) [6]>vvolkov © (06.09.02 15:23)
function IsClass(A : TObject; const ClassName : string) : Boolean;
var
C : TClass;
begin
C := A.ClassType;
while (C <> nil) and (C.ClassName <> ClassName) do
C := C.ClassParent;
Result := C <> nil
end;
vvolkov (2002-09-06 15:25:00) [7]To
> Старый Паскалист (06.09.02 15:21)
а может можно както автоматически получить тип этой эрзацформы?
vvolkov (2002-09-06 15:23:00) [8]тоесть если по простому вместо is надо использовать этот самый
AOwner.ClassType.ClassParent.ClassName? Только работать будет только для прямых наследников.
Или писать углублялку до самого TObject :-)
Старый Паскалист (2002-09-06 15:21:00) [9]Вопрос с классами форм не так прост.
В отличие от других компонентов, к-рые уже в дизайнтайме имеются
в откомпилированном виде, откомпилированного кода формы в дизайнтайме нет.
Вместо неё имеется некая эрзацформа, хотя её класс имеет то же название.
vvolkov (2002-09-06 15:19:00) [10]Могу выложить весь исходник... только куда?
Ученик (2002-09-06 15:19:00) [11]>vvolkov © (06.09.02 15:13)
Вообще то должен работать, странно тут все как-то, чего то Вы от нас скрываете :-)
vvolkov (2002-09-06 15:18:00) [12]TfmCreatePbxModuleWizard, TfmTipWizard...
Ученик (2002-09-06 15:16:00) [13]Какой текст показался ?
vvolkov (2002-09-06 15:15:00) [14]Тоесть TmmCreatePbxModuleWizard, TfmTipWizard...
vvolkov (2002-09-06 15:13:00) [15]Судя по сообщению все в порядке... получается is не работает...?
Ученик (2002-09-06 15:09:00) [16]До проверки ShowMessage(AOwner.ClassName + ", " + AOwner.ClassType.ClassParent.ClassName)
vvolkov (2002-09-06 15:07:00) [17]Странно... сообщение не появилось...
Ученик (2002-09-06 15:05:00) [18]uses
Dialogs;
ShowMessage(...), и Application.MessageBox тоже работает
vvolkov (2002-09-06 15:02:00) [19]А как в таком состоянии вывести сообщение? Application.MessageBox не работает.
Ученик (2002-09-06 14:59:00) [20]>vvolkov © (06.09.02 14:58)
Сообщение ставили ?