Можно ли в fpc-2.2.2.i386-win32 выводить кирилицу? у меня в коде
Word(x,y);
lp:='А';
lk:='Я';
вместо русского алфавиту выводит иероглифы
Модератор: Модераторы
Oleksandr07 писал(а):Можно ли в fpc-2.2.2.i386-win32 выводить кирилицу? у меня в коде
Word(x,y);
lp:='А';
lk:='Я';
вместо русского алфавиту выводит иероглифы
uses WinGraph,wincrt;
var Gd : integer;
Gm : integer;
pal : PaletteType;
st : string[26];
sk : string[26];
procedure The_End(x,y,k,koo:longint);
begin
setColor(k);
rectangle(x+33*koo-11,y-10,x+33*(koo+length(st))+7,y+39);
rectangle(x+33*koo-10,y-9,x+33*(koo+length(st))+6,y+38);
rectangle(x+33*koo-9,y-8,x+33*(koo+length(st))+5,y+37);
rectangle(x+33*koo-8,y-7,x+33*(koo+length(st))+4,y+36);
rectangle(x+33*koo-7,y-6,x+33*(koo+length(st))+3,y+35);
end;
procedure Button(x,y,Len,k0,k1,k2,k3:longint;ch:char);
begin
setFillStyle(1,k0);
bar(x-2,y-2,x+32,y+32);
SetColor(k1);
Line(x,y,x+Len,y);
Line(x+Len,y,x+Len,y+Len);
Setcolor(K2);
Line(x+Len,y+Len,x,y+Len);
Line(x,y+Len,x,y);
Setcolor(K3);
SetTextStyle(ArialFont,0,24);
outTextXY(x+Len div 4,y+Len div 5,ch);
end;
procedure Word(x,y:integer);
var i : integer;
j : integer;
begin
j:=26 div 2-length(st) div 2+1;
for i:=1 to length(st) do begin
Button(x+33*j,y+300,30,Red,White,White,White,st[i]);
inc(j);
end;
end;
procedure Select;
var i : char;
ch : char;
lp : char;
lk : char;
j : integer;
x : integer;
y : integer;
ll : integer;
l : integer;
k : integer;
pr : integer;
p : integer;
koo : integer;
flag : boolean;
begin
x:=10;
y:=50;
j:=1;
flag:=true;
SetfillStyle(1,Green);
Bar(0,0,GetMaxX,GetMaxY);
Word(x,y);
lp:='Ђ';
lk:='џ';
for i:=lp to lk do begin
Button(x+33*j,y,30,SkyBlue,White,Black,Black,i);
inc(j);
end;
ll:=j-1;
j:=1;
i:=lp;
Button(x+33*j,y,30,Red,white,white,white,i);
repeat
ch:=readkey;
case ord(ch) of
77:begin
Button(x+33*j,y,30,SkyBlue,White,Black,Black,i);
if j<>ll then begin
inc(j);
inc(i);
end
else begin
j:=1;
i:=lp;
end;
Button( x+33*j,y,30,Red,White,White,White,i);
end;
75:begin
Button(x+33*j,y,30,SkyBlue,White,Black,Black,i);
if j<>1 then begin
dec(j);
dec(i);
end
else begin
j:=ll;
i:=lk;
end;
Button( x+33*j,y,30,Red,White,White,White,i);
end;
32,13:begin
if not flag then continue;
flag:=false;
for k:=1 to length(st) do
if st[k]=' ' then begin
flag:=true;pr:=k;
if i=sk[pr] then break;
end;
if flag then
begin
Button(x+33*j,y,30,Red,White,White,White,i);
delay(300);
l:=y;
repeat
inc(l,3);
Button(x+33*j,y+l,30,Red,white,white,white,i);
delay(20);
Button(x+33*j,y+l,30,Green,Green,Green,Green,i);
until l>=260;
p:=j;
koo:=26 div 2-length(st) div 2+pr;
repeat
if p<koo then inc(p)
else if p>koo then dec(p);
Button(x+33*p,y+l,30,Red,white,white,white,i);
if (p=koo)and(i=sk[pr]) then delay(500)
else delay(10);
Button(x+33*p,y+l,30,Green,Green,Green,Green,i);
until p=koo;
if i<>sk[pr]
then Button(x+33*p,y+l,30,Red,White,White,White,i)
else Button(x+33*p,y+300,30,Red,White,White,White,i)
end;
st[pr]:=i;
if st=sk then flag:=false
else if st[pr]<>sk[pr] then st[pr]:=' ';
end;
end;
if not flag then
begin
repeat
The_End(x,y+300,Blue,koo-pr+1);
delay(300);
The_End(x,y+300,Yellow,koo-pr+1);
delay(300);
until keypressed;
break;
end;
until (ord(ch)=27);
end;
Procedure InPut(x,y,k1,k2:longint);
var f : text;
begin
st:='';
assign(f,'input.txt');
reset(f);
readln(f,st);
readln(f,sk);
close(f);
end;
begin
if (IOResult <> 0) then Halt(1);
gd:=detect; gm:=m1024x768;
GetNamesPalette(pal);
InitGraph(gd,gm,'');
InPut(10,10,red,red);
Select;
CloseGraph;
end.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 35