Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > глобальная переменая


Автор: sergey24 27.4.2004, 12:22
добрый день.

мне нужно сделать программе прилагаемой ниже
одну глобальную переменую, чтоб она хронила последние значение переменной buf
у меня не получается ее объявить

вот исходник

unit olimp_;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, StdCtrls;
type

TForm1 = class(TForm)
Tabl: TStringGrid;
Button1: TButton;
Label1: TLabel;
Button2: TButton;
Button3: TButton;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;

procedure FormActivate( Sender: TObject);
procedure Button2Click( Sender: TObject);
procedure Button1Click( Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}
procedure undo (und, number, buf:integer);
begin
und:=buf;
end;


procedure TForm1.FormActivate(Sender: TObject);
var

f: TextFile ; // файл

i,buf,tx: integer;




begin
tabl.Cells[0,0]:='Наименование';
tabl.Cells[1,0]:='Кол-тво';
tabl.Cells[2,0]:='Цена за 1 единицу';
tabl.Cells[3,0]:='Поставщик';

tabl.Cells[0,1]:='1.Рубашки';
tabl.Cells[0,2]:='2.Джинсы';
tabl.Cells[0,3]:='3.Носки';
tabl.Cells[0,4]:='4.Трусы';
tabl.Cells[0,5]:='5.Майки';
tabl.Cells[0,6]:='6.Шапки';
tabl.Cells[0,7]:='7.Шарфы';
tabl.Cells[0,8]:='8.Куртки';
tabl.Cells[0,9]:='9.Дубленки';
tabl.Cells[0,10]:='10.Шубы';
tabl.Cells[0,11]:='11.Колготы';
tabl.Cells[0,12]:='12.Сапоги';
tabl.Cells[0,13]:='13.Ботинки';


tabl.Cells[2,1]:='10';
tabl.Cells[2,2]:='20';
tabl.Cells[2,3]:='3';
tabl.Cells[2,4]:='4';
tabl.Cells[2,5]:='0.5';
tabl.Cells[2,6]:='750';
tabl.Cells[2,7]:='7';
tabl.Cells[2,8]:='80';
tabl.Cells[2,9]:='980';
tabl.Cells[2,10]:='2100';
tabl.Cells[2,11]:='11';
tabl.Cells[2,12]:='120';
tabl.Cells[2,13]:='100';


tabl.Cells[3,1]:='Adidas';
tabl.Cells[3,2]:='Adidas';
tabl.Cells[3,3]:='Fend';
tabl.Cells[3,4]:='Nike';
tabl.Cells[3,5]:='Pont';
tabl.Cells[3,6]:='Pont';
tabl.Cells[3,7]:='Pont';
tabl.Cells[3,8]:='Adidas';
tabl.Cells[3,9]:='Beer';
tabl.Cells[3,10]:='Pont';
tabl.Cells[3,11]:='Nike';
tabl.Cells[3,12]:='Nike';
tabl.Cells[3,13]:='Nike';

AssignFile(f, 'base.txt');
reset(f); // открыть для чтения

for i:=1 to 13 do
begin

readln(f,buf);

tabl.Cells[1,i]:=IntToStr(buf);
end;


CloseFile(f); // закрыть файл


end;





procedure TForm1.Button2Click( Sender: TObject); // сюда нужно дбавить глобальную переменную undo


var f: TextFile ; // файл
buf: integer; // буфер для чтения из файла

number: integer;
kol,i,tmp:integer;


begin

number:=StrToInt(Edit5.Text);
kol:=StrToInt(Edit7.Text);

AssignFile(f, 'base.txt');
reset(f); // открыть для чтения
if number > 13 then
begin
number:=13;
end;

for i:=1 to number -1 do
begin
readln(f);
end;

readln(f,buf);
CloseFile(f); // закрыть файл
tmp:=buf-kol;
if tmp <0 then
begin
MessageDlg('В базе нет такого колличества товара',mtError,[mbOk],0);
end
else
begin
tabl.Cells[1,number]:=IntToStr(tmp);

AssignFile(f, 'base.txt');

Rewrite(f); // открыть для перезаписи

// запись в файл
for i:=1 to 13 do // строки нумеруются с нуля
begin
buf:=StrToInt(tabl.Cells[1,i]);
writeln(f, buf);


end;
CloseFile(f); // закрыть файл

end;
//undo (und, number, buf:integer); вот тут проблемы!!!
end;







procedure TForm1.Button1Click ( Sender: TObject); // сюда нужно дбавить глобальную переменную undo

var f: TextFile ; // файл
buf: integer; // буфер для чтения из файла

number: integer;
kol,i:integer;


begin
number:=StrToInt(Edit1.Text);
kol:=StrToInt(Edit2.Text);

AssignFile(f, 'base.txt');
reset(f); // открыть для чтения
if number > 13 then
begin
number:=13;
end;

for i:=1 to number -1 do
begin
readln(f);
end;

read(f,buf);
buf:=buf+kol;
tabl.Cells[1,number]:=IntToStr(buf);

CloseFile(f); // закрыть файл

AssignFile(f, 'base.txt');

Rewrite(f); // открыть для перезаписи

// запись в файл
for i:=1 to 13 do // строки нумеруются с нуля
begin
buf:=StrToInt(tabl.Cells[1,i]);
writeln(f, buf);
end;
CloseFile(f); // закрыть файл

end;

end.

Автор: Maverick 27.4.2004, 13:04
Цитата
var
Form1: TForm1;


если хочешь, чтоб болталась вообще отдельно, то сюда... после формы...

А лучше включи ее в клас формы....
Сюда...

Цитата
public
{ Public declarations }
end;



Автор: jonik_Dk 27.4.2004, 13:56
Добавь ее либо в класс, или перед разделом implementation, там где ты объявляешь Form1: TForm. Или я не понял, что ты хочешь.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)