Разработка программы "Телефонная станция" - Курсовая работа

бесплатно 0
4.5 77
Описание входной и выходной информации. Требования к комплексу технических средств и к интерфейсу конечного пользователя. Разработка форм представления входных и выходных данных. Проектирование программных модулей. Руководство пользователя и программиста.


Аннотация к работе
Техническое задание 1.2 Описание входной и выходной информации 1.3 Требования к комплексу технических средств 1.4 Требования к интерфейсу конечного пользователя 2.1 Разработка форм представления входных данныхПрограмма «Справочная аэропорта» должна решать следующие задачи: · Ввод исходных данных в файл Данные в программу вносятся на основании списков телефонных номеров, и заносятся в файл базы данных для дальнейшей обработки и выдачи виде таблиц. Входная информация должна содержать в себе данные об абонентах, заносящиеся в программу и хранящиеся в файле БД. Во-первых, это вывод списка всех абонентов, во-вторых, вывод списка абонентов, у которых остался долг, в третьих вычисление остатка на счете, в четвертых выдача справки по конкретному телефону.

Список литературы
Приложение А - Текст программы

ВВЕДЕНИЕ

В наше время, информационные технологии окружают человека во всех сферах его деятельности и помогают ему решать различные виды задач.

Во всех развитых странах осуществляются широкомасштабные программы информатизации.

Разрабатываемая в рамках данной курсовой работы программа является демонстрационной и показывает уровень освоения материала по курсу «N», а также практических навыков по применению методик разработки программ в объектно-ориентированной среде Lazarus.1. Ткаченко Н.А. Разработка Windows-приложений в среде Delphi. Методические указания по выполнению лабораторных работ.

2. http://www.williamspublishing.com/PDF/5-8459-0693-8/p..

3. http://www.kazedu.kz/referat/133065

4. Фаронов В. Dephi 6: учебный курс.

5.

6.

7.

ПРИЛОЖЕНИЕ A Главный модуль программы unit Unit2;

{$mode objfpc}{$H } interface uses

Classes, SYSUTILS, FILEUTIL, TAGRAPH, TASERIES, Forms, Controls, Graphics, Dialogs, Menus, STDCTRLS, Grids, EXTCTRLS, COMCTRLS;

type

{ TFORM2 }

TFORM2 = class(TFORM)

Button1: TBUTTON;

Button2: TBUTTON;

Button3: TBUTTON;

DELETEBATON: TBUTTON;

Chart1: TCHART;

Chart1PIESERIES1: TPIESERIES;

Edit1: TEDIT;

Edit2: TEDIT;

Edit3: TEDIT;

Edit4: TEDIT;

FONTDIALOG1: TFONTDIALOG;

GROUPBOX1: TGROUPBOX;

GROUPBOX2: TGROUPBOX;

IMAGELIST1: TIMAGELIST;

Label1: TLABEL;

Label2: TLABEL;

Label3: TLABEL;

Label4: TLABEL;

MAINMENU1: TMAINMENU;

MENUITEM1: TMENUITEM;

MENUITEM11: TMENUITEM;

MENUITEM12: TMENUITEM;

MENUITEM13: TMENUITEM;

MENUITEM14: TMENUITEM;

MENUITEM15: TMENUITEM;

MENUITEM16: TMENUITEM;

MENUITEM17: TMENUITEM;

MENUITEM2: TMENUITEM;

MENUITEM4: TMENUITEM;

MENUITEM5: TMENUITEM;

MENUITEM6: TMENUITEM;

MENUITEM7: TMENUITEM;

MENUITEM8: TMENUITEM;

MENUITEM9: TMENUITEM;

OPENDIALOG1: TOPENDIALOG;

POPUPGRID: TPOPUPMENU;

POPUPEDITS: TPOPUPMENU;

POPUPGRID2: TPOPUPMENU;

SAVEDIALOG1: TSAVEDIALOG;

STRINGGRID1: TSTRINGGRID;

STRINGGRID2: TSTRINGGRID;

