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

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

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2012, 14:39   #1
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию Модуль "Линии"

Писал чисто для себя.
Возможно кому-нибудь пригодится.
Жду адекватной критики.
Что можно улучшить?
(Код во вложении, так как больше 5к символов )
Для работы:
вписать модуль в Uses
a - переменная типа Tlines
В событии создания формы:
a := tlines.Create(self);
a.Parent := self;
doublebuffered := true;//для нормального отображения

Для добавления линии:
a.addline(x1, y1, x2, y2, rad: integer; penc, brushc: tcolor);
где x1,y1 - координаты 1 точки
x2,y2 - координаты 2 точки
rad - радиус точек на концах
penc - цвет линий
brushc - цвет точек на концах
Вложения
Тип файла: txt Lines.txt (5.2 Кб, 142 просмотров)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 18.05.2012, 14:51   #2
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Писал чисто для себя.
Возможно кому-нибудь пригодится.
Жду адекватной критики.
Что можно улучшить?
(Код во вложении, так как больше 5к символов )
Для работы:
вписать модуль в Uses
a - переменная типа Tlines
В событии создания формы:
a := tlines.Create(self);
a.Parent := self;
doublebuffered := true;//для нормального отображения

Для добавления линии:
a.addline(x1, y1, x2, y2, rad: integer; penc, brushc: tcolor);
где x1,y1 - координаты 1 точки
x2,y2 - координаты 2 точки
rad - радиус точек на концах
penc - цвет линий
brushc - цвет точек на концах

Во Класный модуль - давно искал, думал сам писать !!!
еще добавим несколько функции типа Pen.Width>1 и стрелочки
+ возможность поворота вокруг своей оси
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype
denisbrain вне форума Ответить с цитированием
Старый 18.05.2012, 23:11   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Похоже, правильнее описать процедуру Mousedown чуть по-другому:
Код:
procedure TLines.MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  i: integer;
begin
  i := 0;
  while i <= high(p) do
  begin
    with p[i] do
      if button = mbLeft then
      begin
        if sqr(x - p1.X) + sqr(y - p1.Y) <= r * r then
          w := 1
        else
          if sqr(x - p2.X) + sqr(y - p2.Y) <= r * r then
            w := 2
          else
            if abs(sqrt(sqr(x - p1.X) + sqr(y - p1.Y)) + sqrt(sqr(x - p2.X) + sqr(y - p2.Y)) - sqrt(sqr(p1.x - p2.X) + sqr(p1.y - p2.Y))) < 1 then
              w := 3
            else
              w := 0;
        x0 := x;
        y0 := y;
        inc(i);
      end
      else
        if (button = mbRight) and (
          (abs(sqrt(sqr(x - p1.X) + sqr(y - p1.Y)) + sqrt(sqr(x - p2.X) + sqr(y - p2.Y)) - sqrt(sqr(p1.x - p2.X) + sqr(p1.y - p2.Y))) < 1)
          or (sqr(x - p1.X) + sqr(y - p1.Y) <= r * r)
          or (sqr(x - p2.X) + sqr(y - p2.Y) <= r * r)) then
          deleteline(i)
        else
          inc(i);
  end;
end;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 19.05.2012, 18:13   #4
ZLoy_molo4nik
 
Регистрация: 16.09.2010
Сообщений: 5
По умолчанию

Здравствуйте, у меня возникла проблема с рисованием фигур (пишу на делфи 7), точнее нужно нарисовать фигуру а потом ее поредактировать, уже создавал тему но никто так и не ответил (http://www.programmersforum.ru/showt...48#post1043448), хотел спросить у BDA, может вы посоветуете литературу что бы я мог розобратся. Еще на шел програмку которая делает то что мне нужно, но я немогу в ней разобраться.
Вложения
Тип файла: zip my_vecpaint.zip (1,016.0 Кб, 11 просмотров)
ZLoy_molo4nik вне форума Ответить с цитированием
Старый 19.05.2012, 20:39   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

ZLoy_molo4nik, вы переговорили с denisbrain?
Литературу не могу посоветовать, т.к. ничего не читал
Тему вашу видел, но ничего не написал, т.к. не представляю себе, как это делать.
Исходники программы достаточно прилично закоментированы, но она слишком комплексная, чтобы так с ходу понять полностью принцип работы.
Если не можете разобраться, то измените внешний вид, поудаляйте или перепишите комментарии
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 19.05.2012, 21:18   #6
ZLoy_molo4nik
 
Регистрация: 16.09.2010
Сообщений: 5
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
ZLoy_molo4nik, вы переговорили с denisbrain?
Литературу не могу посоветовать, т.к. ничего не читал
Тему вашу видел, но ничего не написал, т.к. не представляю себе, как это делать.
Исходники программы достаточно прилично закоментированы, но она слишком комплексная, чтобы так с ходу понять полностью принцип работы.
Если не можете разобраться, то измените внешний вид, поудаляйте или перепишите комментарии
да, я с ним говорил, просто хотел почитать про то как это делать.
Вот в том то и дело что нужно разобраться как правильно это сделать, просто написал ГИС, рисую обьекты обычними методами, все ок, только хотелось бы их редактировать. Спасибо за ответ
ZLoy_molo4nik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. воваава Помощь студентам 3 01.12.2011 12:50
В Excel XP дополнительная ось категории не имеет св-во "линии сетки"? O_H Microsoft Office Excel 1 10.08.2010 16:16
Моя реализация игры "Линии" zamaevac Gamedev - cоздание игр: Unity, OpenGL, DirectX 7 21.04.2010 18:56
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04