![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 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. ![]() |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 29.12.2009
Сообщений: 1,166
|
![]()
а что собственно не получается?
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть] |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как нарисовать отрезок. | 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 |