![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 07.04.2011
Сообщений: 28
|
![]()
вроде сделал всё правильно но почему то масштаб не увеличивается...
подскажите где ошибка? unit Unit1; interface uses Unit2, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, ExtCtrls, StdCtrls, Buttons, ScktComp; type TForm1 = class(TForm) GroupBox1: TGroupBox; Image1: TImage; MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N5: TMenuItem; N6: TMenuItem; N7: TMenuItem; N8: TMenuItem; ComboBox1: TComboBox; Label1: TLabel; ComboBox2: TComboBox; Label2: TLabel; Timer1: TTimer; BitBtn1: TBitBtn; ComboBox3: TComboBox; Label3: TLabel; ComboBox4: TComboBox; Label4: TLabel; Button5: TButton; Button6: TButton; Button7: TButton; Button8: TButton; procedure N2Click(Sender: TObject); procedure N6Click(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); procedure BitBtn1Click(Sender: TObject); procedure ComboBox3Change(Sender: TObject); procedure ComboBox4Change(Sender: TObject); procedure Drow; private { Private declarations } public { Public declarations } end; var Form1: TForm1; drag: boolean; x0, y0: integer; ClipRect: TRect; x, y, ax, ay: integer; koef: real; implementation {$R *.dfm} procedure Tform1.Drow; begin koef:=1; //ax:=50; //ay:=50; Image1.Canvas.FillRect(rect(0, 0, image1.width,image1.height)); Image1.Canvas.MoveTo(round(koef*ax+ 285),round(koef*ay+167)); Image1.Canvas.LineTo(round(koef*ax+ 275),round(koef*ay+157)); Image1.Canvas.LineTo(round(koef*ax+ 273),round(koef*ay+168)); Image1.Canvas.LineTo(round(koef*ax+ 285),round(koef*ay+167)); Image1.Canvas.MoveTo(round(koef*ax+ 265),round(koef*ay+155)); Image1.Canvas.LineTo(round(koef*ax+ 255),round(koef*ay+146)); Image1.Canvas.LineTo(round(koef*ax+ 253),round(koef*ay+158)); Image1.Canvas.LineTo(round(koef*ax+ 265),round(koef*ay+155)); Image1.Canvas.MoveTo(round(koef*ax+ 290),round(koef*ay+152)); Image1.Canvas.LineTo(round(koef*ax+ 280),round(koef*ay+162)); Image1.Canvas.MoveTo(round(koef*ax+ 270),round(koef*ay+140)); Image1.Canvas.LineTo(round(koef*ax+ 260),round(koef*ay+150)); Image1.Canvas.MoveTo(round(koef*ax+ 300),round(koef*ay+230)); Image1.Canvas.LineTo(round(koef*ax+ 300),round(koef*ay+170)); Image1.Canvas.MoveTo(round(koef*ax+ 350),round(koef*ay+200)); Image1.Canvas.LineTo(round(koef*ax+ 180),round(koef*ay+200)); Image1.Canvas.MoveTo(round(koef*ax+ 300),round(koef*ay+200)); Image1.Canvas.LineTo(round(koef*ax+ 230),round(koef*ay+150)); Image1.Canvas.LineTo(round(koef*ax+ 230),round(koef*ay+250)); Image1.Canvas.LineTo(round(koef*ax+ 300),round(koef*ay+200)); end; procedure TForm1.N2Click(Sender: TObject); {ðèñóåì îáúåêò} begin drow; end; procedure TForm1.N6Click(Sender: TObject); begin close; end; 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; drow; end; end; procedure TForm1.Timer1Timer(Sender: TObject); {òàéìåð äëÿ ïëàâíîãî ïåðåäâèæåíèÿ} var xp, yp:integer; begin xp:=ax; yp:=ay; end; procedure TForm1.BitBtn1Click(Sender: TObject); {î÷èñòêà ýêðàíà} begin PatBlt(Form1.Canvas.Handle, 0, 0, Form1.ClientWidth, Form1.ClientHeight, WHITENESS); end; procedure TForm1.ComboBox3Change(Sender: TObject); {öâåò ôîíà} begin if ComboBox3.Itemindex=0 then Image1.Canvas.brush.color:=clMaroon ; drow; if ComboBox3.Itemindex=1 then Image1.Canvas.brush.color:=clYellow ; drow; if ComboBox3.Itemindex=2 then Image1.Canvas.brush.color:=clFuchsi a; drow; if ComboBox3.Itemindex=3 then Image1.Canvas.brush.color:=clAqua; drow; end; procedure TForm1.ComboBox4Change(Sender: TObject); {МАСШТАБИРОВАНИЕ} begin if ComboBox1.Itemindex =0 then koef:= koef+ 2; drow; end. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 25.04.2011
Сообщений: 110
|
![]()
попробуй так
Код:
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 07.04.2011
Сообщений: 28
|
![]()
всё равно ничего не изменяется((
а можите какой нибудь пример скинуть я по нему попробую? |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 07.04.2011
Сообщений: 28
|
![]()
кое что сам разобрал, как масштаб увеличивать,
а как теперь сделать что бы с помощью ComboBox4 это делать??( unit Unit1; interface uses Unit2, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, ExtCtrls, StdCtrls, Buttons, ScktComp; type TForm1 = class(TForm) GroupBox1: TGroupBox; Image1: TImage; MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N5: TMenuItem; N6: TMenuItem; N7: TMenuItem; N8: TMenuItem; ComboBox1: TComboBox; Label1: TLabel; ComboBox2: TComboBox; Label2: TLabel; Timer1: TTimer; BitBtn1: TBitBtn; RadioButton1: TRadioButton; RadioButton2: TRadioButton; ComboBox3: TComboBox; Label3: TLabel; ComboBox4: TComboBox; 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); procedure ComboBox4Change(Sender: TObject); procedure Drow; private { Private declarations } public { Public declarations } end; var Form1: TForm1; drag: boolean; x0, y0: integer; ClipRect: TRect; x1, y1, x, y, ax, ay: integer; koef: real; implementation {$R *.dfm} procedure Tform1.Drow; begin koef:=1; Image1.Canvas.FillRect(rect(0, 0, image1.width,image1.height)); Image1.Canvas.MoveTo(round(koef*(ax +285)),round(koef*(ay+167))); Image1.Canvas.LineTo(round(koef*(ax +275)),round(koef*(ay+157))); Image1.Canvas.LineTo(round(koef*(ax +273)),round(koef*(ay+168))); Image1.Canvas.LineTo(round(koef*(ax +285)),round(koef*(ay+167))); Image1.Canvas.MoveTo(round(koef*(ax +265)),round(koef*(ay+155))); Image1.Canvas.LineTo(round(koef*(ax +255)),round(koef*(ay+146))); Image1.Canvas.LineTo(round(koef*(ax +253)),round(koef*(ay+158))); Image1.Canvas.LineTo(round(koef*(ax +265)),round(koef*(ay+155))); Image1.Canvas.MoveTo(round(koef*(ax +290)),round(koef*(ay+152))); Image1.Canvas.LineTo(round(koef*(ax +280)),round(koef*(ay+162))); Image1.Canvas.MoveTo(round(koef*(ax +270)),round(koef*(ay+140))); Image1.Canvas.LineTo(round(koef*(ax +260)),round(koef*(ay+150))); Image1.Canvas.MoveTo(round(koef*(ax +300)),round(koef*(ay+230))); Image1.Canvas.LineTo(round(koef*(ax +300)),round(koef*(ay+170))); Image1.Canvas.MoveTo(round(koef*(ax +350)),round(koef*(ay+200))); Image1.Canvas.LineTo(round(koef*(ax +180)),round(koef*(ay+200))); Image1.Canvas.MoveTo(round(koef*(ax +300)),round(koef*(ay+200))); Image1.Canvas.LineTo(round(koef*(ax +230)),round(koef*(ay+150))); Image1.Canvas.LineTo(round(koef*(ax +230)),round(koef*(ay+250))); Image1.Canvas.LineTo(round(koef*(ax +300)),round(koef*(ay+200))); procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); {ïîëîæåíèå êóðñîðà ìûøè} begin x0:=(round(koef+230)); y0:=(round(koef+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; drow; end; procedure TForm1.ComboBox4Change(Sender: TObject); {óâåëè÷åíèå ìàñøòàáà} begin if ComboBox4.Itemindex=0 then koef:=1.2; drow; end. |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 07.04.2011
Сообщений: 28
|
![]()
всё))
спасибо, я разобрался)) |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Заливка и масштаб объекта в дельфи | Сергей58rus | Помощь студентам | 0 | 05.05.2011 19:22 |
CLR. Ошибка C3918. Как вызвать из объекта обработчик, переданный родителю объекта от деда? | Stilet | Общие вопросы .NET | 0 | 15.01.2011 17:49 |
Масштабирование и поворот графического объекта | haros | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 02.03.2009 15:24 |
С помощью методов и свойств объекта осуществляется управление терминалом. Имя (идентификатор) объекта | User>lia | Общие вопросы Delphi | 4 | 16.01.2009 16:37 |
Как поменять одну из текстур объекта не меняя все остальные и без повторной загрузки объекта в GLScene | DomKr@t | Мультимедиа в Delphi | 0 | 14.12.2008 01:52 |