Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [Delphi], passaggio di puntatore ad array.

    Dato l'array

    codice:
    type
    	MioArrai= array of Integer;
    ...
    
    procedure MiaProcedura;
    var
    	AAMioArray: MioArray
    begin
    ...
    definito a livello di classe ma istanziato a livello di funzione come posso fare per passarlo ad una procedura?


    Grazie mille, Denis.

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,315
    non va bene dichiararlo tra le variabili globali?

    ciao

  3. #3
    Certo, volevo però capire come si potrebbe fare.

  4. #4
    non è una buona idea dichiararla come globale, a mio avviso.

    codice:
    unit Unit1; 
    
    {$mode objfpc}{$H+}
    
    interface
    
    uses
      Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Buttons;
    
    type
    
      { TForm1 }
    
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { private declarations }
      public
        { public declarations }
      end; 
    
      MioArrai= array [1 .. 10] of Integer;
      
    procedure MiaProcedura(a : MioArrai);
    var
      Form1: TForm1; 
    
    implementation
    
    
    procedure MiaProcedura(a : MioArrai);
    begin
    	ShowMessage(IntToStr(a[1]));
    
    end;
    
    { TForm1 }
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
    	AAMioArray: MioArrai;
    begin
      AAMioArray[1]:=101;
      MiaProcedura(AAMioArray);
    end;
    
    initialization
      {$I unit1.lrs}
    
    end.
    l'esempio sopra funziona su Lazarus, ma probabilmente anche su Delphi.

    guarda il prototype
    procedure MiaProcedura(a : MioArrai);

    dove viene dichiarata come argomento MioArrai, non vorrei essere smentito ma non viene passato il vettore per valore ma per riferimento [rettifico è passato per valore].
    Fai delle prove.
    ciao
    sergio

  5. #5
    Ho modificato una riga in questo modo:

    codice:
    procedure MiaProcedura(a : MioArrai);
    procedure MiaProcedura(var a : MioArrai);
    e sono riuscito.

    Grazie mille! Denis.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.