Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: nomorelogic - Aprile 29, 2020, 11:42:16 am

Titolo: Autocreate forms
Inserito da: nomorelogic - Aprile 29, 2020, 11:42:16 am
penso di aver individuato il problema

la finestra che hai allegato serve a dichiarare quali form devono essere create al lancio dell'applicazione
nornalmente ci sono 2 strade:

se si tratta di un piccolo progetto si può anche optare per la seconda soluzione, io preferisco la prima

ora:
nel sorgente dell'applicazione, all'avvio, vengono create le form (e/o i datamodule) che hai dichiarato precedentemente
Codice: [Seleziona]
Application.CreateForm(TForm1, Form1);
l'errore che si vede nella tua immagine si riferisce al fatto che deve creare una istanza di TForm1 ma... non trova la dichiarazione!

devi aggiungere alla clausola uses la unit in cui c'è la dichiarazione di TForm1

nomorelogic



PS:
inutile aggiungere problemi ad un thread marcato come risolto...
bisogna crearne un'altro
Titolo: Autocreate forms
Inserito da: petrusic - Aprile 29, 2020, 12:30:12 pm
Come sia successo che la form del progetto non è stata più presente nella finestra delle Form create automaticamente non ho proprio idea.
Dopo che funzionava tutto con una seconda unit contenente una sola function, ho voluto aggiungere una seconda function, sia a scopo esercitativo che a scopo implementativo. A fine modifica, mi sono trovato di fronte ad una situazione di compilazione finita correttamente, ma senza alcuna finestra grafica con cui interfacciarmi col programma.

la finestra che hai allegato serve a dichiarare quali form devono essere create al lancio dell'applicazione
nornalmente ci sono 2 strade:
    nel sorgente dell'applicazione, all'avvio, vengono create le form (e/o i datamodule) che hai dichiarato precedentemente
Codice: [Seleziona]
Application.CreateForm(TForm1, Form1);
l'errore che si vede nella tua immagine si riferisce al fatto che deve creare una istanza di TForm1 ma... non trova la dichiarazione!

devi aggiungere alla clausola uses la unit in cui c'è la dichiarazione di TForm1
Il file di cui stiamo parlando è cofamtrasflpi.lpr, dove io non ho mai messo mani. Intervenendo lì dentro si manifesta un altro errore.
Allego: cofamtrasf.pas(unit1), utilmie.pas(unit2) e cofamtrasflpi.lpr

PS:
inutile aggiungere problemi ad un thread marcato come risolto...
bisogna crearne un'altro
Si, mi dispiace di avere sbagliato e chiedo perdono, ma mi pare ormai troppo tardi. Quando ho scritto il primo post, dopo il "risolto", pensavo ad un problemino di poco conto, invece vi sono ancora completamente invischiato.

Titolo: Re:Autocreate forms
Inserito da: nomorelogic - Aprile 29, 2020, 01:02:56 pm
...
ma mi pare ormai troppo tardi. Quando ho scritto il primo post, dopo il "risolto", pensavo ad un problemino di poco conto, invece vi sono ancora completamente invischiato.

non è mai troppo tardi ;)
Titolo: Re:Autocreate forms
Inserito da: nomorelogic - Aprile 29, 2020, 01:09:49 pm
Il file di cui stiamo parlando è cofamtrasflpi.lpr, dove io non ho mai messo mani. Intervenendo lì dentro si manifesta un altro errore.

oltre ad allegare i sorgenti, dicci anche il tipo di errore
nella finestra dei messaggi di compilazione, fai "copia messaggio selezionato "con tasto dx e poi incollalo nel post
ci dai una mano ;)
Titolo: Re:Autocreate forms
Inserito da: bonmario - Aprile 29, 2020, 01:23:38 pm

Il file di cui stiamo parlando è cofamtrasflpi.lpr, dove io non ho mai messo mani. Intervenendo lì dentro si manifesta un altro errore.
Allego: cofamtrasf.pas(unit1), utilmie.pas(unit2) e cofamtrasflpi.lpr


Zippa la directory, che fai prima.
Già al volo, vedo che manca il file .lfm, quello che contiene il sorgente del form, non vorrei che mancasse anche altro ...

Ciao, Mario
Titolo: Re:Autocreate forms
Inserito da: petrusic - Aprile 29, 2020, 04:30:25 pm
oltre ad allegare i sorgenti, dicci anche il tipo di errore

L'ultimo errore, indicato stamattina, è
Citazione
cofamtrasf.pas(90,17) Fatal: Syntax error, ";" expected but "." found
cioè:
Codice: [Seleziona]
procedure TForm1.pExitClick(Sender: TObject);  
Ho allegato anche il file .zip delle directory coi file del progetto
Titolo: Re:Autocreate forms
Inserito da: nomorelogic - Aprile 29, 2020, 05:02:47 pm
non so se sono io ad avere il problema ma il file zip allegato mi risulta corrotto
qualcuno può vedere se estrae tutto?
Titolo: Re:Autocreate forms
Inserito da: bonmario - Aprile 29, 2020, 06:08:00 pm
Anche a me, non riesco nemmeno a vedere l'elenco dei files contenuti
Titolo: Re:Autocreate forms
Inserito da: Stilgar - Aprile 29, 2020, 06:12:16 pm
Non è uno zip.O almeno non ha il magic number corretto per essere uno zip :)
Cosa hai usato per comprimerlo?
Titolo: Re:Autocreate forms
Inserito da: bonmario - Aprile 29, 2020, 06:26:53 pm
Usando su Linux il comando "file", mi dice che è un eseguibile. Ho provato a lanciarlo su un vecchio XP virtualizzato, ma mi dice che non c'è abbastanza memoria ... attendo il prossimo zip ...
Titolo: Re:Autocreate forms
Inserito da: petrusic - Aprile 29, 2020, 11:00:06 pm
Non capisco. Io ho eseguiito  l'unzip ed ha funzionato benissimo.
Probabilmente il file .zip è troppo grande per allegarlo.
Ho provato di nuovo creando du file .zip, ma uno dei due file è sempre troppo grande
Titolo: Re:Autocreate forms
Inserito da: Stilgar - Aprile 29, 2020, 11:10:43 pm
Fatta la fix al progetto.
Buon divertimento :)

Titolo: Re:Autocreate forms
Inserito da: petrusic - Aprile 30, 2020, 10:31:48 am
Fatta la fix al progetto.
Grazie innanzitutto per l'aiuto.
Dalla'alto dei grossi limiti, non riesco a capire cosa significa. Mi potresti spiegare con paziente cortesia che cosa significa e cosa è stato modificato per arrivare ad ottenere, a fine compilazione, la comparsa della form sullo schermo?
Titolo: Re:Autocreate forms
Inserito da: Stilgar - Aprile 30, 2020, 11:03:05 am
Ciao


Non so per quale  motivo il file di progetto non veniva riconosciuto come tale.
Creata nuova applicazione e inserito i tuoi sorgenti dentro.
Controllato se aveva perso correttamente la form, compilato giusto per prova.

😊
Titolo: Re:Autocreate forms
Inserito da: petrusic - Aprile 30, 2020, 03:47:47 pm
 :o ??? ::)
Comunque sia, ho provato il progetto così rivisto e non ha manifestato più errori. Ho capito anche che fra le uses della sezione Interface, basta indicare soltanto i nomi dei file unit.pas; infatti le chiamate alle procedure/function contenute al loro interno vengono svolte ugualmente bene.
Grazie a tutti!