![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() необходимо добавить в программу возможность рисовать ещё одну фигуру (треугольник, ромб, трапецию, параллелограмм и т.д.), а также генерацию заданного кол-ва фигур, случайного размера и цвета
|
#2
|
||||
|
||||
![]() добавил треугольник и ромб
![]() |
#3
|
||||
|
||||
![]() Цитата:
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#4
|
|||
|
|||
![]() спасибо, осталось только включить генерацию заданного кол-ва фигур. кто-то может помочь?
|
#5
|
||||
|
||||
![]() Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Spin; type TMainForm = class(TForm) rLabel: TLabel; SpinEdit: TSpinEdit; ColorButton: TButton; Shape1: TShape; Image: TImage; ColorDialog: TColorDialog; TypeFigure: TRadioGroup; ExitButton: TButton; procedure FormActivate(Sender: TObject); procedure ImageMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure ExitButtonClick(Sender: TObject); private { Private declarations } public procedure ClearFigList; end; var MainForm: TMainForm; FigList: TList; implementation {$R *.dfm} Uses Unit2; procedure TMainForm.ClearFigList; var i: Integer; begin if FigList.Count = 0 then Exit; for i := 0 to FigList.Count - 1 do TMyFigure(FigList.Items[i]).Free; FigList.CLear; end; procedure TMainForm.FormActivate(Sender: TObject); begin Image.Canvas.Brush.Color:=clWhite; {установить белый фон} Image.Canvas.Pen.Color:=clBlack; {установить цвет рисования} end; procedure TMainForm.ImageMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var C:TMyFigure; begin if Button=mbLeft then {если нажата левая кнопка мыши} begin {если объект создан, то уничтожить его} case TypeFigure.ItemIndex of 0: C:=TMyCircle.Create(Image,X,Y,SpinEdit.Value, Image.Canvas.Pen.Color); {конструировать} 1: C:=TMySquare.Create(Image,X,Y,SpinEdit.Value, Image.Canvas.Pen.Color); {конструировать} 2: C:=TMyRomb.Create(Image,X,Y,SpinEdit.Value, Image.Canvas.Pen.Color); end; C.Draw; {изобразить объект с заданными параметрами} FigList.Add(C); end; end; procedure TMainForm.ExitButtonClick(Sender: TObject); begin Application.Terminate; end; Initialization FigList := TList.Create; Finalization ClearFigList; FigList.Free; end. Красным пометил изменения. Смену цвета и размера я убрал, тут продумать надо че хотим (если фигур несколько надо знать у какой что менять). Принцип должен быть ясен, дальше - копать ![]() З.Ы. Тут тоже самое, но при каждом новом клике по имэйджу создается новая фигура. Последний раз редактировалось dr. F.I.N., 19.05.2010 в 07:51. |
#6
|
|||
|
|||
![]() спасибо большое, но я особо не разбираюсь в delphi. в итоге, просто скопипастил в исходник всё, и ничего не получилось. а общий принцип я не особо понял. по поводу размера и цвета, нужно сделать кнопку, чтобы произвольно выбиралось кол-во и цвет фигур, и их размер.
|
#7
|
|||
|
|||
![]() поднимаю, до дня показа программы остались одни сутки.
|