TListBox свойства и методы (970964)
Текст из файла
К упр КЛАССЫ-ИНКАПСУЛЯЦИЯ + СРЕДА DELPHI 2005
ЗАДАНИЕ
1.Создать модуль STACK с классом TStek (см программу) для работы со стеком на основе массива FM вещественных чисел, его методы и свойство:
Create – создание объекта и обнуление поля FI,
PUSH – функцию, добавляющую значение параметра в стек и возвращающую значение True, если массив еще не заполнен, а иначе – значение False.
POP – функцию, перемещающую значение с вершины стека в выходной параметр и возвращающую значение True, если стек не пуст, а иначе – значение False.
I – свойство для чтения и записи в поле FI индекса в массиве FM, соответствующего вершине стека.
и обработчики событий для выполнения следующих работ:
-
создание объектов Stek1 и Stek2 типа Tstek при создании формы;
-
добавление, если возможно, числа, введенного в поле под заголовком ПОЛЕ ВВОДА ЧИСЛА в Stek1 и отображение его в очередной строке списка под заголовком СПИСОК 1 и в поле под заголовком ПОЛЕ ВЫВОДА, иначе – вывод в поле под заголовком ПОЛЕ ВЫВОДА сообщения о причине ошибки;
-
удаление из стека Stek1, если он не пуст, числа с вершины, его отображения в списке под заголовком СПИСОК 1 и вывод в поле под заголовком ПОЛЕ ВЫВОДА, иначе – вывод в это поле сообщения СТЕК ПУСТ!;
-
перемещение с вершины стека в стек при щелчке на кнопке Элемент Стека 1 -> в Стек 2.
Edit1.SetFocus - Edit1 получит фокус ввода
Edit1.SelectAll – выделить весь текст Edit1
ListBox1.Items.Strings[k] Текст k-го элемента списка
ListBox1.Items.Count – 1 Индекс последнего элемента списка
ListBox1.Items.Add(IntToStr(FileSize(F))); Добавить эл-т в конец списка
ListBox1.Items.Delete(ListBox1.Items.Count-1); Удалить последний эл-т
ListBox1.Clear; Очистить список
unit Unit2; //МОДУЛЬ ОПИСАНИЯ ТИПА СТЕКА
interface
const nM=5;
type TM=array[1..nM] of real;
TStek = class //КЛАСС СТЕКА
Private FM:TM; FI:integer;
Public
constructor Create;
property I:integer read FI write FI;
function PUSH(Value:real):boolean;
function POP(var Value:real):boolean;
end;//TStek class
implementation
function TStek.PUSH(Value:real):boolean;
begin Result:=false;
if FI<(SizeOf(TM) div SizeOf(real)) then begin
Fi:=Fi+1; FM[Fi]:=Value; Result:=true;end
end;//procedure TStek.PUSH(Value:TZ);
function TStek.POP(var Value:real):boolean;
begin Result:=false;
if FI>0 then begin
Value:=FM[Fi]; Fi:=Fi-1; Result:=true;end
end;//procedure TStek.PUSH(Value:TZ);
constructor TStek.Create;
begin //inherited create;//здесь можно не использовать
FI:=0; end;//constructor TStek.create; end.
unit Unit1;//МОДУЛЬ ФОРМЫ
interface
uses Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms, Dialogs, StdCtrls;
Const nM=5;
type
TForm1 = class(TForm)
Edit1: TEdit; Edit2: TEdit;
Button1: TButton; Button2: TButton; Button3: TButton;
Button4: TButton; Button5: TButton; Button6: TButton;
ListBox1: TListBox; ListBox2: TListBox;
Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;//TForm1 class
var Form1: TForm1; Stek1, Stek2:TStek;
implementation{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var r:real; s:string; k:integer;
begin
s:=edit1.Text;
val(s,r,k);
if k<>0 then begin
Label1.Caption:= ‘ОШИБКА ВВОДА ЧИСЛА! ';
end
else
if Stek1.PUSH(r)then begin
edit2.Text:=FloatToStr(r);
ListBox1.Items.Add(s);
Edit1.SetFocus; Edit1.SelectAll;
end
else
Form1.Edit2.Text:= 'СТЕК ПЕРЕПОЛНЕН!';
end;//procedure TForm1.Button1Click
procedure TForm1.FormCreate(Sender: TObject);
begin
Stek1:=TStek.Create;
Stek2:=TStek.Create;
end;//procedure TForm1.FormCreate(Sender: TObject)
procedure TForm1.Button3Click(Sender: TObject);
var r:real;
begin
if Stek1.POP(r)then begin
ListBox1.Items.Delete(ListBox1.Items.Count-1);
edit2.Text:=FloatToStr(r);
Edit1.SetFocus; Edit1.SelectAll;
end
else
Form1.Edit2.Text:= 'СТЕК ПУСТ!';
end;//procedure TForm1.Button3Click(Sender: TObject)
procedure TForm1.Button4Click(Sender: TObject);
begin
close;
end;//procedure TForm1.Button4Click(Sender: TObject)
procedure TForm1.Button2Click(Sender: TObject);
var r:real; s:string;
begin
if Stek1.POP(r)then begin
Stek2.PUSH(r);
edit2.Text:=FloatToStr(r);
ListBox2.Items.Add(FloatToStr(r));
ListBox1.Items.Delete(ListBox1.Items.Count-1);
end
else
Form1.Edit2.Text:= 'СТЕК 1 ПУСТ!';
end;//procedure TForm1.Button2Click
procedure TForm1.Button5Click(Sender: TObject);
begin
ListBox1.Clear;
Edit1.SetFocus; Edit1.SelectAll;
end;//procedure TForm1.Button5Click
procedure TForm1.Button6Click(Sender: TObject);
begin
ListBox2.Clear;
Edit1.SetFocus; Edit1.SelectAll;
end;// procedure TForm1.Button6Click
end.
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.














