Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.48 MB
Время: 0.132 c
14-1085666449
Nic
2004-05-27 18:00
2004.06.20
Я тут хомячок сделал. Зацените :)


14-1086158505
31512
2004-06-02 10:41
2004.06.20
Что лучше для обработки нажатий на пункты меню?


1-1086346210
killer
2004-06-04 14:50
2004.06.20
Кнопочка в StringGrid


3-1085657800
Serg
2004-05-27 15:36
2004.06.20
Строка соединения для MS SQL Server 2000


1-1086612672
AGGRESSOR
2004-06-07 16:51
2004.06.20
Продолжение выполнения кода со след. стр. после ошибки





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский