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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2011, 12:32   #1
[MoNAMur]
читер
Форумчанин
 
Аватар для [MoNAMur]
 
Регистрация: 05.10.2009
Сообщений: 150
Восклицание FindComponent возвращает nil при поиске компонентов на TabbebNoteBook

Ситуация такая:
Создаю при клике на кнопку вкладку у TabbebNoteBook. На вкладке создаю другие компоненты(RichEdit и т.д.).
Необходимо в дальнейшем при клике на другую кнопку считать содержимое RichEdit'a в переменную.

создаю так
Код:
...
with TabNotebook do
begin
MessageForm.TabbedNotebook1.Pages.Add(TabName);
PageIndex := MessageForm.TabbedNotebook1.GetIndexForPage(TabName);
TabPage := TTabPage(Pages.Objects[PageIndex]);
...
    REdt2 := TRichEdit.Create(TabPage);
            try
              REdt2.Name := 'REM'+ TabName;
              REdt2.Parent := TabPage;
              REdt2.Width := 467;
              REdt2.Height := 152;
              REdt2.Top := 273;
              REdt2.Left := 16;
              REdt2.ScrollBars := ssVertical;
              REdt2.Font.Charset := RUSSIAN_CHARSET;
              REdt2.Font.Color := clWindowText;
               REdt2.OnClick := MessageForm.OnClick;
            except
              REdt2.Free;
            end;
...
end;
TabName - для разных вкладок разное.
Затем, в обработчике пытаюсь забрать содержимое этого RichEdit так
Код:

procedure TMessageForm.FormClick(Sender: TObject);
var
    TabName : string;
    objectName : string;
    MyObj : TComponent;
begin
       TabName := TabbedNotebook1.ActivePage; // активная вкладка (является в дальнейшем частью имени компонентов)

      if (Sender is TSpeedButton) then objectName := (sender as TSpeedButton).Name;

       // click action
       if(objectName = ('MCH'+ TabName)) // если нажата нужная мне кнопка
       then
          begin
            MyObj := FindComponent('REM'+ TabName);
            if MyObj <> nil then
            ShowMessage(TRichEdit(MyObj).lines.text);
          end;
end;
ну соответственно showmessage не срабатывает.
наверняка я где то что-то пропустил, буду оч признателен если покажете правильный способ

спрашиваю у вас, так как полтора часа гугления не дали результатов, равно как и найденный код.
$me = $me == $me ? $me : $me;

Последний раз редактировалось [MoNAMur]; 30.06.2011 в 12:37.
[MoNAMur] вне форума Ответить с цитированием
Старый 30.06.2011, 13:20   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
procedure TMessageForm.FormClick(Sender: TObject);
begin
.............................
           MyObj := FindComponent('REM'+ TabName);
Чьи компоненты будет искать форма. Свои.

а нужный TabPage свои.
Код:
        MyObj := TabPage.FindComponent('REM'+ TabName);
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 30.06.2011 в 13:23.
evg_m вне форума Ответить с цитированием
Старый 30.06.2011, 15:58   #3
[MoNAMur]
читер
Форумчанин
 
Аватар для [MoNAMur]
 
Регистрация: 05.10.2009
Сообщений: 150
По умолчанию

хммм, точно... спасибо
$me = $me == $me ? $me : $me;
[MoNAMur] вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибочка при поиске. skytechkrutoi Общие вопросы .NET 1 20.01.2011 13:01
Вывод не нужного при поиске файлов coNsept Общие вопросы C/C++ 5 28.04.2010 19:11
I/O error 123 при поиске файлов [MoNAMur] Общие вопросы Delphi 2 19.01.2010 15:15
ошибка при поиске текста в файле с настройками _Mickey_ Помощь студентам 0 29.12.2009 22:11
Учетность регистра при поиске данных Proxx-asb Общие вопросы Delphi 4 28.05.2009 13:12