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

Вниз

TAction в форме-потомке.   Найти похожие ветки 

 
tria   (2004-02-02 17:02) [0]

Есть форма frm1, в которой объявлен act1:TAction. Есть потомок формы frm2=class(frm1). В ней есть кнопка tbt1 в ToolBar. Ей назначаю tbt.Action:=frm1.act1 (в инспекторе объектов). При запуске на кнопке tbt нет рисунка и при нажатии на нее не вызывается соотв. обработчик. Так и должно быть и я должен перенести определение act1 в frm2 или это как-то лечится?


 
Dedushka_Mazai   (2004-02-02 17:10) [1]

наверное, надо просто tbt.Action:=act1


 
tria   (2004-02-02 17:21) [2]

Тогда инспектор объектов ругается "Invalid property value".
Напоминаю: tbt.Action:=frm1.act1 это не строка кода, это в инспекторе объектов пытаюсь выставить свойство кнопки tbt в форме-потомке.


 
Dedushka_Mazai   (2004-02-02 17:25) [3]

приведи объявления для обеих форм.


 
tria   (2004-02-02 17:29) [4]

Удалив все ненужное получим следующий код (комментарий указывает на соответствие между вопросом и реальным кодом):
Предок:
TfmWorkForm = class(TfmMyForm)//frm1
ActionList1: TActionList;
acPeriod: TAction; //act1
.....
end;

Потомок:
TfmRegister = class(TfmWorkForm) //frm2
ToolBar1: TToolBar;
ToolButton1: TToolButton; //tbt
.....
end;


 
Dedushka_Mazai   (2004-02-02 17:32) [5]

ты потомка как создавал: просто заменил TForm на TfmWorkForm?
если да, то надо ещё dfm подфиксить: в самом начале вместо object
написать inherited


 
VAleksey   (2004-02-02 17:32) [6]

tbt.Action:=acPeriod


 
tria   (2004-02-02 17:38) [7]

>Dedushka_Mazai
Судя по всему, создавал заменой. Через репозитарий или как оно там называется, я не работал, это точно.
написал:
inherited fmRegister: TfmRegister
все одно не работает. Может надо что-то типа
inherited fmRegister: TfmRegister (TfmWorkForm)?


 
tria   (2004-02-02 17:39) [8]

>VAleksey
И писать это в OnCreate? Оставлю такую возможность на крайний случай.


 
Dedushka_Mazai   (2004-02-02 17:41) [9]

Может надо что-то типа
inherited fmRegister: TfmRegister (TfmWorkForm)?

неа. всё должно итак работать. после фикса дфм-а надо переоткрыть форму. если на потомке появился actionlist, значит всё нормально


 
tria   (2004-02-02 17:45) [10]

>VAleksey
Может я не правильно понял, поменял в ObjectInspector fmWorkForm.act1 на tbt.Action:=acPeriod - заработало. Но!!! У меня теперь на форме два ActionList - тот, который от TfmWorkForm и еще один, от другого потомка TfmWorkForm. Слава богу, они носят разные названия. Как с этим глюком бороться или оставить как есть?


 
Dedushka_Mazai   (2004-02-02 17:46) [11]

убей actionlist на потомке. иначе какой смысл вообще с наследованием играться?


 
tria   (2004-02-02 17:49) [12]

У меня такая иерархия:
TfmWorkForm
. .
. .
TfmRegister TAnotherForm

И Action которые в TAnotherForm ненужны ни в TfmWorkForm, ни в TfmRegister. Разве ж это не логично?


 
tria   (2004-02-02 17:53) [13]

Ой. Дико извиняюсь. Второй ActionList - это родной, только назван он так же, как и в TAnotherForm. Давно не лазил в этот участок кода и все позабыл. Проглючило...
Всем большое спасибо, особливо тебе, дедушка...


 
Dedushka_Mazai   (2004-02-02 17:55) [14]

у тебя в обявлении потомка не должно быть никаких action list-ов.
action list берётся из предка. а action-ы в него можешь добавлять в потомках какие заблагорассудится.

если бы ты добавил предка в репозиторий, а потом создал потомка на его основании, то никакого бы геморроя не было, а так приходится ручками поправлять


 
tria   (2004-02-02 17:59) [15]

Дело в том, что приходится писать на нескольких компьютерах, и будет ли переносится репозитарий сам, вместе с директорией исходников, я не уверен. Еще когда читал про такую возможность, мне она уже тогда показалась неудобной. Замена в дфм на inherited выглядит удобней.



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

Форум: "Основная";
Текущий архив: 2004.02.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.01 c
4-39145
diMAN
2003-12-10 19:49
2004.02.13
Локальная группа


6-38990
Zilog_
2003-12-10 18:40
2004.02.13
Проблема с WebBrowser~ом


1-38927
Merlot
2004-02-05 09:37
2004.02.13
Форма в панеле задач.


4-39131
ALEIIIKA
2003-12-10 10:32
2004.02.13
Чтобы CD-ROM не открывался по нажатию кнопки на нем?


14-39049
DeMoN-777
2004-01-25 14:05
2004.02.13
Поиск в ХР





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