|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.04.2010, 22:46 | #1 |
Пользователь
Регистрация: 01.04.2010
Сообщений: 29
|
При нажатии на кнопку должна вызываться процедура добавления в стек
Помогите пожалуйста. Я задал стек с помощью процедур, а как сделать, чтобы при нажатии на кнопку вызывалась данная процедура. Вот мой код
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; //для вывода стека Button1: TButton; //случайное заполнение стека Edit1: TEdit; //для ввода значений элементов стека Button2: TButton; //добавление элемента в стек Button3: TButton; //удааление элемента из стека procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; type Tps=^Ts; //определяет тип элемента стека Ts=record inf:word; //информационная часть элемента стека ps:Tps; //указатель на предыдущий элемент стека end; var p:Tps; //указатель на вершину стека Const n=10; //размерность стека implementation {$R *.dfm} //процедура добавления нового элемента в стек Procedure AddStack(var P:Tps; n:word); var pt:Tps; begin new(pt); //выделяем память для нового элемента стека pt^.inf:=n; //записываем новое число в элемент стека pt^.ps:=p; //запоминаем указатель на предыдущий элемент стека p:=pt; //возвращаем этот новый указатель на вершину стека end; //процедура извлечения числа из стека с освобождением памяти Procedure FromStack (var p:Tps; var n:word); var pt:Tps; begin if p<>nil then begin pt:=p; //запоминаем старое значение вершины стека n:=p^.inf; //извлекаем число из текущего элемента стека p:=p^.ps; //устанавливаем новый указатель на вершину стека dispose(pt); //освобождаем память старого элемента стека end else n:=0; end; procedure TForm1.Button1Click(Sender: TObject); var i,j:integer; begin randomize; //инициируем датчик случайных чисел Memo1.Clear; //очищаем текстовый редактор Memo1 p:=nil; //указатель на вершину стека полагаем равным константе nil for i:=1 to n do begin //открываем цикл записей в стек j:=random(20); //получаем случайное число AddStack(p,j); //записываем его в стек Memo1.Lines.Add(IntToStr(j)); //выводим его значение в Memo1 end; end; //кнопка добавления элемента в стек из Edit procedure TForm1.Button2Click(Sender: TObject); begin ??? end; //кнопка удаления элемента procedure TForm1.Button3Click(Sender: TObject); begin ??? end; end. |
03.04.2010, 00:00 | #2 |
Участник клуба
Регистрация: 06.04.2009
Сообщений: 1,524
|
Код:
|
03.04.2010, 02:41 | #3 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Если задача не учебная, то в VCL реализован стек - TStack, TObjectStack.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
03.04.2010, 19:01 | #4 |
Пользователь
Регистрация: 01.04.2010
Сообщений: 29
|
|
03.04.2010, 20:07 | #5 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Что тебе нужно в стек ложить, какой тип?
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
03.04.2010, 21:42 | #6 |
Пользователь
Регистрация: 01.04.2010
Сообщений: 29
|
|
05.04.2010, 18:01 | #7 |
Пользователь
Регистрация: 01.04.2010
Сообщений: 29
|
Помогите, плиз, очень нужно
|
07.04.2010, 21:57 | #8 |
Пользователь
Регистрация: 01.04.2010
Сообщений: 29
|
Подскажите, какой тип данных можно использовать для элементов стека?
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
При нажатии на конопку должна открываться папка | ilsen | Помощь студентам | 2 | 18.03.2010 14:58 |
при нажатии на кнопку Delete | vik85 | Помощь студентам | 0 | 20.12.2009 20:34 |
прокрутка при нажатии на кнопку | neformat | JavaScript, Ajax | 0 | 20.06.2008 20:40 |
Как сделать так,чтобы при нажатии на кнопку выполнялась процедура? | Bolgarin | Общие вопросы Delphi | 10 | 03.06.2008 23:48 |
при нажатии на кнопку должна создаваться новая форма | ***СкаЙ*** | Помощь студентам | 5 | 13.06.2007 11:51 |