TOOLBAR1: TTOOLBAR;

TOOLBUTTON1: TTOOLBUTTON;

TOOLBUTTON2: TTOOLBUTTON;

TOOLBUTTON3: TTOOLBUTTON;

TOOLBUTTON4: TTOOLBUTTON;

TOOLBUTTON5: TTOOLBUTTON;

TOOLBUTTON6: TTOOLBUTTON;

TOOLBUTTON7: TTOOLBUTTON;

procedure Button1Click(Sender: TOBJECT);

procedure Button2Click(Sender: TOBJECT);

procedure Button3Click(Sender: TOBJECT);

procedure Button4Click(Sender: TOBJECT);

procedure DELETEBATONCLICK(Sender: TOBJECT);

procedure Edit1KEYPRESS(Sender: TOBJECT; var Key: char);

procedure Edit2KEYPRESS(Sender: TOBJECT; var Key: char);

procedure Edit3KEYPRESS(Sender: TOBJECT; var Key: char);

procedure Edit4KEYPRESS(Sender: TOBJECT; var Key: char);

procedure FORMCLOSEQUERY(Sender: TOBJECT; var CANCLOSE: boolean);

procedure FORMCREATE(Sender: TOBJECT);

procedure FORMSHOW(Sender: TOBJECT);

procedure GROUPBOX1Click(Sender: TOBJECT);

procedure MENUITEM10Click(Sender: TOBJECT);

procedure MENUITEM11Click(Sender: TOBJECT);

procedure MENUITEM12Click(Sender: TOBJECT);

procedure MENUITEM13Click(Sender: TOBJECT);

procedure MENUITEM14Click(Sender: TOBJECT);

procedure MENUITEM15Click(Sender: TOBJECT);

procedure MENUITEM16Click(Sender: TOBJECT);

procedure MENUITEM17Click(Sender: TOBJECT);

procedure MENUITEM2Click(Sender: TOBJECT);

procedure MENUITEM3Click(Sender: TOBJECT);

procedure MENUITEM4Click(Sender: TOBJECT);

procedure MENUITEM6Click(Sender: TOBJECT);

procedure MENUITEM7Click(Sender: TOBJECT);

procedure MENUITEM8Click(Sender: TOBJECT);

procedure MENUITEM9Click(Sender: TOBJECT);

procedure POPUPGRIDPOPUP(Sender: TOBJECT);

procedure STRINGGRID1Click(Sender: TOBJECT);

procedure TOOLBUTTON1Click(Sender: TOBJECT);

procedure TOOLBUTTON3Click(Sender: TOBJECT);

procedure TOOLBUTTON5Click(Sender: TOBJECT);

procedure TOOLBUTTON7Click(Sender: TOBJECT);

private

{ private declarations } public

{ public declarations } end;

var

Form2: TFORM2;

a,Nomer,MTP,balance,ostatok,k, i,j:integer;

STABLE1:TEXTFILE;

s,FILELOCATION:string;

implementation uses Unit3;

{$R *.lfm}

{ TFORM2 } function STRINGISNUMBER(Data:String): Boolean;

var start, i: Integer;

res: Boolean;

begin res:= true;

if Length(Data) = 0 then res:= false else begin start:= 1;

if (Data[start] = "-") then start:= 2;

for i:= start to Length(Data) do begin if not (Data[i] in ["0".."9"]) then begin res:= false;

break;

end;

end;

end;

Result:= res;

end;

procedure Grafik (SG:TSTRINGGRID; res: TPIESERIES);

var neg,pos1:integer;

begin neg:=0;

pos1:=0;

for i:=1 to SG.ROWCOUNT-1 do if strtoint(SG.cells[3,i])<40 then inc(neg) else inc(pos1);

if pos1 neg>0 then

With res do begin

Clear;

Add(pos1,"Нет долгов",CLYELLOW);

Add(neg,"Имеется долг",CLBLUE);

end;

end;

procedure spisok(SG:TSTRINGGRID);

var row:integer;

