Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как создать свой специальный контрол?

87K
18 января 2013 года
ctpexhih
2 / / 16.01.2013
Как создать следующий объект:

внешний вид: объект используется для измерения расстояния на сканированном изображении, выглядит как размерная линия на чертежах: две линии, между ними размерная стрелка и число, показывающее расстояние между размерными линиями. Размерные линии не обязательно будут расположены вертикально или горизонтально, могут быть расположены под углом в зависимости от того, между какими точками измеряется расстояние.

функционал: реакция на события (click, mouseenter, mousedown и др.), изменение длины размерной линии при помощи мыши, т.е. пользователь может таскать маркеры и изменять положение размерных линий.

Подскажите в общих чертах, куда копать? Необходимо создать свой контрол, или это можно сделать другими средствами? В общих чертах подскажите общую концепцию, идею, в остальном разберусь сам.

С уважением, Алексей.
1
18 января 2013 года
kot_
7.3K / / 20.01.2000
можно и свой можно и воспользоваться. Общую концепцию подсказать очень просто - меряешь расстояние между первой точкой и второй.
З.Ы. Понимаю что не вовремя - но с тебя 50% за идею. А идея на миллион. :) Но ты должен. Сам понимаешь. Ты попал. Идею тебе дал - теперь разбирайся.
1
18 января 2013 года
kot_
7.3K / / 20.01.2000
Где бабки ссссука? бабло отдай.
1
18 января 2013 года
kot_
7.3K / / 20.01.2000
Алесей ты чЁ? бабло гони, еба
1
18 января 2013 года
kot_
7.3K / / 20.01.2000
где бабки, ля? пацансказал пацансделал?
446
18 января 2013 года
Meander
487 / / 04.09.2011
Давно делал подобное. Вот выложил, посмотри на досуге.

P.S. Правда, что Челябинские парни на столько суровы, что вытираются куском полиэтилена?.
20K
18 января 2013 года
ellor!
198 / / 24.05.2012
Правда. Только не полиэтилена, а рубероида.
1
18 января 2013 года
kot_
7.3K / / 20.01.2000
Цитата: ellor!
Правда. Только не полиэтилена, а рубероида.


нет. не рубероида - а наждака

446
18 января 2013 года
Meander
487 / / 04.09.2011
Вариант собственного компонента в Borland C++ Builder
(схематично). ИМХО в твоем случае это лишнее, достаточно
сделать простой класс реализующий все, что требуется.

Код:
// Файл MyControl.h

#ifndef MyControlH
#define MyControlH
//----------------------------------------
class PACKAGE TMyControl : public T...//Родительский класс
{
private:
  //Недоступные потомкам и юзерам члены
protected:
  //Недоступные юзерам члены
public:
  //Общедоступные члены
  __fastcall TMyControl(TComponent* Owner);
__published:
protected: //TControl::
virtual void __fastcall WWndProc(Messages::TMessage &Message);
};
//----------------------------------------
#endif

// Файл MyControl.cpp

#include "MyControl.h"

//Реализация всех интерфейсных и вспомогательных функций

__fastcall TMyControl::TMyControl(TComponent* Owner)
   : T...(Owner)
{
  //Конструктор твоего класса (не забудь про деструктор)
  //инициализация всех необходимых полей

  TType->WindowProc = WWndProc;
  //TType - компонент, чьи события надо перехватить
}

void __fastcall TMyControl::WWndProc(Messages::TMessage &Message)
{
  switch (Message.Msg)
  {
    case /*код события*/:
    case /*код события*/: //действие
  }
  TType->Dispatch(&Message);
}

namespace Mycontrol
{
   void __fastcall PACKAGE Register()
   {
        TComponentClass classes[1] = {__classid(TMyControl)};
        RegisterComponents("Olegenty", classes, 0);
   }
}

// Использование

//Создать указатель
TMyControl *mctrl;
//Инициализировать
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
  mctrl = new TMyControl(this);
}
1
18 января 2013 года
kot_
7.3K / / 20.01.2000
Цитата: Meander
Вариант собственного компонента в Borland C++ Builder


рильно, весь бизнес запорол. теперь все все будут писать компоненты с именем Olegenty. просто капец

1
18 января 2013 года
kot_
7.3K / / 20.01.2000
не смог переименовать файл Ruletka в Ruletka.exe. ААААаааааа штомеделать????
446
18 января 2013 года
Meander
487 / / 04.09.2011
Цитата: kot_
рильно, весь бизнес запорол. теперь все все будут писать компоненты с именем Olegenty. просто капец


Наоборот! Вдруг кто захочет компонент с другим именем?!

446
18 января 2013 года
Meander
487 / / 04.09.2011
Цитата: kot_
не смог переименовать файл Ruletka в Ruletka.exe. ААААаааааа штомеделать????


Компилировать, однозначно компилировать!

1
18 января 2013 года
kot_
7.3K / / 20.01.2000
волшебное слово - компилировать - я его знааааааааааааааю!!!!!! ура!!!!!!!
446
19 января 2013 года
Meander
487 / / 04.09.2011
Цитата: kot_
волшебное слово - компилировать - я его знааааааааааааааю!!!!!! ура!!!!!!!


вот, блин. Ведь переименование шло за отдельную плату!

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог