Текущий архив: 2005.02.20;
Скачать: CL | DM;
ВнизРабота с графикой Найти похожие ветки
← →
Expl (2004-11-03 20:06) [0]Объясните пжлста ламеру в чем причина: суть в том, что при нажатии на кнопку на PaintBox"e выводится таблица 5*5 с числами в клетках. Когда прорисовываю просто таблицу, то она сразу отображается, а когда после ее прорисовки ставлю прорисовку чисел, то при нажатии таблица появляется и мгновенно исчезает. В чем тут сёка?
← →
Mihey_temporary © (2004-11-03 20:09) [1]Покажи код.
← →
Expl (2004-11-03 20:13) [2]procedure Show_Shulte(P: TPaintBox);
var x,y:integer;
k,i,j:integer;
begin
x:=((p.Width div 2)-155);
y:=((p.Height div 2)-155);
P.Canvas.FillRect(P.Canvas.ClipRect);
P.Canvas.Brush.Color := ClBtnFace;
p.Canvas.Pen.Color:=clBlack;
p.Canvas.Pen.Style:=psSolid;
P.Canvas.Brush.Style:=bsSolid;
For i:=0 to 4 do
For j:=0 to 4 do
P.Canvas.Rectangle(x+i*64,y+j*64,x+(i+1)*65,y+(j+1)*65);
p.Canvas.Pen.Color:=clGreen;
P.Canvas.Brush.Color := clGreen;
P.Canvas.Brush.Style:=bsSolid;
P.Canvas.Ellipse(x+128+(32-8),y+128+(32-8),x+128+(32+8),y+128+(32+8));
//вывод текста
P.Canvas.Brush.Color := ClBtnFace;
p.Font.Name:="Arial";
p.Font.Size:=20;
for i:=0 to 4 do
for j:=0 to 4 do
if (i<>2) or (j<>2) then
begin
k:=random(24)+1;
if k<10 then
p.Canvas.TextOut(x+23+i*64,y+18+j*64,IntToStr(k))
else p.Canvas.TextOut(x+16+i*64,y+18+j*64,IntToStr(k));
end;
end;
← →
Expl (2004-11-03 20:29) [3]Причем, я тут посмотрел, глючить начинает если в процедуре есть вот эти 2 строчки:
p.Font.Name:="Arial";
p.Font.Size:=20;
А без них и с выводом текста работает, правда, шрифт не тот.
← →
Expl (2004-11-03 20:31) [4]Я понял! Надо было писать не
p.Font.Name:="Arial";
p.Font.Size:=20;
а
p.Canvas.Font.Name:="Arial";
p.Canvas.Font.Size:=20;
← →
Mihey_temporary © (2004-11-03 21:04) [5]Ну вот и слава богу.
Страницы: 1 вся ветка
Текущий архив: 2005.02.20;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.05 c