Краткое описание открытого кода приложения с подробными пояснениями и рекомендациями
program FileManager;
используемые подключенные модули
uses media, fsafm, parse, canvas, beta, safeload, proweb, rms,
font32, gui32, line32, png3, im, vscroll, memclean, resloader;
media
Lib_media библиотека для захвата видео ифото с камеры телефона
fsafm
доступ к чтению файловой системы в текстовом виде
parse
Lib_parse разборка данных по шаблону в массив
canvas
Lib_canvas помещение изображения в канву и манипуляция им
beta
Lib_beta Перенаправление вывода [в картинку] или [на дисплей]
safeload
Lib_safeload Безопасная загрузка изображений извне в приложение
proweb
Lib_proweb доступ к веб связи вся
rms
Lib_rms манипулирование ресурсами удаление и модийфикация
font32
Lib_font32 загрузка шрифтов из графических файлов
gui32
Lib_gui32 формирование всплывающих окон с набором полей
line32
Lib_line32 горизонтальное виндовое меню
png3
Lib_png3 запись в файл принятого или сформированного изображения
im
Lib_im Загрузка прямая изображений по HTTP
vscroll
Lib_vscroll скролинг боковой вертикальный в окне gui32
memclean
Lib_memclean оценка выделяемой памяти
resloader
Lib_resloader Экономная загрузка ресурсов
Const
url='http://aviatablo.orgfree.com/baton.php';
key_sensitivity = 10; // Чувствительность клавиш принажатии
массив вида
aaa='arbuz*Арбуз*1кг*50**#arbuz*Арбуз*1кг*50**#.....#chaiR*Чай ';
Функция удаления мусор если он подцепился при выводе из ресурса
////////////////////////////////////////////////////////////
Function bbb(name:string):string;
var ss,a,aa:string;
i,n:integer;
Begin
aa:='~@^.,_-#1234567890*qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM';
n:=length(name)-1;
ss:='';
for i:= 0 to n do
begin
a:=getChar(name,i);
if (pos(aa,a)>-1) then
ss:=ss+a;
end;
bbb:=ss;
//bbb:=copy(name,2,length(name));
End;
Еще одна Функция удаления мусор если он подцепился при выводе из ресурса
////////////////////////////////////////////////////////////
Function bb22(name:string):string;
var ss,a,aa:string;
i,n:integer;
Begin
aa:='#1234567890.,_-*qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM';
n:=length(name)-1;
ss:='';
for i:= 0 to n do
begin
a:=getChar(name,i);
if (pos(aa,a)>-1) then
ss:=ss+a;
end;
bb22:=ss;
//bbb:=copy(name,2,length(name));
End;
////////////////////////////////////////////////////////////
Остановка пока клавишу не отпустишь
procedure stop_none; // Остановка пока клавишу не отпустишь
Begin
while ((key<>GA_NONE) and (GetKeyPressed<>-6) and (GetKeyPressed<>-7)) do begin key:=KeyToAction(GetKeyPressed); delay(50); end;
End;
////////////////////////////////////////////////////////////
Пример очистки экрана
procedure blak_scrin; // Очистка экрана
Begin
SetColor(0, 0, 0); FillRect(0, 0, GetWidth, GetHeight); // Очистка экрана
{
// ------------------------------- Установка шрифтов --------------------------------
font32.init(1);
Font(0); LoadFont('Verdana_7b');
DrawString('<-забой', 5, (getHeight-30));
// ------------------------------- Установка окна (не пластикового :-D ) --------------------------------
gui32.init;
SetSkin(LoadImage('/main.png')); // Загружаем скин
CaptionAlign(1); // Выравнивание заголовка окна
SetWindow(0, 0, GetWidth, GetHeight, 'Блокнот'); // Задаем окно
ShowWindow; // Отрисовка окна
i:=Format('Привет', 0); // Вывод текста в окно (заметьте, мы его не задаем)
DrawTextWindow; // Отрисовка текста
}
end;
////////////////////////////////////////////////////////////
procedure blak_scrin_2; // Очистка экрана
Begin
//SetColor(0, 0, 0); FillRect(0, 0, GetWidth, GetHeight); // Очистка экрана
{
// ------------------------------- Установка шрифтов --------------------------------
font32.init(1);
Font(0); LoadFont('Verdana_7b');
}
// ------------------------------- Установка окна (не пластикового :-D ) --------------------------------
gui32.init;
SetSkin(LoadImage('/main4.png')); // Загружаем скин
CaptionAlign(1); // Выравнивание заголовка окна
SetWindow(0, 0, GetWidth, GetHeight, 'Карзина'); // Задаем окно
ShowWindow; // Отрисовка окна
// i:=Format('Привет', 0); // Вывод текста в окно (заметьте, мы его не задаем)
// DrawTextWindow; // Отрисовка текста
drawImage(loadImage('/cube.png'), 5, GetHeight-25);
drawImage(loadImage('/error.png'), GetWidth-30, GetHeight-25);
end;
Общая пауза перед выполнением
////////////////////////////////////////////////////////////
procedure repaint_delay; Begin repaint; delay(key_sensitivity); end;
////////////////////////////////////////////////////////////
Вид кнопки стартового и другоро меню
procedure key_start_menu(text:string; xx,yy,col:integer);
var w:integer;
Begin // Полукруглые кнопки стартового меню
//w:=GetWidth;
w:=110;
SetColor(col, col, col);
fillRoundRect(xx, yy, (w-xx*2), 20, 18, 18);
SetColor(0, 0, 250);
fillEllipse(xx+3, yy+3, 16, 16);
drawRoundRect(xx, yy, (w-xx*2), 20, 18, 18);
SetColor(250, 250, 250);
{
font32.init(1);
Font(0); LoadFont('Verdana_7b');
}
DrawString(text, (xx+30), (yy+4));
end;
////////////////////////////////////////////////////////////
Моя удобная функция парсинга
Function parser_mayn(str,aaa:string;n:integer):string;
var str2:string;
iii, iiii, nn :integer;
begin
//////
nn:=(length(str)-1);
str2:='';
iiii:=0;
for iii:= 0 to nn do
begin
if getChar(str,iii)=aaa then iiii:=iiii+1;
else
begin
if iiii=n then str2:=str2+getChar(str,iii);
end;
end;
//////
parser_mayn:=str2;
end;
////////////////////////////////////////////////////////////
Стартовое меню
procedure start_menu; //Стартовая страница
var w,h:integer; img:image;
dos,zakaz,con:integer;
s1,name,tel:string;
rs:RecordStore;
const dy=40;
Begin // Переключалка стрелки
rs:=OpenRecordStore('dostavka');
dos:=getRecordStoreSize(rs);
CloseRecordStore(rs);
rs:=OpenRecordStore('zakaz');
zakaz:=getRecordStoreSize(rs);
CloseRecordStore(rs);
rs:=OpenRecordStore('contakt');
con:=getRecordStoreSize(rs);
CloseRecordStore(rs);
rs:=OpenRecordStore('autor');
s1:=readRecordStoreEntry(rs,1);
CloseRecordStore(rs);
blak_scrin;
img:=loadImage('/win.png');
w:=getImageWidth(img);
drawImage(img, (GetWidth-w)/2, 5);
if i>4 then i:=-1;
if i<-1 then i:=4;
if i=-1 then key_start_menu('АВТОР',5, (40+dy+25*(-1)),150); else key_start_menu('АВТОР',5, (40+dy+25*(-1)),50);
if i=0 then key_start_menu('КАТАЛОГ',5, (40+dy+25*0),150); else key_start_menu('КАТАЛОГ',5, (40+dy+25*0),50);
if i=1 then key_start_menu('ЗАКАЗЫ '+zakaz,5, (40+dy+25*1),150); else key_start_menu('ЗАКАЗЫ '+zakaz,5, (40+dy+25*1),50);
if i=2 then key_start_menu('КОНТАКТЫ '+con,5,(40+dy+25*2),150); else key_start_menu('КОНТАКТЫ '+con,5,(40+dy+25*2),50);
if i=3 then key_start_menu('ДОСТАВКА '+dos,5,(40+dy+25*3),150); else key_start_menu('ДОСТАВКА '+dos,5,(40+dy+25*3),50);
if i=4 then key_start_menu('СВЯЗЬ',5, (40+dy+25*4),150); else key_start_menu('СВЯЗЬ',5, (40+dy+25*4),50);
name:=parser_mayn(s1,'*',0);
tel:=parser_mayn(s1,'*',1);
DrawString(name,115,50);
DrawString(tel,115,70);
DrawString('http://aviatablo.orgfree.com',5,getHeight-30);
drawImage(loadImage('/arrow.png'), 15, (22+25+dy+i*25));
repaint_delay;
end;
////////////////////////////////////////////////////////////
Управление кнопками стартового меню
procedure start_menu_2; //Стартовая страница
Begin // бесконечный цикл стартовой страницы
i:=0;
ii:=0;
repeat
start_menu;
key:=KeyToAction(GetKeyPressed);
if key=GA_NONE then begin ii:=0; end;
if (key=GA_DOWN) and (ii=0) then begin i:=i+1; ii:=1; end;
if (key=GA_UP) and (ii=0) then begin i:=i-1; ii:=1; end;
delay(50);
until key=GA_FIRE;
regim:=i;
end;
////////////////////////////////////////////
Вывод одной единици товара на экран
procedure xxyy(name1:string;ix,iy:integer;y,z:string); //Поквадратный вывод
var yy:integer;im,imsss:image;name:string;
w,h:integer;
zak,a1,a2:string;
const dy=10;
Begin
w:=GetWidth;
h:=GetWidth;
name:=parser_mayn(name1,'*',0);
im:=loadImage('/'+name+'.png');
if z='n' then
imsss:=loadImage('/darkredIcon.png');
else
imsss:=loadImage('/greenIcon.png');
yy:=getImageWidth(im)/2;
if (y='y') then
drawImage(imsss, (ix*(w-80)/2), (5+dy+iy*(h-80)/2));
else
drawImage(loadImage('/darkBlueIcon.png'), (ix*(w-80)/2), (5+dy+iy*(h-80)/2));
drawImage(loadImage('/'+name+'.png'), ((ix*(w-80)/2)+(40-yy)), (20+dy+iy*(h-80)/2));
{
font32.init(1);
Font(0); LoadFont('Verdana_7');
}
//a1:=''+pos(zakaz, name);
zak:='0';
if pos(zakaz, name)>-1 then
begin
a2:=copy(zakaz,pos(zakaz,name),length(zakaz));
a1:=parser_mayn(a2,'*',1);
a2:=parser_mayn(a1,'#',0);
zak:=a2;
end;
if (y='y') then
begin
SetColor(59, 59, 59);
fillRect(0, (GetHeight-50), GetWidth, 15);
DrawString(parser_mayn(name1,'*',1)+' '+parser_mayn(name1,'*',2)+' '+parser_mayn(name1,'*',3)+' рублей', 5, (GetHeight-50));
end;
if z='y' then
begin
DrawString(name+' '+zak, ((ix*(w-80)/2)+(40-20)), (35+dy+iy*(h-80)/2));
end;
else
begin
if stringToInteger(zak)>0 then
begin
SetColor(250, 0, 0);
fillEllipse(((ix*(w-80)/2)+(40-25)), (55+dy+iy*(h-80)/2), 18, 18);
DrawString(''+zak, ((ix*(w-80)/2)+(40-20)), (57+dy+iy*(h-80)/2));
end;
end;
if length(parser_mayn(name1,'*',4))>1 then
begin
im:=loadImage('/'+parser_mayn(name1,'*',4)+'.png');
drawImage(im, ((ix*(w-80)/2)+(40-26)), (17+dy+iy*(h-80)/2));
end;
end;
////////////////////////////////////////////
Накрутка цифр при заказе
procedure zakk(aa:string;kk:integer); //ПЛЮС МИНУС
var name:string;
a1,a2,a22,a24:string;
Begin
name:=parser_mayn(aa,'*',0);
if pos(zakaz, name)>-1 then
begin
a1:=copy(zakaz,0,pos(zakaz,name)+length(name));
a2:=copy(zakaz,pos(zakaz,name)+length(name),length(zakaz));
a22:=copy(a2,1,pos(a2,'#'));
if (stringToInteger(a22)+kk)>-1 then a22:=''+(stringToInteger(a22)+kk);
a24:=copy(a2,pos(a2,'#'),length(a2));
zakaz:=a1+'*'+a22+a24;
end;
else
begin
zakaz:=zakaz+name+'*1#'
end;
end;
////////////////////////////////////////////
Управление накруткой цифр
procedure plus_minus(a3,a4,a5:string); //ПЛЮС МИНУС
var aa:string;
www:integer;
Begin
{
font32.init(1);
Font(0); LoadFont('Verdana_7b');
}
//DrawString('text'+iii, 30, 40);
if iii=0 then aa:=a3;
if iii=1 then aa:=a4;
if iii=2 then aa:=a5;
xxyy(aa,1,iii,'y','y');
repaint_delay;
// СТОП ПОКА НЕ ОТПУСТИШ КЛАВИШУ
//while (key<>GA_NONE) do begin key:=KeyToAction(GetKeyPressed); delay(50); end;
delay(500);
key:=KeyToAction(GetKeyPressed);
// СТОП ПОКА НЕ ПОДТВЕРДИШ ЗАКАЗ
www:=1;
//while (key<>GA_FIRE) do
while (www=1) do
begin
key:=KeyToAction(GetKeyPressed);
if (key=GA_DOWN) then begin zakk(aa,-1); xxyy(aa,1,iii,'y','y'); repaint_delay; end;
if (key=GA_UP) then begin zakk(aa,1); xxyy(aa,1,iii,'y','y'); repaint_delay; end;
if (key=GA_FIRE) or (key=GA_RIGHT) or (key=GA_LEFT) then begin www:=0; end;
delay(50);
end;
End;
////////////////////////////////////////////
Полный каталог товаров из каталога
procedure katalog; //КАТАЛОГ
var a0,a1,a2,a3,a4,a5,a6,a7,a8,name:string;
Begin //
blak_scrin_2;
//SetColor(250, 250, 250);
line(aaa,'#');
i:=0;
ii:=0;
iii:=0;
repeat
a0:=parse.get(0+i);
a1:=parse.get(1+i);
a2:=parse.get(2+i);
a3:=parse.get(3+i);
a4:=parse.get(4+i);
a5:=parse.get(5+i);
a6:=parse.get(6+i);
a7:=parse.get(7+i);
a8:=parse.get(8+i);
xxyy(a0,0,0,'n','n');
xxyy(a1,0,1,'n','n');
xxyy(a2,0,2,'n','n');
if(iii=0) then xxyy(a3,1,0,'y','n'); else xxyy(a3,1,0,'n','n');
if(iii=1) then xxyy(a4,1,1,'y','n'); else xxyy(a4,1,1,'n','n');
if(iii=2) then xxyy(a5,1,2,'y','n'); else xxyy(a5,1,2,'n','n');
xxyy(a6,2,0,'n','n');
xxyy(a7,2,1,'n','n');
xxyy(a8,2,2,'n','n');
// СТОП ПОКА НЕ НАЖМЕШ КЛАВИШУ
key:=KeyToAction(GetKeyPressed);
//while (key=GA_NONE) do begin key:=KeyToAction(GetKeyPressed); delay(50); end;
//if key=GA_NONE then begin ii:=0; end;
if (key=GA_RIGHT) and (ii=0) then begin i:=i+3; ii:=0; if(i>(kolas)) then i:=0; end;
if (key=GA_LEFT) and (ii=0) then begin i:=i-3; ii:=0; if(i<0) then i:=(kolas); end;
if (key=GA_DOWN) and (ii=0) then begin iii:=iii+1; ii:=0; if(iii>2) then iii:=0; end;
if (key=GA_UP) and (ii=0) then begin iii:=iii-1; ii:=0; if(iii<0) then iii:=2; end;
if (key=GA_FIRE) then begin plus_minus(a3,a4,a5); end;
if (GetKeyPressed=-7) then regim:=5;
if (GetKeyPressed=-6) then regim:=6;
repaint_delay;
//while (key=GA_NONE) do begin key:=KeyToAction(GetKeyPressed); delay(50); end;
//while (key<>GA_NONE) do begin key:=KeyToAction(GetKeyPressed); delay(50); end;
until regim<>0;
end;
////////////////////////////////////////////////////////////
Просмотр набранного или выбранного заказа
procedure zakaz_nabr(ih:integer); //НАБРАННЫЙ ЗАКАЗ
var
n,nn,sum,sum_all:integer;
a1,a2,a3,a4,a5,a6,a7,a8:string;
im:image;
Begin //
sum_all:=0;
nn:=0;
//gui32.init;
//SetSkin(LoadImage('/main4.png')); // Загружаем скин
//CaptionAlign(1); // Выравнивание заголовка окна
SetWindow(0, 0, GetWidth, GetHeight, 'Набранный заказ'); // Задаем окно
ShowWindow; // Отрисовка окна
a1:=zakaz;
//a1:=copy(zakaz,0,(length(zakaz)-1));
//DrawString(zakaz, 5, 30);
while length(a1)>1 do
begin
//DrawString(a1, 5, 30+nn);
a2:=parser_mayn(a1,'#',0);
a3:=parser_mayn(a2,'*',0);
a4:=parser_mayn(a2,'*',1);
//if(length(a4)>0) then
if(stringToInteger(a4)>0) then
begin
a5:=copy(aaa,pos(aaa,a3),length(aaa));
a6:=parser_mayn(a5,'*',1);
a7:=parser_mayn(a5,'*',2);
a8:=parser_mayn(a5,'*',3);
im:=loadImage('/'+a3+'.png');
sum:=stringToInteger(a4)*stringToInteger(a8);
sum_all:=sum_all+sum;
if ((25+nn+ih)>0) and ((25+nn+ih+50)<GetHeight) then
begin
DrawString(a6+' '+a4+'*'+a7+'*'+a8+'р='+sum+'р', 5, (25+nn+ih));
for n:= 0 to stringToInteger(a4)-1 do
drawImage(im, (5+n*30), (40+nn+ih));
end;
nn:=nn+65;
end;
if((pos(a1,a2)+length(a2)+1+2)<length(a1)) then
begin
a1:=copy(a1,(pos(a1,a2)+length(a2)+1),length(a1));
end;
else
a1:='';
end;
if (prok<>0) and (ih>-5) then begin prok:=-prok; speed:=90; end;
if((25+nn+ih)>GetHeight-35) then iii:=10; else begin iii:=0; if (prok<>0) then begin prok:=-prok; speed:=90; end; end;
DrawString('Сумма: '+sum_all+'руб.', 5, (25+nn+ih));
drawImage(loadImage('/cube.png'), 5, GetHeight-25);
drawImage(loadImage('/error.png'), GetWidth-30, GetHeight-25);
// if (GetKeyPressed=-7) then regim:=5;
end;
////////////////////////////////////////////////////////////
Переползание и управление листом набранного товара
procedure zakaz_nabr_2; //НАБРАННЫЙ ЗАКАЗ
Begin
ih:=0;
speed:=0;
prok:=0;
while (GetKeyPressed<>KE_NONE) do begin key:=KeyToAction(GetKeyPressed); delay(50); end;
repeat
key:=KeyToAction(GetKeyPressed);
if (key=GA_FIRE) then prok:=1;
if (prok=1) or (prok=-1) then begin ih:=ih+prok*(20+speed); speed:=speed+15; if speed>90 then speed:=90; if ih>0 then ih:=0; end;
if (key=GA_UP) then begin ih:=ih+20+speed; speed:=speed+15; if speed>90 then speed:=90; if ih>0 then ih:=0; end;
if (key=GA_DOWN) and (iii=10) then begin prok:=0; ih:=ih-20+speed; speed:=speed-15; if speed<-90 then speed:=-90; end;
if (GetKeyPressed=KE_NONE)then begin if (prok=0) then speed:=0; end;
zakaz_nabr(ih);
if (GetKeyPressed=-7) then regim:=5;
if (GetKeyPressed=-6) then regim:=7;
repaint_delay;
until regim<>6;
end;
////////////////////////////////////////////////////////////
Сохранение заказа в ресурсный файл
procedure save_zakaz; //Сохранение заказа
var rs:RecordStore;
Begin
{
gui32.init;
SetSkin(LoadImage('/main4.png')); // Загружаем скин
CaptionAlign(1); // Выравнивание заголовка окна
SetWindow(0, 0, GetWidth, GetHeight, 'Сохранение заказа'); // Задаем окно
ShowWindow; // Отрисовка окна
}
rs:=OpenRecordStore('zakaz');
//i:=AddString(rs, bbb(zakaz));
i:=AddString(rs, '!'+zakaz+'!');
CloseRecordStore(rs); // Закрываем хранилище
//stop_none;
while (GetKeyPressed=-6) do begin delay(1000); end;
//regim:=5;
regim:=1;
end;
////////////////////////////////////////////////////////////
Список сохраненных заказов
procedure zakaz_spisok; //Список заказов
var rs:RecordStore;
dy:integer;
s1,s2:string;
Begin
dy:=0;
stop_none;
repeat
gui32.init;
SetSkin(LoadImage('/main4.png')); // Загружаем скин
CaptionAlign(1); // Выравнивание заголовка окна
SetWindow(0, 0, GetWidth, GetHeight, 'Список заказов'); // Задаем окно
ShowWindow; // Отрисовка окна
rs:=OpenRecordStore('zakaz');
num:=getRecordStoreSize(rs);
for i:= 1 to num do
begin
s2:=readRecordStoreEntry(rs,i);
s1:=parser_mayn(s2,'!',1);
//s1:=bbb(readRecordStoreEntry(rs,i));
DrawString(s1, 5, 20+i*15);
if pos(s1,'~')>0 then
begin
setColor(0,250,0);
fillEllipse(GetWidth-40, (20+i*15), 10, 10);
if pos(s1,'^')<0 then setColor(250,0,0);
fillEllipse(GetWidth-20, (20+i*15), 10, 10);
end;
end;
CloseRecordStore(rs); // Закрываем хранилище
key:=KeyToAction(GetKeyPressed);
if (key=GA_UP) then begin dy:=dy-1; if dy<0 then dy:=0; end;
if (key=GA_DOWN) then begin dy:=dy+1; if dy>(num-1) then dy:=(num-1); end;
if (GetKeyPressed=-7) then begin regim:=5; zakaz:=''; end;
if (GetKeyPressed=-6) then begin regim:=8; i:=0; iii:=dy+1; end;
{
if (key=GA_FIRE) then
begin
rs:=OpenRecordStore('zakaz');
//zakaz:=bbb(readRecordStoreEntry(rs,(dy+1)));
zakaz:=parser_mayn(readRecordStoreEntry(rs,(dy+1)),'!',1);
CloseRecordStore(rs); // Закрываем хранилище
regim:=0;
DrawString(zakaz, 5, 60);
stop_none;
end;
}
drawImage(loadImage('/arrow.png'), 15, (40+15*dy));
//кнопки
drawImage(loadImage('/about.png'), 5, GetHeight-25);
//drawImage(loadImage('/foto.png'), GetWidth/2-12, GetHeight-25);
drawImage(loadImage('/error.png'), GetWidth-30, GetHeight-25);
repaint_delay;
stop_none;
until regim<>1;
//кнопки
end;
////////////////////////////////////////////////////////////
что делать с выбранным сохраненным заказом
procedure zakaz_vopros; //Список заказов
var
s1,s2:string;
rs:RecordStore;
const dy=40;
Begin
stop_none;
repeat
gui32.init;
SetSkin(LoadImage('/main4.png')); // Загружаем скин
CaptionAlign(1); // Выравнивание заголовка окна
SetWindow(0, 0, GetWidth, GetHeight, 'Что делать с заказом '+iii); // Задаем окно
ShowWindow; // Отрисовка окна
if i>3 then i:=0;
if i<0 then i:=3;
if i=0 then key_start_menu('ОТПР. SMS',5,(15+dy+25*0),150); else key_start_menu('ОТПР. SMS',5,(15+dy+25*0),50);
if i=1 then key_start_menu('ОТПР. WEB',5,(15+dy+25*1),150); else key_start_menu('ОТПР. WEB',5,(15+dy+25*1),50);
if i=2 then key_start_menu('УДАЛИТЬ',5, (15+dy+25*2),150); else key_start_menu('УДАЛИТЬ',5, (15+dy+25*2),50);
if i=3 then key_start_menu('ПРОСМОТР',5, (15+dy+25*3),150); else key_start_menu('ПРОСМОТР',5, (15+dy+25*3),50);
drawImage(loadImage('/arrow.png'), 15, (22+dy+i*25));
key:=KeyToAction(GetKeyPressed);
if (key=GA_UP) then begin i:=i-1; end;
if (key=GA_DOWN) then begin i:=i+1; end;
if (GetKeyPressed=-7) then begin regim:=5; zakaz:=''; end;
if (key=GA_FIRE) then
begin
if i=0 then regim:=9; //Отрпавка СМС
if i=1 then regim:=10; //Отрпавка ВЕБ+СМС
if i=2 then regim:=11; //Удаление заказа
if i=3 then
begin
rs:=OpenRecordStore('zakaz');
s1:=readRecordStoreEntry(rs,iii);
s2:=parser_mayn(s1,'!',1);
zakaz:=s2;
CloseRecordStore(rs);
regim:=6;
end;//Просмотр заказа
end;
stop_none;
//кнопки
drawImage(loadImage('/error.png'), GetWidth-30, GetHeight-25);
repaint_delay;
until regim<>8;
end;
////////////////////////////////////////////////////////////
Удаление выбранного заказа
procedure zakaz_del; //Удаление заказа
var rs,rs1:RecordStore;
s1,s2:string;
Begin
deleteRecordStore('text');
rs1:=OpenRecordStore('text');
rs:=OpenRecordStore('zakaz');
num:=getRecordStoreSize(rs);
for i:= 1 to num do
begin
s1:=readRecordStoreEntry(rs,i);
s2:=parser_mayn(s1,'!',1);
ii:=AddString(rs1, '!'+s2+'!');
//ii:=AddString(rs1, bbb(readRecordStoreEntry(rs,i)));
end;
CloseRecordStore(rs);
CloseRecordStore(rs1);
/////
deleteRecordStore('zakaz');
rs1:=OpenRecordStore('text');
rs:=OpenRecordStore('zakaz');
num:=getRecordStoreSize(rs1);
for i:= 1 to num do
begin
if(i<>iii) then
begin
s1:=readRecordStoreEntry(rs1,i);
s2:=parser_mayn(s1,'!',1);
ii:=AddString(rs, '!'+s2+'!');
//ii:=AddString(rs, bbb(readRecordStoreEntry(rs1,i)));
end;
end;
CloseRecordStore(rs);
CloseRecordStore(rs1);
{
DrawString(''+iii, 5, 60);
repaint_delay;
stop_none;
delay(5000);
}
regim:=1;
end;
////////////////////////////////////////////////////////////
Отправка выбранного заказа по смс
procedure zakaz_sms; //regim=9 отправказаказа смс
var rs,rs1:RecordStore;
a1,a2,a3,a4,a5,a6,a7,a8,rrr,nomer:string;
sum,sum_all:integer;
s1,s2:string;
Begin
rrr:='';
rs:=OpenRecordStore('zakaz');
s1:=readRecordStoreEntry(rs,iii);
s2:=parser_mayn(s1,'!',1);
a1:=s2;
//a1:=bbb(readRecordStoreEntry(rs,iii));
CloseRecordStore(rs);
while length(a1)>1 do
begin
a2:=parser_mayn(a1,'#',0);
a3:=parser_mayn(a2,'*',0);
a4:=parser_mayn(a2,'*',1);
if(stringToInteger(a4)>0) then
begin
a5:=copy(aaa,pos(aaa,a3),length(aaa));
a6:=parser_mayn(a5,'*',1);
a7:=parser_mayn(a5,'*',2);
a8:=parser_mayn(a5,'*',3);
sum:=stringToInteger(a4)*stringToInteger(a8);
sum_all:=sum_all+sum;
rrr:=rrr+a6+' '+a4+'*'+a7+'*'+a8+'р='+sum+'р#';
end;
if((pos(a1,a2)+length(a2)+1+2)<length(a1)) then
begin
a1:=copy(a1,(pos(a1,a2)+length(a2)+1),length(a1));
end;
else
a1:='';
end;
rrr:=rrr+' Сумма: '+sum_all+'руб.';
ii:=0;
DrawString('###'+rrr, 5, 25);
////// ВЫБОР ПОЛУЧАТЕЛЯ обьединть в процедуру
rs:=OpenRecordStore('contakt');
num:=getRecordStoreSize(rs);
repeat
gui32.init;
SetSkin(LoadImage('/main4.png')); // Загружаем скин
CaptionAlign(1); // Выравнивание заголовка окна
SetWindow(0, 0, GetWidth, GetHeight, 'Выбор получателя'); // Задаем окно
ShowWindow; // Отрисовка окна
drawImage(loadImage('/arrow.png'), 15, (22+ii*15));
for i:= 1 to num do
begin
DrawString(bbb(readRecordStoreEntry(rs,i)),5,20+(i-1)*15);
end;
key:=KeyToAction(GetKeyPressed);
if (key=GA_UP) then begin ii:=ii-1; if ii<0 then ii:=0; end;
if (key=GA_DOWN) then begin ii:=ii+1; if ii>(num-1) then ii:=(num-1); end;
//кнопки
drawImage(loadImage('/cube.png'), 5, GetHeight-25);
// drawImage(loadImage('/foto.png'), GetWidth/2-12, GetHeight-25);
// drawImage(loadImage('/error.png'), GetWidth-30, GetHeight-25);
// repaint_delay;
repaint_delay; //delay(5000);
stop_none;
until GetKeyPressed=-6;
a1:=bbb(readRecordStoreEntry(rs,(ii+1)));
nomer:=parser_mayn(a1,'*',1);
DrawString(nomer,5,60);
DrawString('длина СМС'+length(rrr)+'сим',5,105);
repaint_delay; delay(5000);
CloseRecordStore(rs);
////// ВЫБОР ПОЛУЧАТЕЛЯ обьединть в процедуру
{
if smsStartSend('sms://89199610491:0000',rrr) then
begin
while smsIsSending do delay(100);
end;
}
if smsStartSend('sms://'+nomer+':0000',rrr) then
begin
while smsIsSending do delay(100);
end;
stop_none;
regim:=5;
end;
////////////////////////////////////////////////////////////
Контакты на которые можно отправить заказ
procedure zakaz_kontakt;
var dy,num:integer;
rs:RecordStore;
s1,s2,s3:string;
Begin
dy:=0;
stop_none;
repeat
gui32.init;
SetSkin(LoadImage('/main4.png')); // Загружаем скин
CaptionAlign(1); // Выравнивание заголовка окна
SetWindow(0, 0, GetWidth, GetHeight, 'Список контактов'); // Задаем окно
ShowWindow; // Отрисовка окна
rs:=OpenRecordStore('contakt');
num:=getRecordStoreSize(rs);
for i:= 1 to num do
begin
drawImage(loadImage('/men.png'), 5, 20+25*i);
s1:=readRecordStoreEntry(rs,i);
s2:=parser_mayn(s1,'*',0);
s3:=parser_mayn(s1,'*',1);
DrawString(s2,30,20+25*i);
DrawString(s3,30,30+25*i);
end;
//drawImage(loadImage('/men.png'), 5, 20+25*(num+1));
//DrawString('КУРЬЕР JAVA ПРИЛОЖЕНИЯ',30,25+25*i);
CloseRecordStore(rs);
drawImage(loadImage('/arrow.png'), 15, (55+25*dy));
//кнопки
drawImage(loadImage('/about.png'), 5, GetHeight-25);
drawImage(loadImage('/error.png'), GetWidth/2-12, GetHeight-25);
drawImage(loadImage('/cube.png'), GetWidth-30, GetHeight-25);
key:=KeyToAction(GetKeyPressed);
if (key=GA_FIRE) then begin regim:=13; iii:=dy+1; end;
if (GetKeyPressed=-7) then begin regim:=5; end;
if (GetKeyPressed=-6) then begin regim:=12; end;
if (key=GA_UP) then begin dy:=dy-1; if(dy<0) then dy:=0; end;
if (key=GA_DOWN) then begin dy:=dy+1; if(dy>(num-1)) then dy:=(num-1); end;
repaint_delay;
stop_none;
until regim<>2;
end;
////////////////////////////////////////////////////////////
добавить контакт
procedure kontakt_add;
var dy:integer;
rs:RecordStore;
str:string;
clicked, c: command;
yd : integer;
itemId : integer;
cmdNext : command;
cmdQuit : command;
Begin
begin
ShowForm;
itemId := FormAddTextField('Добавление контакта', '', 20, TF_URL);
ii := FormAddTextField('Телефон оповещения', '', 20, TF_PHONENUMBER);
i:=0;
cmdQuit := CreateCommand('Ok!', CM_OK, 1);
cmdNext := CreateCommand('Exit', CM_EXIT, 1);
AddCommand(cmdQuit);
AddCommand(cmdNext);
repeat
clicked := GetClickedCommand;
if clicked = cmdNext then begin i:=1; clicked := cmdQuit; end;
until clicked = cmdQuit;
if (length(FormGetText(itemId))>0) and (i=0) then
begin
str:=FormGetText(itemId)+'*'+FormGetText(ii);
rs:=OpenRecordStore('contakt'); // Открываем хранилище
i:=AddString(rs, bbb(str)); // Пишем туда русскую строчку
CloseRecordStore(rs); // Закрываем хранилище
end;
//stop_none;
//while (GetKeyPressed=-6) do begin delay(1000); end;
regim:=5;
clearForm;
ShowCanvas;
end;
end;
////////////////////////////////////////////////////////////
Удаление контакта
procedure kontakt_del; //Удаление заказа
var rs,rs1:RecordStore;
Begin
deleteRecordStore('text');
rs1:=OpenRecordStore('text');
rs:=OpenRecordStore('contakt');
num:=getRecordStoreSize(rs);
for i:= 1 to num do
begin
ii:=AddString(rs1, bbb(readRecordStoreEntry(rs,i)));
end;
CloseRecordStore(rs);
CloseRecordStore(rs1);
/////
deleteRecordStore('contakt');
rs1:=OpenRecordStore('text');
rs:=OpenRecordStore('contakt');
num:=getRecordStoreSize(rs1);
for i:= 1 to num do
begin
if(i<>iii) then
ii:=AddString(rs, bbb(readRecordStoreEntry(rs1,i)));
end;
CloseRecordStore(rs);
CloseRecordStore(rs1);
deleteRecordStore('text');
{
DrawString(''+iii, 5, 60);
repaint_delay;
stop_none;
delay(5000);
}
regim:=5;
end;
////////////////////////////////////////////////////////////
Удаление принятого заказа в разделе доставка
procedure dostavka_del; //Удаление заказа
var rs,rs1:RecordStore;
s1,s2:string;
Begin
deleteRecordStore('text');
rs1:=OpenRecordStore('text');
rs:=OpenRecordStore('dostavka');
num:=getRecordStoreSize(rs);
for i:= 1 to num do
begin
s1:=readRecordStoreEntry(rs,i);
s2:=parser_mayn(s1,'!',1);
ii:=AddString(rs1, '!'+s2+'!');
//ii:=AddString(rs1, bbb(readRecordStoreEntry(rs,i)));
end;
CloseRecordStore(rs);
CloseRecordStore(rs1);
/////
deleteRecordStore('dostavka');
rs1:=OpenRecordStore('text');
rs:=OpenRecordStore('dostavka');
num:=getRecordStoreSize(rs1);
for i:= 1 to num do
begin
if(i<>iii) then
begin
s1:=readRecordStoreEntry(rs1,i);
s2:=parser_mayn(s1,'!',1);
ii:=AddString(rs, '!'+s2+'!');
// ii:=AddString(rs, bbb(readRecordStoreEntry(rs1,i)));
end;
end;
CloseRecordStore(rs);
CloseRecordStore(rs1);
deleteRecordStore('text');
{
DrawString(''+iii, 5, 60);
repaint_delay;
stop_none;
delay(5000);
}
regim:=5;
end;
////////////////////////////////////////////////////////////
Список заказов на доставку
procedure dostavka; //Что просят доставить
var
rs:RecordStore;
dy,num:integer;
ad:string;
s1,s2:string;
Begin
repeat
gui32.init;
SetSkin(LoadImage('/main4.png')); // Загружаем скин
CaptionAlign(1); // Выравнивание заголовка окна
SetWindow(0, 0, GetWidth, GetHeight, 'Заказы на достаку'); // Задаем окно
ShowWindow; // Отрисовка окна
rs:=OpenRecordStore('dostavka');
num:=getRecordStoreSize(rs);
for i:= 1 to num do
begin
s1:=readRecordStoreEntry(rs,i);
s2:=parser_mayn(s1,'!',1);
ad:=s2;
//ad:=bbb(readRecordStoreEntry(rs,i));
DrawString(ad,5,25+15*i);
end;
CloseRecordStore(rs);
drawImage(loadImage('/arrow.png'), 15, (40+15*dy));
//кнопки
drawImage(loadImage('/cube.png'), 5, GetHeight-25);
// drawImage(loadImage('/cube.png'), GetWidth/2-12, GetHeight-25);
drawImage(loadImage('/error.png'), GetWidth-30, GetHeight-25);
key:=KeyToAction(GetKeyPressed);
// if (key=GA_FIRE) then begin regim:=13; iii:=dy+1; end;
if (GetKeyPressed=-7) then begin regim:=5; end;
if (GetKeyPressed=-6) then begin regim:=15; iii:=dy; end;
if (key=GA_UP) then begin dy:=dy-1; if(dy<0) then dy:=0; end;
if (key=GA_DOWN) then begin dy:=dy+1; if(dy>(num-1)) then dy:=(num-1); end;
repaint_delay;
stop_none;
until regim<>3;
end;
////////////////////////////////////////////////////////////
отправка на сервер данных
procedure too_web; //Отправка заказа на сервер
var rs:RecordStore;
a1,a11,str,ddd,ttt,ad,add:string;
n,iw:integer;
s1,s2:string;
s11,s22:string;
Begin
rs:=OpenRecordStore('autor'); // Открываем хранилище
a11:=bbb(readRecordStoreEntry(rs,1)); // Пишем туда русскую строчку
CloseRecordStore(rs); // Закрываем хранилище
gui32.init;
SetSkin(LoadImage('/main4.png')); // Загружаем скин
CaptionAlign(1); // Выравнивание заголовка окна
SetWindow(0, 0, GetWidth, GetHeight, 'Отправка заказа на сервер'); // Задаем окно
ShowWindow; // Отрисовка окна
if regim<>4 then
begin
rs:=OpenRecordStore('zakaz');
s1:=readRecordStoreEntry(rs,iii);
s2:=parser_mayn(s1,'!',1);
a1:=s2;
//a1:=bbb(readRecordStoreEntry(rs,iii));
CloseRecordStore(rs);
end;
else
begin
/////////////////////// ВЫБОР первого попавшегося неподтвержденного
rs:=OpenRecordStore('zakaz');
num:=getRecordStoreSize(rs);
for i:= 1 to num do
begin
s1:=readRecordStoreEntry(rs,i);
if (pos(s1,'^')<0) and (pos(s1,'~')>0) then
begin
s2:=parser_mayn(s1,'!',1);
a1:=s2;
end;
/////////////////////// ВЫБОР первого попавшегося неподтвержденного
end;
CloseRecordStore(rs);
end;
DrawString(a1,5,40);
DrawString(a11,5,70);
////// ВЫБОР ПОЛУЧАТЕЛЯ обьединть в процедуру
rs:=OpenRecordStore('contakt');
num:=getRecordStoreSize(rs);
if regim<>4 then
repeat
gui32.init;
SetSkin(LoadImage('/main4.png')); // Загружаем скин
CaptionAlign(1); // Выравнивание заголовка окна
SetWindow(0, 0, GetWidth, GetHeight, 'Выбор получателя'); // Задаем окно
ShowWindow; // Отрисовка окна
for i:= 1 to num do
begin
DrawString(bbb(readRecordStoreEntry(rs,i)),5,20+(i-1)*15);
end;
drawImage(loadImage('/men.png'), 5,20+(num)*15);
DrawString('ИНТЕРНЕТ ДОСТАВКА',30,20+(num)*15);
drawImage(loadImage('/arrow.png'), 15, (22+ii*15));
key:=KeyToAction(GetKeyPressed);
if (key=GA_UP) then begin ii:=ii-1; if ii<0 then ii:=0; end;
if (key=GA_DOWN) then begin ii:=ii+1; if ii>(num-0) then ii:=(num-0); end;
//кнопки
drawImage(loadImage('/cube.png'), 5, GetHeight-25);
// drawImage(loadImage('/foto.png'), GetWidth/2-12, GetHeight-25);
// drawImage(loadImage('/error.png'), GetWidth-30, GetHeight-25);
// repaint_delay;
repaint_delay; //delay(5000);
stop_none;
until GetKeyPressed=-6;
if(ii+1)>num then
ttt:='avatar';
else
ttt:=bbb(readRecordStoreEntry(rs,(ii+1)));
//nomer:=parser_mayn(a1,'*',1);
//DrawString(nomer,5,60);
repaint_delay; //delay(5000);
CloseRecordStore(rs);
////// ВЫБОР ПОЛУЧАТЕЛЯ обьединть в процедуру
//// Доставка номеров не подтвержденной доставки
ddd:='';
rs:=OpenRecordStore('dostavka');
num:=getRecordStoreSize(rs);
for i:= 1 to num do
begin
s11:=readRecordStoreEntry(rs,i);
s22:=parser_mayn(s11,'!',1);
ad:=s22;
// ad:=bbb(readRecordStoreEntry(rs,i));
add:=parser_mayn(ad,'~',2);
if pos(ad,'^')<0 then ddd:=ddd+add+'~'; //*^
end;
CloseRecordStore(rs);
// DrawString(ddd,5,90+15*ii);
//// Доставка номеров не подтвержденной доставки
/////////////////////////////////
DrawString('идет отравка ...'+ddd, 5, 30); repaint; delay(50);
//url:='http://aviatablo.orgfree.com/baton.php';
//url:='http://data.aviatablo.ru/baton.php';
{
if regim=4 then
begin
a1:='****'; // Если в режиме связи не отрпавлять заказы
end;
}
q_property('Accept', '*/*');
q_property('Accept-Language', 'ru');
q_property('Content-Type', 'application/x-www-form-urlencoded');
i:=q_request(url+'?do=login', POST, 'ott='+a11+'&too='+ttt+'&zakaz='+bb22(a1)+'&dost='+ddd, 'none');
if get_error='' then str:=get_data;
close;
/////////////////////////////////
if pos(str,'PRINYATO11')>0 then
begin
rs:=OpenRecordStore('zakaz');
num:=getRecordStoreSize(rs);
for i:= 1 to num do
begin
s11:=readRecordStoreEntry(rs,i);
s22:=parser_mayn(s11,'!',1);
//if( (a1=bbb(readRecordStoreEntry(rs,i))) and (pos(a1,'~')<0) ) then
if( (a1=s22) and (pos(a1,'~')<0) ) then
begin
ModifyRecordStoreEntry(rs,'!'+a1+'~!',i);
//ModifyRecordStoreEntry(rs,a1+'~',i);
end;
end;
CloseRecordStore(rs);
end;
if pos(str,'PRINYATO33')>0 then
begin
rs:=OpenRecordStore('zakaz');
num:=getRecordStoreSize(rs);
for i:= 1 to num do
begin
s11:=readRecordStoreEntry(rs,i);
s22:=parser_mayn(s11,'!',1);
//if( (a1=bbb(readRecordStoreEntry(rs,i))) and (pos(a1,'@')<0) and (pos(a1,'~')>0) ) then
if( (a1=s22) and (pos(a1,'^')<0) and (pos(a1,'~')>0) ) then
begin
//ModifyRecordStoreEntry(rs,a1+'@',i);
ModifyRecordStoreEntry(rs,'!'+a1+'^!',i);
end;
end;
CloseRecordStore(rs);
end;
//////////////////////////////// Отправка закончена начало обработки приема
a1:=parser_mayn(str,'!',1);
iw:=0; num:=length(a1); for ii:=0 to num do if getChar(a1,ii)='^' then iw:=iw+1; //*^
for ii:=0 to iw-1 do
begin
a11:=parser_mayn(a1,'^',ii); //*^
//DrawString(a11,5,90+15*ii);
//DrawString(''+ii,5,90+15*ii);
//// Проверяем есть ли заказ в доставке = а11
iii:=0;
rs:=OpenRecordStore('dostavka');
num:=getRecordStoreSize(rs);
for i:= 1 to num do
begin
s11:=readRecordStoreEntry(rs,ii);
s22:=parser_mayn(s11,'!',1);
ad:=s22;
// ad:=bbb(readRecordStoreEntry(rs,i));
if a11=ad then iii:=1;
{
add:=parser_mayn(ad,'~',2);
if pos(ddd,add)>0 then ModifyRecordStoreEntry(rs,ad+'@',i);
DrawString(add,5,90);
}
end;
CloseRecordStore(rs);
//// Проверяем есть ли заказ в доставке = а11
// DrawString(''+iii,5,90+15*ii);
if iii=0 then
begin
rs:=OpenRecordStore('dostavka');
//n:=AddString(rs, a11);
n:=AddString(rs, '!'+a11+'!');
CloseRecordStore(rs);
end;
end;
rs:=OpenRecordStore('dostavka');
num:=getRecordStoreSize(rs);
for i:= 1 to num do
begin
s11:=readRecordStoreEntry(rs,i);
s22:=parser_mayn(s11,'!',1);
ad:=s22;
//ad:=bbb(readRecordStoreEntry(rs,i));
add:=parser_mayn(ad,'~',2);
//if pos(add,'@')<0 then
if pos(ddd,add)>-1 then
begin
ModifyRecordStoreEntry(rs,'!'+ad+'^!',i); // *^
//ModifyRecordStoreEntry(rs,ad+'@',i);
end;
end;
CloseRecordStore(rs);
repaint_delay;
delay(1000);
regim:=5;
end;
////////////////////////////////////////////////////////////
procedure autor; //Данные отправителя
var dy:integer;
a1,a2,a3:string;
rs:RecordStore;
str:string;
clicked, c: command;
yd : integer;
itemId : integer;
cmdNext : command;
cmdQuit : command;
Begin
rs:=OpenRecordStore('autor'); // Открываем хранилище
a1:=bbb(readRecordStoreEntry(rs,1)); // Пишем туда русскую строчку
CloseRecordStore(rs); // Закрываем хранилище
a2:=parser_mayn(a1,'*',0);
a3:=parser_mayn(a1,'*',1);
begin
ShowForm;
itemId := FormAddTextField('Ваш логин', a2, 20, TF_URL);
ii := FormAddTextField('Ваш пороль', a3, 20, TF_URL);
i:=0;
cmdQuit := CreateCommand('Ok!', CM_OK, 1);
cmdNext := CreateCommand('Exit', CM_EXIT, 1);
AddCommand(cmdQuit);
AddCommand(cmdNext);
repeat
clicked := GetClickedCommand;
if clicked = cmdNext then begin i:=1; clicked:= cmdQuit; end;
delay(50);
until (clicked = cmdQuit);
if (length(FormGetText(itemId))>0) and (i=0) then
begin
str:=FormGetText(itemId)+'*'+FormGetText(ii);
deleteRecordStore('autor');
rs:=OpenRecordStore('autor'); // Открываем хранилище
i:=AddString(rs, bbb(str)); // Пишем туда русскую строчку
CloseRecordStore(rs); // Закрываем хранилище
end;
stop_none;
//while (GetKeyPressed=-6) do begin delay(1000); end;
regim:=5;
clearForm;
ShowCanvas;
end;
end;
////////////////////////////////////////////////////////////
procedure conect; //Данные отправителя
begin
too_web;
regim:=4;
ii:=0;
too_web;
regim:=5;
end;
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
procedure dostavka_vopros; //Список заказов
var
a1,s1,s2:string;
rs:RecordStore;
const dy=15;
Begin
stop_none;
repeat
gui32.init;
SetSkin(LoadImage('/main4.png')); // Загружаем скин
CaptionAlign(1); // Выравнивание заголовка окна
SetWindow(0, 0, GetWidth, GetHeight, 'Что делать с доставкой '+iii); // Задаем окно
ShowWindow; // Отрисовка окна
if i>1 then i:=0;
if i<0 then i:=1;
//if i=0 then key_start_menu('****',5,(15+dy+25*0),150); else key_start_menu('****',5,(15+dy+25*0),50);
//if i=1 then key_start_menu('****',5,(15+dy+25*1),150); else key_start_menu('****',5,(15+dy+25*1),50);
if i=0 then key_start_menu('УДАЛИТЬ',5, (15-50+dy+25*2),150); else key_start_menu('УДАЛИТЬ',5, (15-50+dy+25*2),50);
if i=1 then key_start_menu('ПРОСМОТР',5, (15-50+dy+25*3),150); else key_start_menu('ПРОСМОТР',5, (15-50+dy+25*3),50);
drawImage(loadImage('/arrow.png'), 15, (22+dy+i*25));
key:=KeyToAction(GetKeyPressed);
if (key=GA_UP) then begin i:=i-1; end;
if (key=GA_DOWN) then begin i:=i+1; end;
if (GetKeyPressed=-7) then begin regim:=5; zakaz:=''; end;
if (key=GA_FIRE) then
begin
//if i=0 then regim:=5; //Отрпавка СМС
//if i=1 then regim:=5; //Отрпавка ВЕБ+СМС
if i=0 then
begin
regim:=5; //Удаление доставки
//********************************************************
iii:=iii+1;
dostavka_del;
end;
if i=1 then
begin
rs:=OpenRecordStore('dostavka'); // Открываем хранилище
s1:=readRecordStoreEntry(rs,iii+1);
s2:=parser_mayn(s1,'!',1);
a1:=s2;
//a1:=bbb(readRecordStoreEntry(rs,iii+1)); // Пишем туда русскую строчку
CloseRecordStore(rs); // Закрываем хранилище
zakaz:=parser_mayn(a1,'~',1);
regim:=6;
end;
end;
stop_none;
//кнопки
drawImage(loadImage('/error.png'), GetWidth-30, GetHeight-25);
repaint_delay;
until regim<>8;
end;
////////////////////////////////////////////////////////////
основной алгоритм
BEGIN
font32.init(1);
Font(0); LoadFont('Verdana_7b');
regim:=5; // стартовый режим
zakaz:=''; // стартовый режим
REPEAT
if(regim=5) then start_menu_2;
if(regim=0) then katalog;
if(regim=6) then zakaz_nabr_2; //Набранный заказ
if(regim=7) then save_zakaz; //Сохранение заказа
if(regim=1) then zakaz_spisok; //Список заказов
if(regim=2) then zakaz_kontakt; //Список контактов
if(regim=8) then zakaz_vopros; //Что делать с заказом
if(regim=11) then zakaz_del; //Что делать с заказом
if(regim=9) then zakaz_sms;
if(regim=12) then kontakt_add; //Что делать с заказом
if(regim=13) then kontakt_del; //Что делать с заказом
if(regim=3) then dostavka; //Что просят доставить
if(regim=10) then too_web; //Отправка заказа на сервер
if(regim=-1) then autor; //Данные отправителя
if(regim=4) then conect; //Связь
if(regim=15) then dostavka_vopros; //Связь
//drawText(''+regim, 30, 40);
//repaint_delay;
UNTIL false;
END.