Текущий архив: 2004.06.20;
Скачать: CL | DM;
Вниз
Клонировать форму Найти похожие ветки
← →
Ш-К (2004-06-02 15:08) [0]В рантайм есть форма со своими заданными свойствами, компонентами и заданными свойствами компонент.
Как, в рантайм же, создать "копию" формы?
← →
Анонимщик © (2004-06-02 16:39) [1]Смотри хелп на слово VMT.
← →
WebErr © (2004-06-02 17:37) [2]Forma := Forma.Create(Application);
← →
Gero © (2004-06-02 17:45) [3]
> Forma := Forma.Create(Application);
Бред.
← →
WebErr © (2004-06-02 18:09) [4]Описался
Form666 = TForm666.Create(Application);
← →
vvvaaa (2004-06-02 19:08) [5]TSubForm.Create(self);
или
TSubForm.Create(Application);
Не забудь сохранить её хендл, если будеш программно обращаться к ней далее.
← →
Fay © (2004-06-02 19:21) [6]А почему именно хендл? Почему бы не Caption или Tag?
← →
Семен Сорокин © (2004-06-02 19:23) [7]проще ссылку :))
← →
vvvaaa (2004-06-02 19:24) [8]>Fay ©
Интересно узнать и как же ты собираешся обратиться к форме по Caption???
← →
Семен Сорокин © (2004-06-02 19:30) [9]vvvaaa (02.06.04 19:24) [8]
>Fay ©
Интересно узнать и как же ты собираешся обратиться к форме по Caption???
FindWindow
Screen.Forms
выбирай любой
← →
Fay © (2004-06-02 19:52) [10]2vvvaaa (02.06.04 19:24) [8]
Интересно узнать и как же ты собираешся обратиться к форме по Handle???
← →
Ш-К (2004-06-03 09:14) [11]Прошу прощения, уточняю вопрос.
Форма в дезайнтайм не создаётся. Компоненты тоже создаются в рантайм. Эмуляция IDE and Object Innspector. Хотелось бы эти формы воссоздавать.
← →
Black Krok (2004-06-03 10:12) [12]Записать форму в поток и восстановить ее оттуда
Примерно так:
var
Stream : TMemoryStream;
Reader : TReader;
begin
Stream := nil;
Reader := nil;
try
Stream := TMemoryStream.Create;
Stream.SaveComponents(Self);
Stream.Position := 0;
// собственно клонирование
Second_Form.SetDesigning(true,true);
Reader := TReader.Create(Stream,4096);
Reader.ReadComponents(Second_Form);
finally
Stream.Free;
Reader.Free;
end;
end;
Текст набран по памяти и использовался для клонирования панелей в рамках одного окна. Там была проблема с одинаковыми именами. Отсюда использование TReader(у него перекрывалось событие). Может поможет и просто вызов Stream.ReadComponent()
← →
Black Krok (2004-06-03 10:14) [13]Предполагается, что Second_Form уже есть и правильного типа :)))
← →
Ш-К (2004-06-03 12:30) [14]Да. Потоки - то что надо
Страницы: 1 вся ветка
Текущий архив: 2004.06.20;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.035 c