/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Vis vindue og initialiser
Fra : Ingolf


Dato : 18-02-02 21:03

Hej

Jeg har længe undret mig hvordan man på rigtig delphi-manér, bedst placerer
sin initialiserings procedure i et Delphi program.

Mit program vil jeg gerne have til at vises med det samme, og bagefter
initialiseres... alle kontroller har jeg sat enabled:=false som default, og
de blir først aktive når alt er initialiseret.

Hvis jeg placerer min initialisering i Form.OnCreate Event'en, så vil intet
vindue vises før former ER skabt.

Hvis jeg placerer min initialisering i Form.OnActivate Event'en, så vises
vinduet først, og initialisering køres bagefter. Men OnActivate bliver kørt
hver gang vinduet aktiveres, så jeg måtte lave en global boolean variable,
"AppHaveBeenInitiated", som jeg sætter til FALSE i OnCreate event'et. i
OnActivate event'et gør jeg så:

if not AppHaveBeenInitiated then form1.init;
// det virker.. men er "klodset"

Der er et hav af andre måder.. f. eks at sætte "form.init" i DPR delen af et
delphi projekt osv osv.. men hvordan gøres det helt rigtigt?

F. eks vil jeg gerne sætte en "Splash Screen" ind senere.. denne vises
indtil programmet er initialiseret.




 
 
René Jensen (19-02-2002)
Kommentar
Fra : René Jensen


Dato : 19-02-02 00:00

Ingolf wrote:
> Jeg har længe undret mig hvordan man på rigtig delphi-manér, bedst placerer
> sin initialiserings procedure i et Delphi program.
>
> Mit program vil jeg gerne have til at vises med det samme, og bagefter
> initialiseres... alle kontroller har jeg sat enabled:=false som default, og
> de blir først aktive når alt er initialiseret.
>
> Hvis jeg placerer min initialisering i Form.OnCreate Event'en, så vil intet
> vindue vises før former ER skabt.
>
> Hvis jeg placerer min initialisering i Form.OnActivate Event'en, så vises
> vinduet først, og initialisering køres bagefter. Men OnActivate bliver kørt
> hver gang vinduet aktiveres, så jeg måtte lave en global boolean variable,
> "AppHaveBeenInitiated", som jeg sætter til FALSE i OnCreate event'et. i
> OnActivate event'et gør jeg så:
>
> if not AppHaveBeenInitiated then form1.init;
> // det virker.. men er "klodset"
>
> Der er et hav af andre måder.. f. eks at sætte "form.init" i DPR delen af et
> delphi projekt osv osv.. men hvordan gøres det helt rigtigt?
>
> F. eks vil jeg gerne sætte en "Splash Screen" ind senere.. denne vises
> indtil programmet er initialiseret.

Hvis jeg forstår din problematik korrekt, så kan du placere dine
initalisering før din form bliver oprettet ved at skrive kalde din
funktion/procedure før Application.Initialize; i selve projektets hoved
fil (*.DPR), f.eks. vil følgende kode komme op med en tekstboks før din
form bliver vist:

program Project1;

uses
Forms,
Dialogs,
Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
ShowMessage('Denne tekstboks vises før default-form.');
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end;

.... samme metode bruges til splash-screens...

--
Med venlig hilsen,
René Jensen

Once a upon a time a wise man said to me:
"I consider Windows like I consider bad weather ... I accept it and hope
for something better"

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste