Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Вниз

как динамически создать форму   Найти похожие ветки 

 
Dober_m@N   (2004-02-27 05:26) [0]

есть прилодение с формой, надо динамически создать 2-ю форму form2 наприм?


 
ЮЮ ©   (2004-02-27 06:04) [1]

>2-ю форму form2 наприм?
т.е. один экземпляр класса TForm2 уже создан, а ссылка на него хранится в глбальной переменной form2 модуля form2? Или в чем проблема?


 
ЮЮ ©   (2004-02-27 06:11) [2]

Может тебе ещё рано думать о динамическом создании? Даже созданная статически, она не покажется, пока не вызовешь метод Show(Modal). А для добаления ещё оной формы в проект нажми кнопку New Form.


 
Gero ©   (2004-02-27 07:12) [3]

Form2 := TForm2.Create(Application);


 
ЮЮ ©   (2004-02-27 07:27) [4]

Gero ©   (27.02.04 07:12) [3]
 если 2-я форма form2 это не второй экземпляр формы TForm2. Но автор молчит, что он подразумевал под 2-я форма


 
Dober_m@N   (2004-02-27 07:27) [5]

:)   нажми кнопку New Form
у меня неизвестное кол-во форм должно быть т е надо динамически...
через kol всё работает, но kol плохо дружит в модулями forms, extctrl, короче пишет ошибки при закрытии программы  не из делфи а при самостоятельной работе. Поэтому надо средствами делфи.


 
Dober_m@N   (2004-02-27 07:29) [6]

кстати по поводу экземпляров и переменных, их как массивы(array[] TForm) что ли делать? чтоб для неизвесного кол-ва окон?


 
Gero ©   (2004-02-27 07:32) [7]

> Dober_m@N
Создал бы свою ветку.

> чтоб для неизвесного кол-ва окон
TList


 
ЮЮ ©   (2004-02-27 07:45) [8]

>кстати по поводу экземпляров и переменных, их как массивы(array[] TForm) что ли делать? чтоб для неизвесного кол-ва окон?

Хоть массивы, хоть список, особой разницы нет. А из модуля описания формы TForm2 глобальную переменную form2 убрать во избежания будущих недоразумений.


 
Dober_m@N   (2004-03-02 05:32) [9]

вот так cоздаю(пока для 1-й формы):

var Form2: TForm;
begin
 Form2 := TForm.Create(application);
 Form2.Left :=200;
 Form2.Top := 200;
 Form2.WindowState := wsNormal;
 Form2.BorderStyle := bsNone;
 Form2.Name := "Form2";
 Form2.Show;

....

создаётся нормально
дальше(примерный код):

 form2.Canvas.Pen.Color := clLime;
 form2.Canvas.Pen.Width := 3;
 form2.Canvas.Brush.Color := clGray;
 form2.Canvas.Rectangle(0,0,100,100);
 form2.Canvas.Font.Color := cllime;
 form2.Canvas.TextOut(2,2, "gggg");

-> acces violation at addr  

нерисует ничего  пишет только ошибки..
я так понял нада ещё и canvas тоже создавать?
вопрос: напишите плз   код   как его создавать? и как привязывать к форме?

var Ca: TCanvas;
begin
Ca := TCanvas.Create;  
некатит :(


 
ЮЮ ©   (2004-03-02 06:06) [10]

> создаётся нормально дальше(примерный код):

Этот "примерный код" должен быть написан в обработчике TForm2.OnPaint а вовсе не там, где ты пишешь (кстати следует приводить имя обрабочика, а не только код).

Если всё-таки намерен создавать несколько экземпляров TForm2, то никахих form2. См [8]


 
Алексей Петухов   (2004-03-02 07:01) [11]

function TForm1.myFormCreate(Own:TComponent): TForm;
begin
 Result:=TForm.Create(Own);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 myFormCreate(self).Show;
end;


 
Dober_m@N   (2004-03-02 08:58) [12]

да понятно что буде не form2   а что то типа   forms[i].name  наприм


 
Dober_m@N   (2004-03-02 09:00) [13]

Алексей я непонял  ,  я сanvas спрашивал..


 
Алексей Петухов   (2004-03-02 09:06) [14]


> Алексей я непонял  ,  я сanvas спрашивал..

Про Canvas смотри [10]

А я на это ответил:
> есть прилодение с формой, надо динамически создать 2-ю форму
> form2 наприм?


 
Dober_m@N   (2004-03-04 07:43) [15]

форма создаётся нормально в процедуре click,
но при любой попытке обратиться к canvas   -> acces violation at adress и тд.

OnPaint тут неспасёт :( ,пробовал
да и вызываться он будет неправильно, только при данном событии, а мне надо чтоб по таймеру к примеру рисовал произвольную линию,для теста, что работает :)


 
Dober_m@N   (2004-03-05 07:39) [16]

всё разобрался   всем thx



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.034 c
1-1078409816
t_vic
2004-03-04 17:16
2004.03.28
Ошибка при выполнении программы


6-1073902992
Delphin
2004-01-12 13:23
2004.03.28
Соединение при помощи сокетов


3-1078037073
SergP
2004-02-29 09:44
2004.03.28
Как дать всем юзерам все привилегии?


1-1078581459
InfoCar1
2004-03-06 16:57
2004.03.28
Как удалить из реестра переменную?


1-1078835234
vin
2004-03-09 15:27
2004.03.28
Перенаправление вывода не в файл, а в поток в память





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский