Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2008, 16:26   #1
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию TRzGroupBar

Здравствуйте, уважаемые!
Есть такой набор компонентов, Riaze Components Pack
В нём есть компонент TRzGroupBar, один из его вариантов выглядит как левая менюшка аутлока...
Я в этом баре создаю группу и итем в группе... из кода...
а вот подскажите, как обработать событие по итему, которого изначально нету на форме? тоесть по созданному из кода итему...
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 24.10.2008, 17:03   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
как обработать событие по итему, которого изначально нету на форме? тоесть по созданному из кода итему
Вы должны заранее создать обработчик (какое у него будет имя - неважно, главное, чтобы он содержал все те же параметры, что и обработчик для существующего итема).
И при динамическом создании итема нужно не только задать ему текст и т.п., но и назначить этот самый созданный заранее обработчик. Вот и все!
И никакого значения не имеет, из Raize Components Pack он или нет. Это делается абсолютно одинаково для любого компонента...
mihali4 вне форума Ответить с цитированием
Старый 24.10.2008, 18:27   #3
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

Спасибо, уже сделал... правда, думаю, немного неправильным способом...
Код:
Procedure TCHMain.GuideClick(Sender: TObject);
var
FN:string;
X,Y:integer;
begin
X:=TRzGroupItem(Sender).Index + 1;
Y:=TRzGroupItem(Sender).Group.GroupIndex + 1;
FN:='Base\Guides\Part'+IntToStr(Y)+'\'+IntToStr(X)+'.rtf';
if Sender is TRzGroupItem and FileExists(FN) then begin
  GuideText.Clear;
  Guidetext.Lines.LoadFromFile(FN);
end else begin
  GuideText.Clear;
  GuideText.Lines.Add('Файл '+FN+' не найден! Переустановка программы исправит эту ошибку');
end;
end;
ЗЫ... ага, опечатался немного... )
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 24.10.2008, 18:31   #4
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

ммм... чтоб не создавать новой темы, попутно ещё вот что спрошу... при завершении программы вылазит ошибка:
Цитата:
First chance exception at $7C81EB33. Exception class EInvalidOperation with message 'Control 'TRzPageControl' has no parent window'. Process SDIAPP.exe (1748)
при этом из кода данный контрол никак не используется... не подскажете, в чем может быть дело? (началось сравнительно недавно)
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 24.10.2008, 18:35   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Вам только нужно перенести проверку
Код:
if Sender is TRzGroupItem
самой первой строкой после begin, чтобы, если сэндер не RzGroupItem, сразу уходить на exit;
mihali4 вне форума Ответить с цитированием
Старый 24.10.2008, 18:38   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
'Control 'TRzPageControl' has no parent window'
Говорит о том, что при создании компонента вы не назначили ему родителя (Parent:=CHMain). У Р.Конопки (автора этого набора компонентов и отличной книги по их созданию) с этим делом строго...
mihali4 вне форума Ответить с цитированием
Старый 24.10.2008, 22:13   #7
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

Спасибо, сделал) Но чуть раньше наткнулся на альтернативное решение проблемы: просто убивал данный контрол по эвенту ФормДистрой ) тож помогло)
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 24.10.2008, 22:19   #8
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
альтернативное решение проблемы: просто убивал данный контрол по эвенту ФормДистрой
А если бы у него был родитель, то он бы "убивался" вместе с родителем...
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц