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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2011, 19:22   #1
Сергей58rus
Пользователь
 
Регистрация: 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.
Сергей58rus вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простая графика, масштаб 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