Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиПоискОблакоVK ComboВсе проекты

Не работают кнопки PascalABC

УДАЛЕНО УДАЛЕНО Ученик (103), закрыт 1 неделю назад
Я нуб в програмировании. Куча лишних переменных, ибо планирую вставить часть своего старого кода. Проблемма : Не работают кнопки. При нажатии на оные переменная b по идее должна принимать значения, но оно не работает. Или я тупой или я не знаю, но оно не работает.
Код :
program domofon;
uses ABCButtons, GraphABC;
var sb0, sb1, sb2, sb3, sb4, sb5, sb6, sb7, sb8, sb9, sba, sbb:integer;
a, b, c, cnt, cnt1, sys:integer;
dg0, dg1, dg2, dg3, dg4, dg5, dg6, dg7, dg8, dg9, dga, dgb, all:string;
begin
all:=' .';
SetWindowWidth(180); SetWindowHeight(400);
Rectangle(0,0,180,400); Line(180,0,164,16);
Line(0,0,16,16); Line(180,400,164,384);
Line(0,400,16,384); Rectangle(16,16,164,384);
setwindowtitle('ъуъдомофон');
var btt2:=new ButtonABC(78,156,24,24,'2', clSilver);
var btt5:=new ButtonABC(78,188,24,24,'5', clSilver);
var btt8:=new ButtonABC(78,220,24,24,'8', clSilver);
var btt0:=new ButtonABC(78,252,24,24,'0', clSilver);
var btt1:=new ButtonABC(46,156,24,24,'1', clSilver);
var btt4:=new ButtonABC(46,188,24,24,'4', clSilver);
var btt6:=new ButtonABC(46,220,24,24,'6', clSilver);
var btt10:=new ButtonABC(46,252,24,24,'F', clSilver);
var btt3:=new ButtonABC(110,156,24,24,'3', clSilver);
var btt7:=new ButtonABC(110,188,24,24,'7', clSilver);
var btt9:=new ButtonABC(110,220,24,24,'9', clSilver);
var btt11:=new ButtonABC(110,252,24,24,'C', clSilver);
dg3:=' ';
dg2:=' ';
dg1:=' ';
dg0:='.';
while 0=0 do begin
writeln(b);
if b=10 then a:=00;
if b=01 then a:=01;
if b=02 then a:=02;
if b=03 then a:=03;
if b=04 then a:=04;
if b=05 then a:=05;
if b=06 then a:=06;
if b=07 then a:=07;
if b=08 then a:=08;
if b=09 then a:=09;
if b=11 then a:=10;
if b=10 then a:=11;
all:=dg3+dg2+dg1+dg0;
TextOut(64,64, all);
//writeln(all);
//readln(a);
sbb:=sba;
sba:=sb9;
sb9:=sb8;
sb8:=sb7;
sb7:=sb6;
sb6:=sb5;
sb5:=sb4;
sb4:=sb3;
sb3:=sb2;
sb2:=sb1;
sb1:=sb0;
sb0:=a;
cnt:=cnt+1;
if cnt>0 then dg0:=' ';
dgb:=dga;
dga:=dg9;
dg9:=dg8;
dg8:=dg7;
dg7:=dg6;
dg6:=dg5;
dg5:=dg4;
dg4:=dg3;
dg3:=dg2;
dg2:=dg1;
if a<10 then begin
if a>0 then begin
dg1:=inttostr(a);
end;
end;
if a=11 then dg1:='F';
if a=10 then begin
dgb:=' ';
dga:=' ';
dg9:=' ';
dg8:=' ';
dg7:=' ';
dg6:=' ';
dg5:=' ';
dg4:=' ';
dg3:=' ';
dg2:=' ';
dg1:=' ';
dg0:='.';
all:=' .';
sbb:=0;
sba:=0;
sb9:=0;
sb8:=0;
sb7:=0;
sb6:=0;
sb5:=0;
sb4:=0;
sb3:=0;
sb2:=0;
sb1:=0;
sb0:=0;
end;
If a=09 then System.Console.Beep(560,250); //9
If a=08 then System.Console.Beep(590,250); //8
If a=07 then System.Console.Beep(625,250); //7
If a=06 then System.Console.Beep(670,250); //6
If a=05 then System.Console.Beep(720,250); //5
If a=04 then System.Console.Beep(770,250); //4
If a=03 then System.Console.Beep(845,250); //3
If a=02 then System.Console.Beep(930,250); //2
If a=01 then System.Console.Beep(1030,250); //1
If a=00 then System.Console.Beep(1150,250); //0
If a=11 then System.Console.Beep(1660,150); //F
If a=10 then System.Console.Beep(1520,500); //с
if a<>-1 then begin
a:=-1;
b:=0;
end;
end;
end.
Лучший ответ
... Гений (83593) 1 месяц назад
Конечно. Вы не создали обработчик нажатий, а так как пытались сделать - работать не будет.


Пример:


program domofon;
uses ABCButtons, GraphABC;
begin
SetWindowWidth(180); SetWindowHeight(400);
Rectangle(0,0,180,400); Line(180,0,164,16);
Line(0,0,16,16); Line(180,400,164,384);
Line(0,400,16,384); Rectangle(16,16,164,384);
setwindowtitle('ъуъдомофон');

var btn2 := new ButtonABC(78,156,24,24,'2', clSilver);
btn2.OnClick := () -> System.Console.Beep(930,250);
end.

Вообще код можно сильно оптимизировать используя массив
УДАЛЕНО УДАЛЕНОУченик (103) 1 месяц назад
Благодарю за помощь, спасибо вам
Остальные ответы
Похожие вопросы