Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Delphi - tipi strutturati e procedure
Forum - Delphi - tipi strutturati e procedure

Avatar
haberdasherv_ (Normal User)
Rookie


Messaggi: 22
Iscritto: 11/04/2009

Segnala al moderatore
Postato alle 16:45
Mercoledì, 21/10/2009
mi servirebbe creare una procedura che preso in input un tipo di dato prima dichiarato sia in grado di manipolarne i singoli campi.
Codice sorgente - presumibilmente Delphi

  1. type
  2.   TForm1 = class(TForm)
  3.     procedure modifica(var app: ???);
  4. type
  5.   coordinate = record
  6.   var x1 :integer;
  7.       x2 :integer;
  8.       x3 :integer;
  9.       x4 :integer;
  10.   end;
  11. var
  12.   rettangolo : coordinate;
  13.  
  14. procedure TForm1.Button1Click(Sender: TObject);
  15. begin
  16.   modifica(rettangolo);
  17. end;
  18.  
  19. procedure TForm1.modifica(var app: ???);
  20. begin
  21.   app.x1 := 2;
  22.   app.x2 := 37;
  23. end;



per fare ciò, come dovrei dichiarare la variabile app che viene passata alla procedura?

PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 16:56
Mercoledì, 21/10/2009
beh se il tipo della variabile app(che poi è uguale a quello di rettangolo) è "coordinate" allora metti

var app: coordinate

PM Quote
Avatar
haberdasherv_ (Normal User)
Rookie


Messaggi: 22
Iscritto: 11/04/2009

Segnala al moderatore
Postato alle 20:53
Mercoledì, 21/10/2009
fosse stato così facile non l'avrei chiesto XD
questa è stata la prima cosa che ho fatto ma mi da "undeclared identifier" nella riga dove dichiaro la procedura, "identifier redeclared" dove dichiaro il nome del tipo e ancora "undeclared identifier" dove dichiaro il tipo del dato "rettangolo".

PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 22:22
Mercoledì, 21/10/2009
togli la parola chiave "var" quando dichiari la struttura "record"

devi mettere per esempio:

rect = record
  x1: Integer;
  ...
end;

non ci va la var per dichiarare le cose in una struttura dati record

e poi la procedura la devi dichiarare DOPO la dichiarazione della record

Ultima modifica effettuata da lorenzo il 21/10/2009 alle 22:23
PM Quote
Avatar
haberdasherv_ (Normal User)
Rookie


Messaggi: 22
Iscritto: 11/04/2009

Segnala al moderatore
Postato alle 22:40
Mercoledì, 21/10/2009
grazie mille, adesso funziona.

PM Quote