Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: ffabio - Maggio 23, 2012, 12:04:22 pm

Titolo: maschera apertura programma.
Inserito da: ffabio - Maggio 23, 2012, 12:04:22 pm
Ciao ragazzi,
qualcuno sa come si fa a creare una maschera di apertura del programma senza bottoni in alto nel form ?

tipo quella di lazarus all' apertura .

grazie .
Titolo: Re:maschera apertura programma.
Inserito da: xinyiman - Maggio 23, 2012, 12:19:22 pm
Usi una form normalissima, ci metti un timer, la  dichiari modale. E dopo 5 secondi automaticamente apri una seconda form.  :)
Titolo: Re:maschera apertura programma.
Inserito da: ffabio - Maggio 23, 2012, 12:39:15 pm
grazie xinyiman,

il timer lo pensavo per la dichiarazione modale ??

la proprietà è FormStyle ?? 

ho trovato :
Form.ShowModal ;
ma non va  :(
Titolo: Re:maschera apertura programma.
Inserito da: Stilgar - Maggio 23, 2012, 12:49:45 pm
Piano..
Ci sono 2 cose che devi tenere presente.
1) Se fai in modo che la splashscreen sia agganciata all'application.. diventa la form principale.
2) se non è agganciata all'application, non fa il refresh in automatico al cambiamento dei valori (label, progress etc etc).
EDIT:
3) non esiste modale per le form non agganciate all'application;)

Per le splash screen sì usa in genere una form normale.
Messa come form di primo piano (non modale).

La si istanzia prima di Application.Init.....
La si rende visibile ...
Si chiama Update.
Si fanno altre opeazioni...
Prima del Application.run ...
 splash.Hide;
 splash.close;
 splash.Free;


Codice: [Seleziona]
begin
Splash := TMiaSplash.Create(nil);
Splash.Show;
Splash.Update;
Application .....
Splash.Close;
Splash.Hide;
FreeAndNil(Splash);
Application.run;
End.


Titolo: Re:maschera apertura programma.
Inserito da: ffabio - Maggio 23, 2012, 12:59:26 pm
grazie Stilgar


Quindi una normale form ?? ma non voglio i pulsanti in alto e la barra della finestra .

come faccio a eliminarle ???

Titolo: Re:maschera apertura programma.
Inserito da: nomorelogic - Maggio 23, 2012, 01:03:25 pm
BorderStyle = bsNone
Titolo: Re:maschera apertura programma.
Inserito da: Stilgar - Maggio 23, 2012, 01:04:25 pm
Controlla nell'object inspector ;)
Magari un trovi la risposta :D
Non ricordo a memoria le property...

BorderStyle=bsDialog;  EDIT <<< LAZARUS ha la splash che mi sembra dialog ;)
BorderIcon=[]
FormStyle=fsStayOnTop;

Ragazzi ... non è che se provate scatta l'allarme e viene a prendevi la DIA....
Dai su, un pochino di intraprendenza ;)
Titolo: Re:maschera apertura programma.
Inserito da: nomorelogic - Maggio 23, 2012, 01:12:00 pm
la DIA era già scattata ;)

a proposito di splash e di tempo da aspettare. ti consiglio di mettere il tutto sotto direttiva del compilatore altrimenti quando vai in debug ti esce qualche francesismo tipo: "perdincibue quanto tocca aspettare!" :D

ad esempio:
Codice: [Seleziona]
begin
  Application.Initialize;

  {$IFDEF INCLUDE_SPLASH}
  fmSplash := TfmSplash.Create(nil);
  fmSplash.Show;
  {$ENDIF}

  Application.CreateForm(TfmMain, fmMain);

  {$IFDEF INCLUDE_SPLASH}
  fmSplash.Free;
  {$ENDIF}

  Application.Run;
end.
Titolo: Re:maschera apertura programma.
Inserito da: Stilgar - Maggio 23, 2012, 01:13:38 pm
nomore ... gli hai tolto il gusto della scoperta.
Non sai quanti porchi per riuscire a vedere il codice che dovevo debugare con le splash.
In genere, se la metto, la metto alla finte.
Ma proprio prima di dire ... ci mancano i fiorellini ;)
Titolo: Re:maschera apertura programma.
Inserito da: nomorelogic - Maggio 23, 2012, 01:17:34 pm
In genere, se la metto, la metto alla finte.

anche io la metto alla fine prima dei fiorellini
ma poi le mani ogni tanto sul codice tocca mettercele anche dopo i ghirigori e... partono i francesismi ahahahahahaha
Titolo: Re:maschera apertura programma.
Inserito da: ffabio - Maggio 23, 2012, 01:48:52 pm
 :) grazie .

Funziona penso di metterla da parte e richiamarla dopo era per dare la parvenza al mio SW
di qualcosa di professionale  :)  :)  :)

solo la parvenza !!!!!