Вниз
Скачать: CL | DM;

компонент TQueue его метод Pop.   Найти похожие ветки 

 
andrey__   (2004-08-12 11:27) [0]

Посмотрите пожалуста простой пример и подскажите почему метод Pop выдает одно и то же значение.

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs,Contnrs, StdCtrls;

type
 Tarr=array [1..5] of byte;
 Parr=^Tarr;

 TForm1 = class(TForm)
   Button1: TButton;
   Edit1: TEdit;       //установите макс. длину 5 символов
   Label1: TLabel;
   Button2: TButton;
   Memo1: TMemo;
   procedure Button1Click(Sender: TObject);
   procedure FormCreate(Sender: TObject);
   procedure Button2Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
   Queue:TQueue;
   mas:Tarr;
   pnt:Parr;
   tmpptr:Parr;
 end;

var
 Form1: TForm1;
 i:integer;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
//добавл элемент в очередь.
begin
  tmpptr:=nil;
  for i:=1 to 5 do
    mas[i]:=ord(Edit1.text[i]);
  pnt:=@mas;
  Queue.Push(pnt);
  Label1.Caption:=IntToStr(Queue.Count);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   Queue:=TQueue.Create;
end;

procedure TForm1.Button2Click(Sender: TObject);
//извлекаем из очереди
var
  st:string[5];
begin
  st:="";
  tmpptr:=nil;
  tmpptr :=Parr( Queue.Pop);
  mas:=tmpptr^;
  for i:=1 to 5 do
     st:=st+chr(mas[i]);
  Memo1.Lines.Append(st);
  Label1.Caption:=IntToStr(Queue.Count);
end;

end.


 
AlexSV   (2004-08-12 12:35) [1]

Сравни и найди отличия:
procedure TForm1.Button1Click(Sender: TObject);
var
 i: integer;
begin
 new(tmpptr);
 for i:=1 to 5 do
   tmpptr^[i]:=ord(Edit1.text[i]);
 Queue.Push(tmpptr);
 Label1.Caption:=IntToStr(Queue.Count);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 i: integer;
 st:string[5];
begin
 tmpptr :=Parr(Queue.Pop);
 for i:=1 to 5 do
    st:=st+chr(tmpptr^[i]);
 Memo1.Lines.Append(st);
 Dispose(tmpptr);
 Label1.Caption:=IntToStr(Queue.Count);
end;


и не забудь своему Queue сделать Free



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.023 c
14-1091866279
Stany
2004-08-07 12:11
2004.08.29
"Удаленный рабочий стол"


14-1091986370
VID
2004-08-08 21:32
2004.08.29
Через 15 минут по ОРТ фильм "Враг у ворот"


1-1092493911
Kirsanch
2004-08-14 18:31
2004.08.29
TService


8-1086455902
Black Raven
2004-06-05 21:18
2004.08.29
Сравнение двух изображений


8-1086784992
karlsn
2004-06-09 16:43
2004.08.29
проблема c SndSoundPlay();




   Наверх