Главная страница
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.035 c
8-1086892049
FALCON
2004-06-10 22:27
2004.08.29
TImage


3-1091521094
}|{yk
2004-08-03 12:18
2004.08.29
Что неправильно в такой инструкции?


14-1092116695
Rule
2004-08-10 09:44
2004.08.29
Вот спорю с коллегой на работе, подскажите есть ли множественное


4-1089830351
Sliski Slimak
2004-07-14 22:39
2004.08.29
Модальная форма в DLL


3-1091540403
Labert
2004-08-03 17:40
2004.08.29
как раскрасить строки в TDBGrid?