[ mica99 @ 07.01.2012. 22:59 ] @
Radim jedan database program na mysql i to na remote serveru .
procedure su sledece
on form.activate program proverava licencu i posle on form.create konektuje se na mysql.
Posto je rec o remote serveru gde je mysql baza to dosta sporo radi tako da za vreme dok on proverava licencu i konektujese na server, ne postoji
nikakva poruka "Please wait" ili nesto slicno .
Da li neko ima ideju kako bi mogo da ubacim neku animaciju ili neki prozor sa porukom dok se ne konektuje na server tipa before form activate?

Hvala.
[ dekys @ 08.01.2012. 13:00 ] @
ja sam nekada koristio nesto slicno ovome u te svrhe

http://www.delphitricks.com/so...ms/create_a_splash_screen.html
[ reiser @ 09.01.2012. 03:15 ] @
Nisam bas siguran da sam te razumeo, ali OnActivate se odigrava nakon OnCreate, ne pre njega: Understanding the Birth, Life and Death of a Delphi Form

Ako hoces da ubacis formu koja ce biti vidljiva dok traje konektovanje, trebas da odradis nesto slicno kao u linku koji ti je dekys dao, s' tim sto bih ja koristio ShowModal() za prikazivanje te forme. Kreiranje te forme i prikazivanje bi smestio u AfterShow event. Kako da implementiras AfterShow event: http://www.swissdelphicenter.ch/torry/showcode.php?id=1276

Sav kod koji radi sa serverom (provera license, konektovanje) bih smestio u OnAfterShow() event nove forme, i takodje bih u toj novoj formi dodao jedan property koji ce vratiti kako je prosla provera license i konektovanje na server. Recimo, promenljivu Result koja ce vratiti 0 za uspesnu proveru/konektovanje, 1 za fail kod provere, 2 za fail kod konektovanja.. itd.

Recimo da ti se forma koja ce se prikazivati dok se vrsi konektovanje zove TConnectForm. U AfterShow proceduri glavne forme bi onda imao nesto ovako:

Code:

procedure TForm.WmAfterShow(var Msg: TMessage);
begin
  Application.CreateForm(TConnectForm, ConnectForm);
  ConnectForm.ShowModal; // prikazujes formu i prekidas izvrsavanje glavne forme

  Case ConnectForm.Result of // ovde proveravas ishod provere licence i konektovanja
    0 :
    1 :
    2 :
    ...
  End;

  FreeAndNil(ConnectForm);
end;


U AfterShow eventu ConnectForm bi imao:

Code:

procedure TConnectForm.WmAfterShow(var Msg: TMessage);
begin
  // provera license
  // konektovanje na server
  Result := 0, 1, 2; // ovde setujes result, zavisno od toga kako je prosla provera licence i konektovanje
  Close; // ovim zatvaras formu i nastavljas izvrsavanje glavne forme
end;


[Ovu poruku je menjao reiser dana 09.01.2012. u 04:31 GMT+1]