Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.29;
Скачать: 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 вся ветка

Текущий архив: 2004.08.29;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.038 c
14-1092138667
Sergey13
2004-08-10 15:51
2004.08.29
Книга Туркменбаши - смешно, ели б не так грустно


3-1091693682
Sirruf
2004-08-05 12:14
2004.08.29
BLOB-поля по-простому


4-1089840854
MIGUR
2004-07-15 01:34
2004.08.29
Как отследить нажатия левой и правой кнопки мыши


3-1091648519
gonta
2004-08-04 23:41
2004.08.29
Инсталяция компонентов ODAC


3-1091482426
GanibalLector
2004-08-03 01:33
2004.08.29
gdselected in state в DBGridEh (от EhLib)