[VAZA] 0 Denunciar post Postado Outubro 8, 2007 Pessoal, to fazendo um exercícios em pilha onde tenho um record chamado cilindro:type cilindro = record CN : integer; H : real; R : real;end;To estudando orientação a objetos no Delphi...E to querendo inserir vários registros em cilindro...por exemplo, tenho 10 cilindros e quero ir colocando isso no record..como faria isso? eu ja tentei: cilindro[1].CN := 5 e não da....como faria isso? terei que criar um array dentro desse record?Abraços...t+ Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Outubro 8, 2007 Usando Record pode-se usar um array dinâmico, fazendo algo como: unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons;type TCilindro = record CN: integer; H: real; R: real; end; TForm1 = class(TForm) BitBtn1: TBitBtn; Memo1: TMemo; procedure BitBtn1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.BitBtn1Click(Sender: TObject);var cilindro: array of TCilindro; x: integer;beginRandomize;//Define o tamanho do array TCilindroSetLength(cilindro,10);//Carregafor x:=0 to (Length(cilindro) - 1) do begin cilindro[x].CN:=x; cilindro[x].H:=Random(1000); cilindro[x].R:=Random(1000); end;//Exibe em um TMemofor x:=0 to (Length(cilindro) - 1) do Memo1.Lines.Add(IntToStr(cilindro[x].CN) + ' - ' + FloatToStr(cilindro[x].H) + ' - ' + FloatToStr(cilindro[x].R));end;end. Pode-se ainda usar via "Dynamic allocation routines", mas é mais complicado de trabalhar... Compartilhar este post Link para o post Compartilhar em outros sites