ind,nomer,MTP,balance,ost,s:string;

begin row:=SG.row;

ind:="Выделен абонент с номером: " SG.cells[0,row] #13#10 #13#10;

nomer:="Номер телефона: " SG.cells[0,row] #13#10;

MTP:="Расходы на МТР: " SG.cells[1,row] " р" #13#10;

balance:="Внесенная сумма: " SG.cells[2,row] " р" #13#10;

ost:="Остаток на счете: " SG.cells[3,row] " р" #13#10;

s:=ind nomer MTP balance ost;

SHOWMESSAGE(s);

end;

procedure ADDNUMBER(FILENAME:String; NEWLINE:String);

var OTABLE1: TEXTFILE;

begin

ASSIGNFILE(OTABLE1, FILENAME);

Append(OTABLE1);

Writeln(OTABLE1, NEWLINE);

CLOSEFILE(OTABLE1);

end;

procedure REPLACENUMBER(FILENAME:String; Position:Integer; NEWLINE:String);

var i: Integer;

OTABLE1: TEXTFILE;

NEWTEXT, OLDLINE: String;

begin

ASSIGNFILE(OTABLE1, FILENAME);

Reset(OTABLE1);

i:= 0;

NEWTEXT:= "";

while not eof (OTABLE1) do begin

Readln(OTABLE1, OLDLINE);

if i = Position then NEWTEXT:= NEWTEXT NEWLINE #13#10 else NEWTEXT:= NEWTEXT OLDLINE #13#10;

inc(i);

end;

CLOSEFILE(OTABLE1);

Rewrite(OTABLE1);

Write(OTABLE1, NEWTEXT);

CLOSEFILE(OTABLE1);

end;

function CHECKNUMBER(FILENAME:String; Phone:String): Integer;

var position, i : Integer;

OTABLE1: TEXTFILE;

STRTEMP: String;

List: TSTRINGS;

begin

ASSIGNFILE(OTABLE1, FILENAME);

Reset(OTABLE1);

i:= -1;

position:= -1;

while not eof (OTABLE1) do begin

Readln(OTABLE1, STRTEMP);

List := TSTRINGLIST.Create;

EXTRACTSTRINGS(["|"], [], PCHAR(STRTEMP), List);

inc(i);

if List.Count > 0 then if List[0] = Phone then begin position:= i;

break;

end;

end;

CLOSEFILE(OTABLE1);

Result:= position;

end;

procedure DELETENUMBER(FILENAME:String; Position:Integer);

var i: Integer;

OTABLE1: TEXTFILE;

NEWTEXT, OLDLINE: String;

begin

ASSIGNFILE(OTABLE1, FILENAME);

Reset(OTABLE1);

i:= 0;

NEWTEXT:= "";

while not eof (OTABLE1) do begin

Readln(OTABLE1, OLDLINE);

if i Position then NEWTEXT:= NEWTEXT OLDLINE #13#10;

inc(i);

end;

CLOSEFILE(OTABLE1);

Rewrite(OTABLE1);

Write(OTABLE1, NEWTEXT);

CLOSEFILE(OTABLE1);

end;

function LOADDATAINGRID(FILENAME:String; SG: TSTRINGGRID): Boolean;

var i, k, t: Integer;

OTABLE1: TEXTFILE;

STRTEMP: String;

List: TSTRINGS;

res: Boolean;

begin res:=true;

ASSIGNFILE(OTABLE1, FILENAME);

k:= 1;

Reset(OTABLE1);

while not eof (OTABLE1) do begin

Readln(OTABLE1, STRTEMP);

if STRTEMP "" then begin

List:= TSTRINGLIST.Create;

EXTRACTSTRINGS(["|"], [], PCHAR(STRTEMP), List);

if List.Count < 4 then res:= false else begin for t:= 1 to 3 do if not STRINGISNUMBER(List[t]) then begin res:= false;

break; // конец цикла for t:= 1 to 3 do end;

end;

