ho fatto una classe:
unit ClassProgetto;
interface
type
Progetto = class;
nomestage=integer;
implementation
procedure PutNomeProgetto (NOMEstage A: Integer);
function getNomeStage(NomeStage: integer): integer;
begin;
procedure PutNomeProgetto(NomeStage : Integer);
begin
if nomestage <> number then
begin
showmessage ("ERRORE")
exit;
end;
end;
function GETNomeprogetto(S: integer): integer;
begin
Result := str(S) + ' strings are automatically managed';
end;
end.
ma mi appaiono gli errori:
Compila il progetto, Destinazione: PaintFreeShapes: Codice di uscita 256, Errori: 2
unitclassi.pas(1,6) Error: Illegal unit name: ClassProgetto
unitclassi.pas(6,14) Error: Forward type not resolved "Progetto"
cosa significa che una classe non puo' stare su una unit e senno dove?
lazarus 1.8.2
grazie
francesco
ho fatto una classe:
interface
type
Progetto = class;
nomestage=integer;
implementation
ma mi appaiono gli errori:
unitclassi.pas(6,14) Error: Forward type not resolved "Progetto"
La definizione di classe č incompleta, deve terminare con "end" e non deve esserci il ";" dopo "class":
interface
type
Progetto = class
nomestage=integer;
end;
implementation
ho fatto una classe:
ma mi appaiono gli errori:
unitclassi.pas(1,6) Error: Illegal unit name: ClassProgetto
La UNIT deve avere lo stesso nome del file in cui č dichiarata: in questo caso il nome file si chiama "unitclassi" ma dopo UNIT viene dichiarato "ClassProgetto"
Al posto di "ClassProgetto" devi scriverci "unitclassi" (senza virgolette).
il "begin;" non ci vā, devi eliminarlo.
ho fatto una classe:
implementation
procedure PutNomeProgetto (NOMEstage A: Integer);
function getNomeStage(NomeStage: integer): integer;
I due metodi non vanno dichiarati in quel punto ma bensė prima di "implementation", se devi usarli globalmente altrimenti puoi usarli solo localmente E DEVONO ESSERE ENTRAMBI DEFINITI !!!. I metodi non hanno alcun legame con la classe che stai cercando di dichiarare.
NON CI POSSONO ESSERE SPAZI NEI NOME DELLE VARIABILI: "NOMESTAGE A: ....." non č una definizione valida.
ho fatto una classe:
function GETNomeprogetto(S: integer): integer;
begin
Result := str(S) + ' strings are automatically managed';
end;
"function GETNomeprogetto" nella definizione ha come parametro di ritorno un intero, ma nella funzione ritorni una stringa.
La funzione "str()" non sō cosa faccia (a memoria) ...
Mancano inoltre le USES essenziali, senza di quelle l'unitā non verrā mai compilata.
Crea un nuovo progetto e vedi quali USES vengono generati per l'untā principale.