Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];

Вниз

TStack   Найти похожие ветки 

 
UserL   (2002-11-25 11:30) [0]


type
TMes = Record
MType: String;
Host: String;
Date: TDate;
Time: TTime;
Mes: String;
End;
...

MessageStack: TStack;
...


procedure TForm1.FormCreate(Sender: TObject);
begin
MessageStack := TStack.Create;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
MessageStack.Free;
end;


procedure TForm1.BitBtn1Click(Sender: TObject);
Var Mes: TMes;
begin
With Mes Do
Begin
MType := "Kernell";
Host := "192.168.122.133";
Date := Now;
Time := Now;
Mes := "Hi";
End;
MessageStack.Push(@Mes);
end;


Теперь вопрос...
Как из созданного стека вытащить записи занесенного Mes?


 
han_malign   (2002-11-25 11:52) [1]

type
PMes = ^TMes;
TMes = Record
MType: String;
Host: String;
Date: TDate;
Time: TTime;
Mes: String;
End;
...
MessageStack: TStack;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
MessageStack := TStack.Create;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
MessageStack.Free;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
Var Mes: PMes;
begin
New(Mes);
With Mes Do
Begin
MType := "Kernell";
Host := "192.168.122.133";
Date := Now;
Time := Now;
Mes := "Hi";
End;
MessageStack.Push(Mes);
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
Var Mes: PMes;
begin
Mes:=PMes(MessageStack.Pop);
With Mes Do ........
Dispose(Mes);
end;

P.S. var Mes: TMes - - локальный блок памяти в стеке, при выходе из метода указатель @Mes - не будет валидным(будет указывать на участок стека который уже мог быть ипользован другим методом, violation - может и небыть, но работать не будет).


 
UserL   (2002-11-25 12:23) [2]

А чтоб не удалять записи из стека, а просто их прочитать... все.
А удалить только тогда последнюю запись, когда добавиться новая (например нужно хранить всего 10 записей, а пришла 11 запись, удалить первую, добавить 11 и перечитать, чтоб, скажем, отобразить пользователю)...


 
han_malign   (2002-11-25 12:50) [3]

то что нужно тебе - это не стек, а кольцевой буфер, вполне можно реализовать массивом или связным списком, если хочется красиво можно класс наваять



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

Форум: "Основная";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
4-14862
DarkGreen
2002-10-24 08:01
2002.12.05
Fonts и его размеры


3-14476
SeRZh
2002-11-19 12:37
2002.12.05
Вопрос новичка (Продолжение)


3-14418
Step[B.M.]
2002-11-16 17:55
2002.12.05
Как в Firebird поменять пароль SYSDBA ???


6-14703
yurez
2002-10-03 12:55
2002.12.05
как подключиться к базе данных в интернете (mysql)?


1-14514
valerchik
2002-11-26 14:17
2002.12.05
Файлы....запись и чтение...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский