Название формы, которое используется в WITH заранее не известно

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by InfectedM, 13 Mar 2012.

  1. InfectedM

    InfectedM Elder - Старейшина

    Joined:
    4 Nov 2007
    Messages:
    155
    Likes Received:
    12
    Reputations:
    0
    Нужно изменить текст в edite.
    заранее не известно какое имя компанента у эдита и на какой он форме.
    Тоесть напрямую обращаться нельзя.

    Но название компанента и название формы где он лежит - есть в 2 переменных.
    Нужно каким-то образом обращаться к этим компанентам через текстовые переменны.

    Вообещм вот что получилось:

    PHP:
    qwe:='edit_velosiped';//название компанента на форме1
    with form1 do begin
    TEdit
    (FindComponent(qwe)).Text:='сюда пихается выбранынй велосипед';
    end;
    все работает!! вписывает текст в form1.edit_velosiped.text
    Но как быть если нам не известна форма на которой искать эдит?


    Код должен быть типа вот этого, но он не работает(

    PHP:
    la:='form1';
    qwe:='edit_velosiped';//название компанента на форме1
    with Tform(FindComponent(la)) do begin
    TEdit
    (FindComponent(qwe)).Text:='сюда пихается выбранынй велосипед';
    end;
    Подскаите плиз как правильно
     
  2. BigSnake

    BigSnake New Member

    Joined:
    20 Apr 2010
    Messages:
    15
    Likes Received:
    1
    Reputations:
    0
    PHP:
    Tform(FindComponent(la))
    это ты на форме, в методе которой вызывается данный код ищешь компонент с названием la, а тебе нужно в проэкте найти форму с названием la

    может для определения формы тебе нужно по Screen.CustomForms пройтись
    PHP:
     for := 0 to Screen.CustomFormCount-do     ListBox1.Items.Add(Screen.CustomForms[I].Name)