Форум: "Основная";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];
ВнизДоступ к переменным модуля Проэкта Найти похожие ветки
← →
Eugene83 © (2004-06-03 16:17) [0]Мастера, можно ли объявив переменную(функцию) в файле ресурсов, получить к ней(к ней) доступ в коде своей главной формы?
Или как создать переменную и пользоваться ей и в модуле формы и в модуле проэкта?
Не получается вот что:
//=================================================//
program Project1;
uses
Forms,
Unit1 in "Unit1.pas" {Form1};
ULogo in "ULogo.pas" {LogoForm};
{$R *.RES}
begin
Application.Initialize; {до этого момента никаких изменений}
with TLogoForm.Create(Application) do
try
Show;
Update;
Application.CreateForm(TForm1, Form1);
// Хочется двигать ProgressBar не только сдесь, но и в TForm1.FormCreate .
LogoForm.ProgressBar1.StepIt; //TProgressBar лежит на TLogoForm"е
finally
Free;
end;
Application.Run;
end.
//=================================================//
Procedure TForm1.FormCreate
begin
LogoForm.ProgressBar1.StepIt; // НЕ ПОЛУЧАЕТСЯ !!!
end;
//=================================================//
← →
Smithson © (2004-06-03 16:22) [1]А что пишет на НЕ ПОЛУЧАЕТСЯ? Так все похоже на правду.
← →
Digitman © (2004-06-03 16:27) [2]Application.CreateForm(TLogoForm, LogoForm);
with LogoForm do
try
Show;
Update;
Application.CreateForm(TForm1, Form1);
LogoForm.ProgressBar1.StepIt;
finally
Free;
end;
Application.Run;
end.
← →
Erik1 (2004-06-03 16:39) [3]Я кажется понял, что тебе надо, сделай так:
Application.Initialize;
SplashForm := TSplashForm.Create(nil);
SplashForm.Show;
.....
SplashForm.ProgressBar1.StepIt;
TForm1.Create(Application, SplashForm);
....
SplashForm.Free;
Application.Run;
В TForm1 переопредели конструктор для приема второго параметра.
← →
Eugene83 © (2004-06-04 15:48) [4]Eric1, спасибо что ответил.
Но, всё же это не то что мне нужно...
Я хочу двигать Progressbar и после создания каждой формы и во время создания каждой формы, т.е.:
SplashForm.ProgressBar1.StepIt;
TForm1.Create(Application, SplashForm);
и затем, в TForm1.FormCreate
begin
StepIt;
StepIt;
StepIt;
end;
и
TForm2.FormCreate
begin
StepIt;
StepIt;
StepIt;
end;
и т.д...
Проблемма в том, что прогрессбар стоит, в то время как работает функция FormCreate.
Заранее благодарен :)
← →
FragMan (2004-06-04 15:57) [5]Я лично вот так вышел из положения! Знаю что не идеально, но всё же - вариант
------------------
begin
try
LdRis := TLdRis.Create(Application);
LdRis.Show;
LdRis.Update;
LdRis.PrBr.Position:=15;
repeat
Application.ProcessMessages;
until LdRis.CloseQuery;
Application.Initialize;
Application.Title := "Моя программа";
Application.CreateForm(TForm1, Form1);
LdRis.ProgressBar.Position:=LdRis.ProgressBar.Position+9;
Application.CreateForm(TForm5, Form5);
LdRis.ProgressBar.Position:=LdRis.ProgressBar.Position+9;
Application.CreateForm(TForm6, Form6);
LdRis.ProgressBar.Position:=LdRis.ProgressBar.Position+9;
Application.CreateForm(TForm7, Form7);
LdRis.ProgressBar.Position:=LdRis.ProgressBar.Position+9;
Application.CreateForm(TForm8, Form8);
LdRis.ProgressBar.Position:=LdRis.ProgressBar.Position+9;
Application.CreateForm(TForm9, Form9);
LdRis.ProgressBar.Position:=LdRis.ProgressBar.Position+9;
Application.CreateForm(TForm10, Form10);
LdRis.ProgressBar.Position:=LdRis.ProgressBar.Position+9;
Application.CreateForm(TForm11, Form11);
LdRis.ProgressBar.Position:=LdRis.ProgressBar.Position+9;
LdRis.Hide;
finally
LdRis.Free;
end;
Application.CreateForm(TLdRis, LdRis);
Application.Run;
end.
← →
Smithson © (2004-06-04 15:59) [6]Советую вынести этот прогрессбар в отдельный модуль (создавать его ручками, либо вынести в этот отдельный модуль всю форму, на которой живет прогрессбар) и подключить этот модуль как к модулям форм, так и к модулю проекта. Тогда обращаться к нему сможете из модулей форм и из модуля проекта.
Это то, что вам нужно?
← →
Amoeba © (2004-06-04 15:59) [7]А нафига такую кучу форм делать AutoCreate???
← →
Eugene83 © (2004-06-04 16:14) [8]Eric 1,
Сразу не разобрался...
1.
.....
SplashForm.ProgressBar1.StepIt;
TForm1.Create(Application, SplashForm);
....
Это должно быть в модуле проэкта?
2.
"В TForm1 переопредели конструктор для приема второго параметра."
Как это сделать?
← →
Eugene83 © (2004-06-04 16:18) [9]Smithson, спасибо, это именно то что нужно.
Я вынес его в отдельный модуль
program Project1;
uses
Forms,
Unit1 in "Unit1.pas" {Form1};
ULogo in "ULogo.pas" {LogoForm}; // ВОТ ОН
А как его подключить к модулю форм??
← →
Eugene83 © (2004-06-04 16:21) [10]FragMan,
а ты попробуй доберись до
LdRis.ProgressBar.Position
в Form1.Create, а не в модуле проэкта.
А в общем то что у тебя - это то что нужно (если форм много)
У меня она всего одна
Вот и представь МОЙ ПРОГРЕССБАР :)
← →
Smithson © (2004-06-04 16:56) [11]Ну как подключить?
implementation
uses ..., ULogo;
← →
Eugene83 © (2004-06-04 17:03) [12]Как говорится всё гениальное просто.
(И как сам не сообразил??? Ну ламер ламером!)
Спасибо, Smithson, всё получилось.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.037 c