![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 07.04.2011
Сообщений: 28
|
![]()
Помогите пожалуйста доработать программу...цвет фона я сделал, а вот как сделать цвет заливки треугольников не понял...может проблема в том что объект перемещается с помощью мышь..
и можиге помочь с масштабом объекта.. желательно всё через procedure TForm1.ComboBoxChange(Sender: TObject); вот код unit Project211123; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus, ExtCtrls, Buttons; type TForm1 = class(TForm) GroupBox1: TGroupBox; MainMenu1: TMainMenu; Image1: TImage; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N5: TMenuItem; N6: TMenuItem; ComboBox1: TComboBox; BitBtn1: TBitBtn; Label1: TLabel; ComboBox2: TComboBox; Label2: TLabel; Timer1: TTimer; RadioButton1: TRadioButton; RadioButton2: TRadioButton; N7: TMenuItem; N8: TMenuItem; N9: TMenuItem; Label3: TLabel; ComboBox4: TComboBox; Label4: TLabel; ComboBox3: TComboBox; procedure ComboBox1Change(Sender: TObject); procedure N4Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure ComboBox2Change(Sender: TObject); procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Timer1Timer(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; drag: boolean; x0, y0: integer; ClipRect: TRect; x, y, ax, ay: integer; implementation {$R *.dfm} procedure TForm1.N2Click(Sender: TObject); begin Image1.Canvas.brush.color:=clwhite; Image1.Canvas.Rectangle(-100,-100,Width,Height); Image1.Canvas.Pen.Width:=1; Image1.Canvas.Pen.Color:=clblack; Image1.Canvas.MoveTo(265,155); Image1.Canvas.LineTo(255,146); Image1.Canvas.LineTo(253,158); Image1.Canvas.LineTo(265,155); Image1.Canvas.MoveTo(290,152); Image1.Canvas.LineTo(280,162); Image1.Canvas.MoveTo(270,140); Image1.Canvas.LineTo(260,150); Image1.Canvas.MoveTo(300,230); Image1.Canvas.LineTo(300,170); Image1.Canvas.MoveTo(350,200); Image1.Canvas.LineTo(180,200); Image1.Canvas.MoveTo(300,200); Image1.Canvas.LineTo(230,150); Image1.Canvas.LineTo(230,250); Image1.Canvas.LineTo(300,200); end; procedure TForm1.ComboBox1Change(Sender: TObject); begin if ComboBox1.Itemindex =0 then //Image1.Canvas.brush.color:=clwhite; Image1.Canvas.Rectangle(-100,-100,Width,Height); Image1.Canvas.Pen.Width:=2; Image1.Canvas.MoveTo(265+ax,155+ay) ; Image1.Canvas.LineTo(255+ax,146+ay) ; Image1.Canvas.LineTo(253+ax,158+ay) ; Image1.Canvas.LineTo(265+ax,155+ay) ; Image1.Canvas.MoveTo(290+ax,152+ay) ; Image1.Canvas.LineTo(280+ax,162+ay) ; Image1.Canvas.MoveTo(270+ax,140+ay) ; Image1.Canvas.LineTo(260+ax,150+ay) ; Image1.Canvas.MoveTo(300+ax,230+ay) ; Image1.Canvas.LineTo(300+ax,170+ay) ; Image1.Canvas.MoveTo(350+ax,200+ay) ; Image1.Canvas.LineTo(180+ax,200+ay) ; Image1.Canvas.MoveTo(300+ax,200+ay) ; Image1.Canvas.LineTo(230+ax,150+ay) ; Image1.Canvas.LineTo(230+ax,250+ay) ; Image1.Canvas.LineTo(300+ax,200+ay) ; procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin x0:= 230; y0:= 300; Drag:= true; end; procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if drag then begin ax :=x-x0; ay :=y-x0; end; drag := false; end; procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if drag then begin ax :=x-x0; ay :=y-x0; //Image1.Canvas.brush.color:=clwhite; Image1.Canvas.Rectangle(-100,-100,Width,Height); //image1.canvas.FloodFill (300, 200, RGB(0, 0, 0), fsBorder); Image1.Canvas.MoveTo(265+ax,155+ay) ; Image1.Canvas.LineTo(255+ax,146+ay) ; Image1.Canvas.LineTo(253+ax,158+ay) ; Image1.Canvas.LineTo(265+ax,155+ay) ; Image1.Canvas.MoveTo(290+ax,152+ay) ; Image1.Canvas.LineTo(280+ax,162+ay) ; Image1.Canvas.MoveTo(270+ax,140+ay) ; Image1.Canvas.LineTo(260+ax,150+ay) ; Image1.Canvas.MoveTo(300+ax,230+ay) ; Image1.Canvas.LineTo(300+ax,170+ay) ; Image1.Canvas.MoveTo(350+ax,200+ay) ; Image1.Canvas.LineTo(180+ax,200+ay) ; Image1.Canvas.MoveTo(300+ax,200+ay) ; Image1.Canvas.LineTo(230+ax,150+ay) ; Image1.Canvas.LineTo(230+ax,250+ay) ; Image1.Canvas.LineTo(300+ax,200+ay) ; end; end; procedure TForm1.Timer1Timer(Sender: TObject); var xp, yp:integer; begin xp:=ax; yp:=ay; end; end. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Простая графика, масштаб | Mardessa | Помощь студентам | 1 | 06.02.2011 23:30 |
CLR. Ошибка C3918. Как вызвать из объекта обработчик, переданный родителю объекта от деда? | Stilet | Общие вопросы .NET | 0 | 15.01.2011 17:49 |
С помощью методов и свойств объекта осуществляется управление терминалом. Имя (идентификатор) объекта | User>lia | Общие вопросы Delphi | 4 | 16.01.2009 16:37 |
Как поменять одну из текстур объекта не меняя все остальные и без повторной загрузки объекта в GLScene | DomKr@t | Мультимедиа в Delphi | 0 | 14.12.2008 01:52 |
Логарифмический масштаб | AfzaL | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 03.12.2006 12:16 |