if res then begin if k > SG.ROWCOUNT - 1 then SG.ROWCOUNT:= k 1;

for i:= 0 to 3 do

SG.Cells[i, k]:= List[i];

inc(k);

end else break; // конец цикла while not eof (OTABLE1) do end;

end;

CLOSEFILE(OTABLE1);

Result:= res;

end;

procedure TFORM2.Button1Click(Sender: TOBJECT);

var ADDINGRID: boolean;

CURRENTROW, i, pos: integer;

begin if (Edit1.Text = "") or (Edit2.Text = "") or (Edit3.Text = "") then MESSAGEDLG("Заполните все поля!", MTWARNING, [MBOK], 0) else begin

ADDINGRID:= true;

balance:= STRTOINT(Edit3.text);

MTP:= STRTOINT(Edit2.Text);

ostatok:= balance - MTP;

s:= Edit1.Text "|" Edit2.text "|" Edit3.text "|" INTTOSTR(ostatok);

if FILEEXISTS(WIDESTRING(Utf8TOSYS(FILELOCATION))) then pos:= CHECKNUMBER(WIDESTRING(Utf8TOSYS(FILELOCATION)), Edit1.Text) else pos:= -1;

if pos >= 0 then begin if MESSAGEDLG("Такой номер уже есть в базе, заменить его?",MTINFORMATION,[MBYES, MBNO],0)=MRYES then begin for i:= 1 to STRINGGRID1.ROWCOUNT - 1 do begin if STRINGGRID1.Cells[0, i] = Edit1.text then begin

CURRENTROW:=i;

break;

end;

end;

REPLACENUMBER(WIDESTRING(Utf8TOSYS(FILELOCATION)), pos, s);

Grafik(STRINGGRID1,Chart1PIESERIES1);

end else

ADDINGRID:=false;

end else begin

CURRENTROW:=STRINGGRID1.ROWCOUNT; STRINGGRID1.ROWCOUNT:=CURRENTROW 1;

ADDNUMBER(WIDESTRING(Utf8TOSYS(FILELOCATION)), s);

end;

if ADDINGRID then begin

STRINGGRID1.Cells[0, CURRENTROW]:=Edit1.text;

STRINGGRID1.Cells[1, CURRENTROW]:=Edit2.text;

STRINGGRID1.Cells[2, CURRENTROW]:=Edit3.text;

STRINGGRID1.Cells[3, CURRENTROW]:=INTTOSTR(ostatok);

Edit1.Clear;

Edit1.SETFOCUS;

Edit2.Clear;

Edit3.Clear;

Grafik(STRINGGRID1,Chart1PIESERIES1);

end;

end;

end;

procedure TFORM2.Button2Click(Sender: TOBJECT);

var z:integer;

begin if (Edit4.Text = "") then

MESSAGEDLG("Введите номер искомого абонента!",MTWARNING,[MBOK],0) else begin z:=0;

for a:=STRINGGRID1.FIXEDROWS to STRINGGRID1.ROWCOUNT-1 do begin

If STRINGGRID1.cells[0,a] = Edit4.text then begin z:=z 1;

if STRTOINT(STRINGGRID1.Cells[3,a]) < 0 then

