использование динамической компоненты

Тема в разделе "Delphi - Компоненты", создана пользователем infeter, 13 апр 2006.

Статус темы:
Закрыта.
  1. infeter

    infeter Гость

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

    Код (Text):
    procedure TFormMain.ClickMyList(Sender: TObject);
    var
    my: TListBox;
    memo: TMemo;
    begin
    my:=(Sender as TListBox);
    showmessage(my.Items.Strings[my.ItemIndex]);
    end;
    теперь МОЙ ВОПРОС. как Вы уже, наверное, заметили, я хочу передать имя выбранного значения tlistbox в TMemo. проблема в том, что эта TMemo тоже была создана динамически... имя, например, Memo0. как мне сослаться на Memo0 через переменную из моей процедуры, чтобы изменить там текст?

    я в тупике... :rolleyes:
     
  2. infeter

    infeter Гость

    теперь зарегистрировался. срочно нужна помощь. скоро работу сдавать...
     
  3. zubr

    zubr Гость

    Код (Text):
    procedure TFormMain.ClickMyList(Sender: TObject);
    var
    my: TListBox;
    memo: TMemo;
    begin
    my:=(Sender as TListBox);
    If FormMain.FindComponent('Memo0')<>nil then
    If FormMain.FindComponent('Memo0') is TMemo then
    begin
    memo:=FormMain.FindComponent('Memo0');
    memo.Lines.Add(my.Items.Strings[my.ItemIndex]);
    end;
    //showmessage(my.Items.Strings[my.ItemIndex]);
    end;
     
  4. infeter

    infeter Гость

    Для: zubr
    странно. у меня вообще ничего не работает... не определяет. плюс ещё надо сделать, чтобы компилировалось, вот так:
    Код (Text):
    memo:=TMemo(FormMain.FindComponent('Memo0'));
    блин.... ща думаю, в чём проблема...
     
  5. infeter

    infeter Гость

    короче если просто создать на форме компонент статически, а не динамически, то работает:
    Код (Text):
    procedure TForm1.FormCreate(Sender: TObject);
    var
    memo: TMemo;
    begin
    memo:=Form1.FindComponent('Memo1') as TMemo;
    memo.Lines.Add('s');
    end;
    а вот если динамически, то у меня AccessViolation Error... млин...
     
  6. infeter

    infeter Гость

    всё. разобрался... надо просто указывать в моём случае:
    Код (Text):
    memo:=application.FindComponent('Memo1') as TMemo;
    т.к. я делаю так:

    Код (Text):
    With TMemo.Create(application) do
     begin
      Name:='Memo'+inttostr(i);
     end;
     
Загрузка...
Похожие Темы - использование динамической компоненты
  1. MartinSez06
    Ответов:
    1
    Просмотров:
    278
  2. lmike
    Ответов:
    5
    Просмотров:
    548
  3. ESWANT
    Ответов:
    1
    Просмотров:
    805
  4. solomonec
    Ответов:
    1
    Просмотров:
    1.425
  5. JohnLemon
    Ответов:
    0
    Просмотров:
    537
Статус темы:
Закрыта.

Поделиться этой страницей