Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Клоны с одинаковыми Name


Автор: sanek198 1.3.2009, 20:29
В ходе работы программы создаются клоны формы TestForm. Delphi клоны автоматически называет TestForm_1, TestForm_2 и т.д. Мне же нужно чтобы все клоны имели Name:=TestForm. При одинаковых Name ошибок не возникает, все работает, но есть сомнения можно ли так делать?

Автор: Akella 1.3.2009, 20:40
Лучше так не делать. Сам потом запутаешься.

Автор: Poseidon 1.3.2009, 22:01
Цитата(sanek198 @  1.3.2009,  20:29 Найти цитируемый пост)
Мне же нужно чтобы все клоны имели Name:=TestForm
Зачем?

Автор: sanek198 1.3.2009, 22:13
На клон клонировалась (извините за тавтологию) кнопка с другой формы, к примеру MainForm. Если кнопка на MainForm, действие одно, а если Parent кнопки клон, то другое. Но вообще, сейчас я определяю Parenta по ClassName. Так что вопрос снят. Спасибо!

P.S. А все-таки можно ли создавать клоны с одинаковыми именами?

Автор: Akella 1.3.2009, 22:32
Убери из модуля
Var
 fmMain: TfmMain; <-это (объявление имени формы)

А форму можно вызывать так

перед implementation объявляем процедуру создания и вызова окна

Код

...
  procedure CallEditApart(ID:integer;AEditMode:Boolean;iBaseType:Integer);

implementation

...

procedure CallEditApart(ID:integer;AEditMode:Boolean;iBaseType:Integer);
Const
 aSQL = 'select id, Name from types where id = :id';
//Var
// vName:variant;
begin
  with TfmApartAdd.Create(Application) do begin
    можно что-то сделать перед показом формы

    Show;
  end;//with



затем просто вызываем
Код

procedure TfmMain.actApartAddExecute(Sender: TObject);
begin
  CallEditApart(-1, False, -1);//False - это добавление
end;

можно вызывать хоть сотню раз

не забудь в событии FormClose вызвать Action := caFree;

Автор: Bose 1.3.2009, 22:38
Цитата(sanek198 @  1.3.2009,  21:13 Найти цитируемый пост)
А все-таки можно ли создавать клоны с одинаковыми именами? 

И да и нет.
Т.е. у тебя может быть кнопка с одним и тем же именем на разных формах. А на одной форме - нет(одновременно).
Также, в приложении не могут быть открыты 2 формы с одинаковым именем.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)