Текущий архив: 2002.09.19;
Скачать: CL | DM;
Вниз
Кто Owner невизуального компонента в DesignTime? Найти похожие ветки
← →
vvolkov © (2002-09-06 14:08) [0]Уважаемые мастера!
Проблема такая, необходимо чтобы невизуальный компонент при добавлении на форму по умолчанию выставлял свои свойства по разному в зависимости от вида формы.
Пишу примерно так,...
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 значение выставляется. В чем грабли?...
← →
Ученик © (2002-09-06 14:25) [1]В Create еще нет csDesigning, надо проверять AOwner.ComponentState
← →
vvolkov © (2002-09-06 14:29) [2]Проблема даже не в этом... даже если вторую часть условия убрать
(csDesigning in ComponentState)
все равно не работает...
← →
Smithson © (2002-09-06 14:33) [3]Насколько я помню, в Design Create выполняется только для установленных компонентов. Может, дело в этом?
← →
vvolkov © (2002-09-06 14:35) [4]Да нет! А как я в дизайне положу неустановленный компонент на форму?!
← →
serg © (2002-09-06 14:43) [5]При объявлении конструктора указано override ?
← →
Ученик © (2002-09-06 14:44) [6]А что такое TfmTipWizard ?
← →
vvolkov © (2002-09-06 14:47) [7]To serg. Указано...
TfmTipWizard это наследник от TForm у него определены определенные элементы управления. От него наследуются формы определенного вида на которые и надо ложить разрабатываемый компонент...
← →
Ученик © (2002-09-06 14:51) [8]Уверены, что AutoButtonControl:=true не выполняется, сообщение ставили ?
← →
vvolkov © (2002-09-06 14:58) [9]Пропертя AutoButtonControl - published. Я в объект инспекторе наблюдаю false. Конечный результат чтобы в нем прописалось правильное значение автоматически...
← →
Ученик © (2002-09-06 14:59) [10]>vvolkov © (06.09.02 14:58)
Сообщение ставили ?
← →
vvolkov © (2002-09-06 15:02) [11]А как в таком состоянии вывести сообщение? Application.MessageBox не работает.
← →
Ученик © (2002-09-06 15:05) [12]uses
Dialogs;
ShowMessage(...), и Application.MessageBox тоже работает
← →
vvolkov © (2002-09-06 15:07) [13]Странно... сообщение не появилось...
← →
Ученик © (2002-09-06 15:09) [14]До проверки ShowMessage(AOwner.ClassName + ", " + AOwner.ClassType.ClassParent.ClassName)
← →
vvolkov © (2002-09-06 15:13) [15]Судя по сообщению все в порядке... получается is не работает...?
← →
vvolkov © (2002-09-06 15:15) [16]Тоесть TmmCreatePbxModuleWizard, TfmTipWizard...
← →
Ученик © (2002-09-06 15:16) [17]Какой текст показался ?
← →
vvolkov © (2002-09-06 15:18) [18]TfmCreatePbxModuleWizard, TfmTipWizard...
← →
Ученик © (2002-09-06 15:19) [19]>vvolkov © (06.09.02 15:13)
Вообще то должен работать, странно тут все как-то, чего то Вы от нас скрываете :-)
← →
vvolkov © (2002-09-06 15:19) [20]Могу выложить весь исходник... только куда?
← →
Старый Паскалист (2002-09-06 15:21) [21]Вопрос с классами форм не так прост.
В отличие от других компонентов, к-рые уже в дизайнтайме имеются
в откомпилированном виде, откомпилированного кода формы в дизайнтайме нет.
Вместо неё имеется некая эрзацформа, хотя её класс имеет то же название.
← →
vvolkov © (2002-09-06 15:23) [22]тоесть если по простому вместо is надо использовать этот самый
AOwner.ClassType.ClassParent.ClassName
? Только работать будет только для прямых наследников.
Или писать углублялку до самого TObject :-)
← →
vvolkov © (2002-09-06 15:25) [23]To
> Старый Паскалист (06.09.02 15:21)
а может можно както автоматически получить тип этой эрзацформы?
← →
Ученик © (2002-09-06 15:31) [24]>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:35) [25]Это и есть углублялка... Но все равно спасибо!
← →
Ученик © (2002-09-06 15:36) [26]DLL не где не было ?
← →
vvolkov © (2002-09-06 15:41) [27]Вроде нет... а причем тут DLL?
← →
Ученик © (2002-09-06 15:45) [28]>vvolkov © (06.09.02 15:41)
С ними is не работает
← →
vvolkov © (2002-09-06 16:48) [29]Кстати с процедурой указанной в
> Ученик © (06.09.02 15:31)
Все работает. Большое спасибо.
Страницы: 1 вся ветка
Текущий архив: 2002.09.19;
Скачать: CL | DM;
Память: 0.53 MB
Время: 0.019 c