Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Графика

Автор: @^WARlock^@ 25.11.2006 10:07

Народ подскажите, как заполнить белое окошко любым словом, и чтобы это слово сохранилось в текстовый фаил.

Вот начальный код или предложите свой.

uses crt,graph;
var
gm,gd:integer;
begin
initgraph(gd,gm,'c:\bgi');
setbkcolor(white);
setcolor(blue);
rectangle(210,190,430,260);
rectangle(220,200,420,250);
setfillstyle(1,lightgreen);
floodfill(221,201,blue);
setfillstyle(11,blue);
floodfill(211,191,blue);
setcolor(red);
outtextxy(225,217,'Vvedite');
outtextxy(233,230,'slovo');
setcolor(blue);
rectangle(300,210,410,240);
setfillstyle(1,white);
floodfill(301,211,blue);
readln;
end.

Автор: @^WARlock^@ 26.11.2006 8:11

Народ ну подскажите в графическом режиме можно вывести слово на экран, a как ввести слово.

Автор: volvo 26.11.2006 13:36

Цитата
как ввести слово.
Точно так же, как ты в обычном текстовом режиме можешь ввести строку через ReadLn(s), а можешь - посимвольно, в графическом тебе придется это делать посимвольно:

uses crt, graph;

function get_input(xst, yst: integer): string;
var
stop: boolean;
in_str: string;
ch: char;
begin
in_str := '';

stop := false;
repeat

setfillstyle(solidfill, black);
settextjustify(lefttext, toptext);
bar(xst, yst, xst + 50 * textwidth('W'), yst + textheight('W') + 2);
setcolor(white); outtextxy(succ(xst), succ(yst), in_str);

ch := readkey;
if ch = #0 then readkey
else if ch = #13 then stop := true
else if (ch = #8) then begin
if length(in_str) > 0 then
delete(in_str, length(in_str), 1)
end
else in_str := in_str + ch;

until stop;

get_input := in_str
end;


var
grDriver: Integer;
grMode: Integer;
ErrCode: Integer;

s: string;
begin
grDriver := Detect;
InitGraph(grDriver, grMode,'');
ErrCode := GraphResult;
if ErrCode <> grOk then begin
Writeln('Graphics error:', GraphErrorMsg(ErrCode));
readln; exit;
end;

s := get_input(10, 10); { Тут поставь нужные координаты }
outtextxy(400, 100, s);
readln;
closegraph;
end.