Probabilmente sto cercando di spingermi troppo in la' rispetto alle mie conoscenze, però ho visto che con il vostro aiuto ho fatto cose... che mai avrei pensato di poter realizzare. Passiamo al concreto: ho creato una sorta di gestionale per la gestione dei cespiti delle mie due società (molto amatoriale); ora ho avuto la bella idea di voler
selezionare l'azienda in gestione PRIMA che si apri il form principale, problema è che non ci riesco.
Questa è la situazione di partenza:
program LGestioneCespiti;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms, uGestioneCespiti, UDichiarazioni, ULetturaDati,
UInserimentoMovimenti, ............................, uScegliAzienda;
{$R *.res}
begin
Application.Title:='LGestioneCespiti';
RequireDerivedFormResource := True;
Application.Initialize;
Application.CreateForm(TTfMenuGenerale, TfMenuGenerale);
Application.CreateForm(TTfInserimentoMovimenti, TfInserimentoMovimenti);
..
..
Application.CreateForm(TTfScegliAzienda, TfScegliAzienda);
Application.Run;
end.
ScegliAzienda sarebbe il form che dovrei mandare in esecuzione prima di MenuGenerale, quindi l'ho inserito subito dopo Application.Initialize, ma non cambia nulla.
Come potrei fare?
Ho fatto cosi:
procedure TTfMenuGenerale.FormCreate(Sender: TObject);
begin
TfScegliAzienda.ShowModal;TfMenuGenerale.Show;
end;
ma mi segnala errore (come da allegati); mi par di capire che punti ad una form
che ancora non esiste ho provato anche a cambiare l'ordine in questo modo
begin
...
Application.Initialize;
Application.CreateForm(TTfMenuGenerale, TfMenuGenerale);
Application.CreateForm(TTfScegliAzienda, TfScegliAzienda);
.
Application.Run;
Grazie
ps ho cancellato parte del nome dell'azienda dall'errore per motivi di "privacy"
Prova a spostare la creazione della form.
L'errore (9 su 10) è dovuto al fatto che usi la form prima di averla istanziata.
procedure TTfMenuGenerale.FormCreate(Sender: TObject);
begin
Application.CreateForm(TTfScegliAzienda, TfScegliAzienda);
TfScegliAzienda.ShowModal;
end;
begin
...
Application.Initialize;
Application.CreateForm(TTfMenuGenerale, TfMenuGenerale);
.
Application.Run;
Stilgar
PS:
Paura che ti venga a tirare le orecchie in azienda. Altro che privacy ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;)
Ho fatto cosi:
procedure TTfMenuGenerale.FormCreate(Sender: TObject);
begin
TfScegliAzienda.ShowModal;TfMenuGenerale.Show;
end;
prova così:
procedure TTfMenuGenerale.FormCreate(Sender: TObject);
var fScegliAzienda: TfScegliAzienda;
begin
fScegliAzienda:= TfScegliAzienda.Create(self);
if fScegliAzienda.ShowModal = mrOk then begin
// ... fai qualcosa
end;
fScegliAzienda.Free;
end;
Cosi:
procedure TTfMenuGenerale.FormCreate(Sender: TObject);
begin
Application.CreateForm(TTfScegliAzienda, TfScegliAzienda);
TfScegliAzienda.ShowModal;
end;
Prova con:
: [Seleziona]
procedure TTfMenuGenerale.FormCreate(Sender: TObject);
begin
Application.CreateForm(TTfScegliAzienda, TfScegliAzienda);
TfScegliAzienda.ShowModal;
TfScegliAzienda.free;
end;