20.05.2011, 22:01 | #1 (permalink) |
Новичок
Регистрация: 20.05.2011
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите с Делфи
1) вывод титульного листа 2)перемещение объекта по экрану 3)масштабирование с использованием векторной графики 4)добавление новых копий объекта и удаление существующих с выводом их номера 5)изменение стиля объекта 6)контроль выхода объекта за пределы границы экрана 7)возможность управления объектом с клавиатуры,мышью 8)запись состояния в файл и возможность восстановить состояние по желаю пользователя. это в кратком изложении. Далее будет представлен мой код программы. вот в каких пунктах у МЕНЯ проблема. 1)когда объект следует за мышью, он каждый раз отдалется от курсора все дальше и дальше. 2)когда добавляешь новую копию,предыдущие пропадают с экрана. не знаю как их вернуть обратно. и чтобы ВСЕ копии были на экране одновременно 3)контроль выхода за пределы экрана - вообще без понятья. 4)клава почему то не всегда срабатывает при перемещении 5) запись в файл. это с помощью Assign??? я умею только в определенное место определенный файл.... unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, Menus,ShellAPI, StdCtrls,Unit2; type TForm1 = class(TForm) Image1: TImage; Panel1: TPanel; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; Button5: TButton; Panel2: TPanel; N4: TMenuItem; N5: TMenuItem; N6: TMenuItem; N7: TMenuItem; N8: TMenuItem; N9: TMenuItem; N10: TMenuItem; N11: TMenuItem; N12: TMenuItem; N3: TMenuItem; N13: TMenuItem; N14: TMenuItem; N15: TMenuItem; procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Button1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure N6Click(Sender: TObject); procedure N8Click(Sender: TObject); procedure N9Click(Sender: TObject); procedure N10Click(Sender: TObject); procedure N11Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; masx,masy: integer; x,y,i,cur,vsego: integer; koef:real; flag:bool; implementation {$R *.dfm} procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin masx:=x+10; masy:=y+10; Image1.Canvas.FillRect(rect(0, 0, image1.width,image1.height)); Image1.Canvas.MoveTo(masx+round(koef*(50+x)),masy+ round(koef*(10+y))); // стержень Image1.Canvas.LineTo(masx+round(koef*(50+x)),masy+ round(koef*(100+y))); // стержень Image1.Canvas.MoveTo(masx+round(koef*(30+x)),masy+ round(koef*(30+y))); // верхняя палочка Image1.Canvas.LineTo(masx+round(koef*(70+x)),masy+ round(koef*(30+y))); // верхняя палочка Image1.Canvas.MoveTo(masx+round(koef*(30+x)),masy+ round(koef*(30+y))); // левая веточка Image1.Canvas.LineTo(masx+round(koef*(50+x)),masy+ round(koef*(50+y))); // левая веточка Image1.Canvas.MoveTo(masx+round(koef*(70+x)),masy+ round(koef*(30+y))); // правая веточка Image1.Canvas.LineTo(masx+round(koef*(50+x)),masy+ round(koef*(50+y))); // правая веточка Image1.Canvas.MoveTo(masx+round(koef*(30+x)),masy+ round(koef*(50+y))); // нижняя палочка Image1.Canvas.LineTo(masx+round(koef*(70+x)),masy+ round(koef*(50+y))); // нижняя палочка Image1.Canvas.MoveTo(masx+round(koef*(75+x)),masy+ round(koef*(50+y))); // стрелочка 1 Image1.Canvas.LineTo(masx+round(koef*(90+x)),masy+ round(koef*(40+y))); // стрелочка 1 Image1.Canvas.MoveTo(masx+round(koef*(80+x)),masy+ round(koef*(40+y))); // стрелочка 1 Image1.Canvas.LineTo(masx+round(koef*(90+x)),masy+ round(koef*(40+y))); // стрелочка 1 Image1.Canvas.MoveTo(masx+round(koef*(90+x)),masy+ round(koef*(47+y))); // стрелочка 1 Image1.Canvas.LineTo(masx+round(koef*(90+x)),masy+ round(koef*(40+y))); // стрелочка 1 Image1.Canvas.MoveTo(masx+round(koef*(75+x)),masy+ round(koef*(30+y))); // стрелочка 2 Image1.Canvas.LineTo(masx+round(koef*(90+x)),masy+ round(koef*(20+y))); // стрелочка 2 Image1.Canvas.MoveTo(masx+round(koef*(80+x)),masy+ round(koef*(20+y))); // стрелочка 2 Image1.Canvas.LineTo(masx+round(koef*(90+x)),masy+ round(koef*(20+y))); // стрелочка 2 Image1.Canvas.MoveTo(masx+round(koef*(90+x)),masy+ round(koef*(27+y))); // стрелочка 2 Image1.Canvas.LineTo(masx+round(koef*(90+x)),masy+ round(koef*(20+y))); // стрелочка 2 Image1.Canvas.TextOut(masx+round(koef*(70+x)),masy +round(koef*(80+y)),'VD'+IntToStr(vsego)); end; procedure TForm1.Button1Click(Sender: TObject); // увеличение объекта begin koef:=koef+0.1; end; procedure TForm1.N2Click(Sender: TObject); // открытие программы begin koef:=1; vsego:=1; Image1.Canvas.FillRect(rect(0, 0, image1.width,image1.height)); Image1.Canvas.MoveTo(50+x,10+y); // стержень Image1.Canvas.LineTo(50+x,100+y); // стержень Image1.Canvas.MoveTo(30+x,30+y); // верхняя палочка Image1.Canvas.LineTo(70+x,30+y); // верхняя палочка Image1.Canvas.MoveTo(30+x,30+y); // левая веточка Image1.Canvas.LineTo(50+x,50+y); // левая веточка Image1.Canvas.MoveTo(70+x,30+y); // правая веточка Image1.Canvas.LineTo(50+x,50+y); // правая веточка Image1.Canvas.MoveTo(30+x,50+y); // нижняя палочка Image1.Canvas.LineTo(70+x,50+y); // нижняя палочка Image1.Canvas.MoveTo(75+x,50+y); // стрелочка 1 Image1.Canvas.LineTo(90+x,40+y); // стрелочка 1 Image1.Canvas.MoveTo(80+x,40+y); // стрелочка 1 Image1.Canvas.LineTo(90+x,40+y); // стрелочка 1 Image1.Canvas.MoveTo(90+x,47+y); // стрелочка 1 Image1.Canvas.LineTo(90+x,40+y); // стрелочка 1 Image1.Canvas.MoveTo(75+x,30+y); // стрелочка 2 Image1.Canvas.LineTo(90+x,20+y); // стрелочка 2 Image1.Canvas.MoveTo(80+x,20+y); // стрелочка 2 Image1.Canvas.LineTo(90+x,20+y); // стрелочка 2 Image1.Canvas.MoveTo(90+x,27+y); // стрелочка 2 Image1.Canvas.LineTo(90+x,20+y); // стрелочка 2 Image1.Canvas.TextOut(70+x,80+y,'VD'+IntToStr(vseg o)); end; procedure TForm1.Button2Click(Sender: TObject); // уменьшение begin koef:=koef-0.1; end; procedure TForm1.Button3Click(Sender: TObject); // добавление begin vsego:=vsego+1; end; procedure TForm1.Button4Click(Sender: TObject); // удаление begin vsego:=vsego-1; end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); // перемещение по форме begin if key=vk_Shift then begin masx:=x+10;end; if key=vk_Space then begin masy:=y+10; end; end; procedure TForm1.N6Click(Sender: TObject); // показ титульника begin Form2.Show; end; procedure TForm1.N8Click(Sender: TObject); //добавление begin vsego:=vsego+1; end; procedure TForm1.N9Click(Sender: TObject); //удаление begin vsego:=vsego-1; end; procedure TForm1.N10Click(Sender: TObject); //уменьшить begin koef:=koef-0.1; end; procedure TForm1.N11Click(Sender: TObject); //увеличить begin koef:=koef+0.1; end; end. помогите пожалуйста, хоть в чем нибудь. не дайте убиться и завалить сессию..... |
20.05.2011, 22:01 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Безусловно стоит уделить немного внимания на аналогичные темы Помогите с заданием по Делфи Помогите с задачей по Делфи Делфи. Помогите, пожалуйста! Помогите написать программу на языке Делфи Помогите написать программу в делфи Помогите, пожалуйста, с программой на языке делфи |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|