Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2010, 15:31   #1
mindi
Новичок
Джуниор
 
Регистрация: 05.05.2010
Сообщений: 1
Смущение как нарисовать точки

надо нарисовать точки на Paintbox так чтоб они появлялись на форме по нажатию на кнопку показать и их надо 7 штук с разными координатами.
вот весь код
procedure TFormDemo.BCharsClick(Sender: TObject);
var
i : integer;
begin
iSymbol := 1;
SetLength(MasSimple16, 32*SizeOf(TMas16x16)); // âûäåëÿåì ïàìÿòü ïîä áóêâû îò À äî ß
for i := 0 to 31 do
with Img.Canvas do
begin
Brush.Color := clWhite; // î÷èùàåì...
P
Img. Canvas.Pixels[ 60, 40]:=clRed;
MasSimple16[i] := Create_16x16(Img); // ñîçäàåì øàáëîí äëÿ i-ãî ñèìâîëà
end;
begin
Brush.Color := clWhite;
t.Name;
Img.Canvas.TextOut(10, 10, CHR(ORD('0')+i));
MasSimple16[i] := Create_16x16(Img);
end;
BClear.Click;
MessageBox(handle, 'Ìàòðèöà øàáëîíîâ ñîçäàíà. Íàðèñóéòå îáðàç äëÿ ðàñïîçíàâàíèÿ è íàæìèòå "Àíàëèç".', 'ÎÊ!', MB_OK or MB_ICONInformation);
end;
procedure TFormDemo.BAnalyzeClick(Sender: TObject);
var
k,i,j, ki, kj : integer;
Mas, // 16õ16 èòîãîâàÿ ïðèâåäåííàÿ ìàòðèöà
MasChar : TMas16x16; // 16õ16 ïðèâåäåííàÿ ìàòðèöà ðèñîâàííîãî îáðàçà
Res : array [0..31] of byte; // ìàññèâ "âåñîâ" äëÿ êàæäîãî ñèìâîëà
nMax : integer;
iMin : integer;
begin
if Length(MasSimple16) = 0 then // áåç êîììåíòàðèåâ...
begin
MessageBox(handle, 'Ñíà÷àëà íóæíî ñîçäàòü ìàòðèöó øàáëîíîâ!', 'Îøèáêà!', MB_OK or MB_ICONWARNING);
exit;
end;
with PB16x16.Canvas do // ðèñóåì ïðèâåäåííóþ ìàòðèöó (ýòî íåîáÿçàòåëüíî...)
for kj := 0 to 15 do
for ki := 0 to 15 do
begin
Brush.Color := clRed;
if MasChar[kj][ki] = 1 then Brush.Style := bsSolid else Brush.Style := bsClear;
Rectangle(ki * 7, kj * 7, ki * 7 + 7, kj * 7 + 7);
Canvas.Pixels[ 60, 40]:=clRed;
Res[k] := 0;
for j := 0 to 15 do
for i := 0 to 15 do
Res[k] := Res[k] + Mas[j][i]; // âû÷èñëÿåì âåñà (êîë-âî íåñîâïàäåíèé) äëÿ êàæäîãî ñèìâîëà
end;

LBResult.Clear;
if iSymbol = 1 then // ïðîèçâîäèì ñîðòèðîâêó äëÿ áóêâ êîë-âà íåñîâïàäåíèé ïî âîçðàñòàíèþ
LBResult.Items.Add(CHR(ORD('À') + iMin) + ' ' + inttostr(round(100*(1 - Res[iMin] / 256)))+'%');
Res[iMin] := 255;
end
else
if iSymbol = 2 then // àíàëîãè÷íî äëÿ öèôð...
for i := 0 to 9 do
begin
nMax := 255;
iMin := 0;
for k := 0 to 9 do
if Res[k] < nMax then
begin
iMin := k;
nMax := Res[k];
end;
LBResult.Items.Add(CHR(ORD('0') + iMin) + ' ' + inttostr(round(100*(1 - Res[iMin] / 256)))+'%');
Res[iMin] := 255;
end;

end;

end.
mindi вне форума Ответить с цитированием
Старый 06.05.2010, 14:46   #2
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

а что собственно не получается?
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как нарисовать отрезок. deadh5n1 Помощь студентам 1 20.04.2010 23:24
Имеются координаты точки. Как проверить какого цвета соседние точки на форме? Rin Мультимедиа в Delphi 2 10.11.2009 22:47
даны две точки. организовать движение из точки А в точку Б окружности! Wi1D Помощь студентам 6 23.05.2009 19:55
Как нарисовать картинку сбоку в меню как в Punto Switcher Crazyman Win Api 4 26.09.2008 18:13
Отбражение чисел - точки, это точки, а не запятые, обозначающие дробную часть Дикий Помощь студентам 7 12.05.2008 17:57