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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2011, 10:39   #11
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А зачем такой нетривиальный способ использования невизуального компонента на стадии проектирования? Что компонент должен делать во время выполнения?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 31.10.2011, 11:17   #12
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Цитата:
А зачем такой нетривиальный способ использования невизуального компонента на стадии проектирования? Что компонент должен делать во время выполнения?
Он должен нарисовать картинку на форме но так чтобы картинку нельзя было выбрать и что-бы по нажатию на эту картинку не перенаправляло на компонент
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 31.10.2011, 11:35   #13
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Невозможно. Это противоречит правилам disign-time т.к. он позволяет перемещать обькты, не зависимо от того, хотите вы этого или нет.


И вот вопрос:
Цитата:
Он должен нарисовать картинку на форме но так чтобы картинку нельзя было выбрать
У IDE есть мозги он знает где рисовать картинку, не зная ращмеров рартанки, и рамеров форм?
Человек_Борща вне форума Ответить с цитированием
Старый 31.10.2011, 11:40   #14
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Делайте на базе TImage, картинка спокойно отобразиться, выбрать нельзя, поскольку фокус не получает, OnClick не делайте и не будет ни какой реакции на нажатие картинки
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 31.10.2011, 13:05   #15
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Цитата:
Делайте на базе TImage, картинка спокойно отобразиться, выбрать нельзя, поскольку фокус не получает, OnClick не делайте и не будет ни какой реакции на нажатие картинки
Это как? Вроде бы будет пунктирная линия?
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 31.10.2011, 13:38   #16
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Вроде бы будет пунктирная линия
Чем мешает пунктирная линия в среде разработки? При выполнении ее не будет, а чтобы фона не было делайте его прозрачным.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 31.10.2011, 14:27   #17
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

есть некоторые просветления в этой проблеме она ещё не решена но на подходе
в общем кое как работает ))))
Код:
private
    { Private declarations }
wndp:TWndMethod;
    procedure ppp (var Message: TMessage);
...
constructor TWindow1.Create(AOwner: Tcomponent);
begin
  inherited Create(AOwner);
  wndp:=TWINControl(AOwner).WindowProc;
  TWINControl(AOwner).WindowProc:=ppp;
end;

procedure TWindow1.ppp(var Message: TMessage);
begin
 if Message.Msg=WM_Paint then begin
 paint;
 end;
 wndp(Message);
end;
Но теперь он рисуется по верх всех объектов (((
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 31.10.2011, 15:08   #18
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

если уж надо рисоваться то проще и наследуйтесь от визуального класса(например TGraphicControl).
и там переопределите нужный метод(Paint) и рисуйтесь(чтоб определить что вы находитесь в design-time то просто ставите проверку
Код:
if csDesigning in ComponentState then
).

TGraphicControl это предок TImage со всеми вытекающими.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 31.10.2011 в 15:13.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.10.2011, 15:22   #19
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Цитата:
TGraphicControl это предок TImage со всеми вытекающими.
Я в курсе но как раз проблема визуального компонента в том что он растянется во всю длину и при щелчке на картинку будет вызывать компонент мой, а мне надо чтоб была форма
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 31.10.2011, 16:03   #20
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Я в курсе но как раз проблема визуального компонента в том что он растянется во всю длину и при щелчке на картинку будет вызывать компонент мой, а мне надо чтоб была форма
кто растянется?
что надо то, можете обьяснить желательно с примером схемкой/картинкой.

а про вытекающие я имел в виду что любой тяжелый компонент(имеющий свое окно) будет его перекрывать.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перехватить событие формы (Движение) ImmortalAlexSan Общие вопросы Delphi 12 02.01.2011 11:36
Событие сворачивание формы KoBRaAndrey Общие вопросы Delphi 7 02.06.2010 10:32
Событие после открытия формы VistaSV30 Microsoft Office Access 2 29.01.2010 11:19
Событие click по заголовку формы? Polotenchik Общие вопросы Delphi 3 24.06.2009 12:48
Событие OnShow формы Antoha Общие вопросы Delphi 4 12.02.2008 21:13