SHOWMESSAGE(" Абонент с номером " STRINGGRID1.cells[0,a] " найден " #13#10 #13#10 " Номер телефона " STRINGGRID1.Cells[0,a] #13#10 " MTP " STRINGGRID1.Cells[1,a] #13#10 " Баланс на счете " STRINGGRID1.Cells[2,a] #13#10 " Остаток на счете " STRINGGRID1.Cells[3,a] " - ИМЕЕТСЯ ЗАДОЛЖЕННОСТЬ! ") else

SHOWMESSAGE(" Абонент с номером " STRINGGRID1.cells[0,a] " найден " #13#10 #13#10 " Номер телефона " STRINGGRID1.Cells[0,a] #13#10 " MTP " STRINGGRID1.Cells[1,a] #13#10 " Баланс на счете " STRINGGRID1.Cells[2,a] #13#10 " Остаток на счете " STRINGGRID1.Cells[3,a] " - ЗАДОЛЖЕННОСТИ НЕТ") ;

end;

end;

If z=0 then

SHOWMESSAGE("Абонент с номером " Edit4.text " не найден") ;

end;

end;

procedure TFORM2.Button3Click(Sender: TOBJECT);

var da,x:integer;

begin da:=1;

for a:=STRINGGRID1.FIXEDROWS to STRINGGRID1.ROWCOUNT-1 do if strtoint(stringgrid1.cells[3,a])<0 then begin inc(da);

STRINGGRID2.ROWCOUNT:=da;

end;

if da=1 then

SHOWMESSAGE("Должников нет");

x:=1;

for a:=STRINGGRID1.FIXEDROWS to STRINGGRID1.ROWCOUNT-1 do begin

If STRINGGRID1.Cells[3,a]="" then break else if STRTOINT(STRINGGRID1.Cells[3,a]) < 0 then begin

STRINGGRID2.Cells[0, x]:=STRINGGRID1.Cells[0,a];

STRINGGRID2.Cells[1, x]:=STRINGGRID1.Cells[1,a];

STRINGGRID2.Cells[2, x]:=STRINGGRID1.Cells[2,a];

STRINGGRID2.Cells[3,x]:=STRINGGRID1.Cells[3,a];

x:=x 1;

end;

end;

end;

procedure TFORM2.Button4Click(Sender: TOBJECT);

var i,neg,pos:integer;

begin neg:=0;

pos:=0;

for i:=1 to STRINGGRID1.ROWCOUNT-1 do if strtoint(STRINGGRID1.cells[3,i])<0 then inc(neg) else inc(pos);

With Chart1PIESERIES1 do begin

Clear;

Add(pos,"Цех 1",CLYELLOW);

Add(neg,"Цех 2",CLBLUE);

end;

end;

procedure TFORM2.DELETEBATONCLICK(Sender: TOBJECT);

var pos:integer;

next1:boolean;

begin if MESSAGEDLG("Вы хотите удалить выбранного абонента?", MTCONFIRMATION, [MBYES, MBNO], 0) = mryes then begin if FILEEXISTS(WIDESTRING(Utf8TOSYS(FILELOCATION))) then pos:= CHECKNUMBER(WIDESTRING(Utf8TOSYS(FILELOCATION)), STRINGGRID1.Cells[0, STRINGGRID1.Row]) else pos:= -1;

if pos >= 0 then begin

DELETENUMBER(WIDESTRING(Utf8TOSYS(FILELOCATION)), pos);

Grafik(STRINGGRID1,Chart1PIESERIES1);

end;

end;

STRINGGRID1.rowcount:=1;

stringgrid2.rowcount:=1;

next1:=true;

if FILEEXISTS(WIDESTRING(Utf8TOSYS(FILELOCATION))) then begin next1:= LOADDATAINGRID(WIDESTRING(Utf8TOSYS(FILELOCATION)), STRINGGRID1) ;

Grafik(STRINGGRID1,Chart1PIESERIES1);

end else next1:= false;

if not next1 then

SHOWMESSAGE("Выбран неверный файл, пожалуйста выберите другой");

end;

procedure TFORM2.Edit1KEYPRESS(Sender: TOBJECT; var Key: char);

begin if not (Key in ["0".."9",#8]) then key:=#0;

end;

procedure TFORM2.Edit2KEYPRESS(Sender: TOBJECT; var Key: char);

begin if not (Key in ["0".."9",#8]) then key:=#0;

end;

procedure TFORM2.Edit3KEYPRESS(Sender: TOBJECT; var Key: char);

begin if not (Key in ["0".."9",#8]) then key:=#0;

end;

procedure TFORM2.Edit4KEYPRESS(Sender: TOBJECT; var Key: char);

begin if not (Key in ["0".."9",#8]) then key:=#0;

end;

procedure TFORM2.FORMCLOSEQUERY(Sender: TOBJECT; var CANCLOSE: boolean);

begin if MESSAGEDLG("Вы точно хотите выйти?", MTCONFIRMATION, [MBYES, MBNO], 0) = MRNO then

CANCLOSE:=false else

If ( Edit1.text"" )or ( Edit2.text"" )or (Edit3.text"" ) then begin

SHOWMESSAGE("Имеется не записанный номер");

Edit1.SETFOCUS;

CANCLOSE:=false;

end ;

If CANCLOSE then

Application.Terminate; end;

procedure TFORM2.FORMCREATE(Sender: TOBJECT);

begin i:=1;

j:=1;

Application.Title:="Телефонная база";

end;

procedure TFORM2.FORMSHOW(Sender: TOBJECT);

var next1:boolean;

begin

Chart1.visible:=true;

FILELOCATION:="";

if MESSAGEDLG("Открыть файл для работы с данными?", MTCONFIRMATION, [MBYES, MBNO], 0) = MRYES then begin

STRINGGRID1.ROWCOUNT:=1;

if OPENDIALOG1.Execute then begin

FILELOCATION:= OPENDIALOG1.FILENAME end else

FILELOCATION:= "Tablica1.txt";

end else

FILELOCATION:= "Tablica1.txt";

next1:= LOADDATAINGRID(WIDESTRING(Utf8TOSYS(FILELOCATION)), STRINGGRID1) ;

Grafik(STRINGGRID1,Chart1PIESERIES1) ;

if not next1 then begin

SHOWMESSAGE("Выбран неверный файл, пожалуйста выберите другой");

Chart1.visible:=false;

end;

end;

procedure TFORM2.MENUITEM10Click(Sender: TOBJECT);

var next1:boolean;

begin stringgrid2.rowcount:=1;

next1:=true;

if FILEEXISTS(WIDESTRING(Utf8TOSYS(FILELOCATION))) then begin next1:= LOADDATAINGRID(WIDESTRING(Utf8TOSYS(FILELOCATION)), STRINGGRID1) ;

Grafik(STRINGGRID1,Chart1PIESERIES1);

end else next1:= false;

if not next1 then

SHOWMESSAGE("Выбран неверный файл, пожалуйста выберите другой");

end;

procedure TFORM2.MENUITEM11Click(Sender: TOBJECT);

var i: Integer;

s:string;

begin if SAVEDIALOG1.Execute then begin for i:=1 to STRINGGRID1.ROWCOUNT-1 do s:= s (STRINGGRID1.Cells[0, i] "|" STRINGGRID1.Cells[1, i] "|" STRINGGRID1.Cells[2, i] "|" STRINGGRID1.Cells[3, i] #13#10);

ADDNUMBER(WIDESTRING(Utf8TOSYS(SAVEDIALOG1.FILENAME)), s #13#10);

end;

end;

procedure TFORM2.MENUITEM12Click(Sender: TOBJECT);

var i,j:integer;

begin if MESSAGEDLG("Вы точно хотите удалить содержимое файла?", MTCONFIRMATION, [MBYES, MBNO], 0) = MRYES then

Chart1.visible:=false;

STRINGGRID1.ROWCOUNT:=1;

STRINGGRID2.ROWCOUNT:=1;

for i:=1 to STRINGGRID1.ROWCOUNT-1 do for j:=0 to STRINGGRID1.COLCOUNT-1 do

STRINGGRID1.cells[j,i]:="" ;

for i:=1 to STRINGGRID2.ROWCOUNT-1 do for j:=0 to STRINGGRID2.COLCOUNT-1 do

STRINGGRID2.cells[j,i]:="";

end;

procedure TFORM2.MENUITEM13Click(Sender: TOBJECT);

begin

Edit1.SETFOCUS;

Edit1.clear;

Edit2.clear;

Edit3.clear;

end;

procedure TFORM2.MENUITEM14Click(Sender: TOBJECT);

begin

MESSAGEDLG("Поля служат для введения информации о пользователях",MTINFORMATION, [MBOK], 0);

end;

procedure TFORM2.MENUITEM15Click(Sender: TOBJECT);

begin

MESSAGEDLG("Таблица выводит информацию о пользовательях АТС",MTINFORMATION, [MBOK], 0);

end;

procedure TFORM2.MENUITEM16Click(Sender: TOBJECT);

var i,j:integer;

begin stringgrid2.rowcount:=1;

for i:=1 to STRINGGRID2.ROWCOUNT-1 do for j:=0 to STRINGGRID2.COLCOUNT-1 do

STRINGGRID2.cells[j,i]:="" end;

procedure TFORM2.MENUITEM17Click(Sender: TOBJECT);

begin

MESSAGEDLG("Таблица показывает информацию о должниках",MTINFORMATION, [MBOK], 0);

end;

procedure TFORM2.MENUITEM3Click(Sender: TOBJECT);

var next1:boolean;

begin stringgrid2.rowcount:=1;

next1:=true;

if FILEEXISTS(WIDESTRING(Utf8TOSYS(FILELOCATION))) then begin next1:= LOADDATAINGRID(WIDESTRING(Utf8TOSYS(FILELOCATION)), STRINGGRID1) ;

Grafik(STRINGGRID1,Chart1PIESERIES1);

end else next1:= false;

if not next1 then

SHOWMESSAGE("Выбран неверный файл, пожалуйста выберите другой");

end;

procedure TFORM2.MENUITEM2Click(Sender: TOBJECT);

var i: Integer;

s:string;

begin if SAVEDIALOG1.Execute then begin for i:=1 to STRINGGRID1.ROWCOUNT-1 do s:= s (STRINGGRID1.Cells[0, i] "|" STRINGGRID1.Cells[1, i] "|" STRINGGRID1.Cells[2, i] "|" STRINGGRID1.Cells[3, i] #13#10);

ADDNUMBER(WIDESTRING(Utf8TOSYS(SAVEDIALOG1.FILENAME)), s #13#10);

end;

end;

procedure TFORM2.MENUITEM6Click(Sender: TOBJECT);

begin if FONTDIALOG1.Execute then begin

STRINGGRID1.Font.Assign(FONTDIALOG1.Font);

STRINGGRID2.Font.Assign(FONTDIALOG1.Font);

end;

end;

procedure TFORM2.MENUITEM7Click(Sender: TOBJECT);

var next1:boolean;

begin

Chart1.visible:=true;

FILELOCATION:="";

if MESSAGEDLG("Открыть файл для работы с данными?", MTCONFIRMATION, [MBYES, MBNO], 0) = MRYES then begin

STRINGGRID1.ROWCOUNT:=1;

STRINGGRID2.ROWCOUNT:=1;

if OPENDIALOG1.Execute then begin

FILELOCATION:= OPENDIALOG1.FILENAME;

Chart1.visible:=true;

next1:= LOADDATAINGRID(WIDESTRING(Utf8TOSYS(FILELOCATION)), STRINGGRID1) ;

Grafik(STRINGGRID1,Chart1PIESERIES1) end else

FILELOCATION:= "Tablica1.txt";

end else

FILELOCATION:= "Tablica1.txt";

if not next1 then begin

Chart1.visible:=false;

SHOWMESSAGE("Выбран неверный файл, пожалуйста выберите другой");

end;

end;

procedure TFORM2.MENUITEM8Click(Sender: TOBJECT);

begin

MESSAGEDLG("Программа автоматически сохраняет вносимые номера " #13#10,MTINFORMATION, [MBOK], 0);

end;

procedure TFORM2.MENUITEM9Click(Sender: TOBJECT);

var da,x:integer;

begin da:=1;

for a:=STRINGGRID1.FIXEDROWS to STRINGGRID1.ROWCOUNT-1 do if strtoint(stringgrid1.cells[3,a])<0 then begin inc(da);

STRINGGRID2.ROWCOUNT:=da;

end;

if da=1 then

SHOWMESSAGE("Должников нет");

x:=1;

for a:=STRINGGRID1.FIXEDROWS to STRINGGRID1.ROWCOUNT-1 do begin

If STRINGGRID1.Cells[3,a]="" then break else if STRTOINT(STRINGGRID1.Cells[3,a]) < 0 then begin

STRINGGRID2.Cells[0, x]:=STRINGGRID1.Cells[0,a];

STRINGGRID2.Cells[1, x]:=STRINGGRID1.Cells[1,a];

STRINGGRID2.Cells[2, x]:=STRINGGRID1.Cells[2,a];

STRINGGRID2.Cells[3,x]:=STRINGGRID1.Cells[3,a];

x:=x 1;

end;

end;

end;

procedure TFORM2.STRINGGRID1Click(Sender: TOBJECT);

begin spisok(STRINGGRID1);

end;

procedure TFORM2.TOOLBUTTON1Click(Sender: TOBJECT);

var next1:boolean;

begin

Chart1.visible:=true;

FILELOCATION:="";

if MESSAGEDLG("Открыть файл для работы с данными?", MTCONFIRMATION, [MBYES, MBNO], 0) = MRYES then begin

STRINGGRID1.ROWCOUNT:=1;

STRINGGRID2.ROWCOUNT:=1;

if OPENDIALOG1.Execute then begin

FILELOCATION:= OPENDIALOG1.FILENAME;

Chart1.visible:=true;

next1:= LOADDATAINGRID(WIDESTRING(Utf8TOSYS(FILELOCATION)), STRINGGRID1) ;

Grafik(STRINGGRID1,Chart1PIESERIES1) end else

FILELOCATION:= "Tablica1.txt";

end else

FILELOCATION:= "Tablica1.txt";

if not next1 then begin

Chart1.visible:=false;

SHOWMESSAGE("Выбран неверный файл, пожалуйста выберите другой");

end;

end;

procedure TFORM2.TOOLBUTTON3Click(Sender: TOBJECT);

var i: Integer;

s:string;

begin if SAVEDIALOG1.Execute then begin for i:=1 to STRINGGRID1.ROWCOUNT-1 do s:= s (STRINGGRID1.Cells[0, i] "|" STRINGGRID1.Cells[1, i] "|" STRINGGRID1.Cells[2, i] "|" STRINGGRID1.Cells[3, i] #13#10);

ADDNUMBER(WIDESTRING(Utf8TOSYS(SAVEDIALOG1.FILENAME)), s #13#10);

end;

end;

procedure TFORM2.TOOLBUTTON5Click(Sender: TOBJECT);

begin

MESSAGEDLG("Программа автоматически сохраняет вносимые номера " #13#10,MTINFORMATION, [MBOK], 0);

end;

procedure TFORM2.TOOLBUTTON7Click(Sender: TOBJECT);

begin close;

end;

end.

Модуль заставки unit Unit3;

{$mode objfpc}{$H } interface uses

Classes, SYSUTILS, FILEUTIL, Forms, Controls, Graphics, Dialogs, EXTCTRLS, COMCTRLS;

type

{ TFORM3 }

TFORM3 = class(TFORM)

Image1: TIMAGE;

PROGRESSBAR1: TPROGRESSBAR;

Timer1: TTIMER;

procedure FORMCREATE(Sender: TOBJECT);

procedure Image1Click(Sender: TOBJECT);

procedure Timer1Timer(Sender: TOBJECT);

private

{ private declarations } public

{ public declarations } end;

var

Form3: TFORM3;

i:integer;

implementation uses unit2;

{$R *.lfm}

{ TFORM3 } procedure TFORM3.Timer1Timer(Sender: TOBJECT);

begin

Inc(i);

PROGRESSBAR1.Position:=PROGRESSBAR1.Position 1;

if i=110 then

Begin

Form3.Hide;

Form2.Show;

End;

end;

procedure TFORM3.FORMCREATE(Sender: TOBJECT);

begin i:=0;

end;

end.

Размещено на .ru
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?