
08.03.2008, 19:07
|
|
Участник форума
Регистрация: 01.05.2006
Сообщений: 216
Провел на форуме: 287212
Репутация:
62
|
|
ToniKapuchon, в общем, если я правильно понял, то получилось следущее: (создаём проект в Delphi, в нём две формы: Form1 с Edit1 (для ввода кол-ва шаров) и Button1 и Form2 для прорисовки шаров. Затем в Form1.Button1Click вводим следующее:
Код:
procedure TForm1.Button1Click(Sender: TObject);
const diameter = 40; // диаметр шаров
var i,n, // кол-во шаров
b:integer; // переменная для лучшего центрования надписи
a:string[2];
begin
n := StrToInt(Edit1.Text);
// настраиваем brush и pen
form2.Canvas.Brush.Color:=clWhite;
form2.Canvas.Pen.Color := clBlack;
randomize;
form2.Show;
for i := 1 to n do
begin
form2.Canvas.Ellipse((i-1)*(diameter+5),0,(i-1)*(diameter+5)+diameter,diameter); // рисуем круги на расстоянии 5 пикселов друг от друга; в одну строку
a:=inttostr(random(25));
if length(a) = 2 then b:=12
else b:=5;
form2.Canvas.TextOut(diameter div 2 + (i-1)*(diameter+5) - b div 2, diameter div 2 - 4, a); // пишем на шаре надпись
end;
end;
(Конечно, вероятно, всё это можно делать, обходясь и меньшим количеством действий и более технично, но этот код работает.)
Если собираешься рисовать не в своё окно, а в чужое, тут сложнее, однако сам алгоритм прорисовки (то, что тебя, как я понял, интересует) останется тем же.
|
|
|