Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 20.05.2011, 22:01   #1 (permalink)
Nikola Tesla
Новичок
 
Регистрация: 20.05.2011
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Exclamation Помогите с Делфи

Здравствуйте,Форумчане!!!! Обращаюсь к вам в критический момент. Через несколько дней защищать курсовую,а у меня запарка с некоторыми функциями. Курсовая по Делфи. В общем задание курсовой,чтобы было легче ориентироваться в моих каракулях. ПРограмма должна осуществлять:
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.

помогите пожалуйста, хоть в чем нибудь. не дайте убиться и завалить сессию.....
Nikola Tesla вне форума   Ответить с цитированием

Старый 20.05.2011, 22:01
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Безусловно стоит уделить немного внимания на аналогичные темы

Помогите с заданием по Делфи
Помогите с задачей по Делфи
Делфи. Помогите, пожалуйста!
Помогите написать программу на языке Делфи
Помогите написать программу в делфи
Помогите, пожалуйста, с программой на языке делфи

Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 10:41.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.