Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.12.28;
Скачать: CL | DM;

Вниз

Схему рабочего механизма   Найти похожие ветки 

 
DOjD   (2008-11-15 20:20) [0]

Ребята, в общем надо мне сделать схему рабочего механизма (из рисунка), и на неё нанести точечки или флажки, что бы при наведении на точку всплывал hint, а при щелчке на флажок появлялась доп картинка с более детальным изображением части рабочего механизма.
Дайте инфу, что как сделать, ссылочки, советы на каких компонентах проще реализовать... спасибо!


 
Johnmen ©   (2008-11-15 20:22) [1]

Ничего не выйдет. Забей.


 
DOjD   (2008-11-15 20:31) [2]


> Ничего не выйдет. Забей.

Спасибо... учту, но загрузить картинку в TIMAGE думаю можно, осталось прорисовать на TIMAGE флажки и при он Click вывести форму с более подробным рисунком... (теоретически)
Вопрос  в том как добавить на TIMAGE новые картинки в заданные координаты?


 
Johnmen ©   (2008-11-15 20:38) [3]

Хм... Вопрос уже другой?
Всё равно забей. Глупости это...


 
DOjD   (2008-11-15 20:40) [4]


> Всё равно забей. Глупости это...

Спасибо, задумаюсь над этим, когда закончу этот проект! ))


 
KilkennyCat ©   (2008-11-16 00:52) [5]

HotImage tmssoftware


 
Германн ©   (2008-11-16 00:55) [6]


> Вопрос  в том как добавить на TIMAGE новые картинки в заданные
> координаты?

Добавляй не "на TIMAGE", а "поверх  TIMAGE".


 
DOjD   (2008-11-16 08:36) [7]


> Добавляй не "на TIMAGE", а "поверх  TIMAGE".

Спасибо сделал, но вопрос в  том как при изменении размера Image1, сделать так, что бы Image2  оставался примерно в том же месте Image1?


 
AIK ©   (2008-11-16 10:34) [8]


> но вопрос в  том как при изменении размера Image1, сделать
> так, что бы Image2  оставался примерно в том же месте Image1?
>

До изменения размера Image1 или после?
если после  то при изменении размера Image1 присвоить его кординаты (Left, Top) Imag"у 2, ну а если до то сперва присвоить а потом изменения размера Image1.
Или кажется я вообще тебя не понял :(


 
@!!ex ©   (2008-11-16 11:37) [9]

Какие ждесткие вопросы поджнимают на ДМ. :)


 
@!!ex ©   (2008-11-16 12:02) [10]

http://www.mediafire.com/?bp3zducg1li
Задача просто сверхсложная...


 
DOjD   (2008-11-16 21:45) [11]


> Задача просто сверхсложная...

Спасибо уважаемый @!!ex за то что накидали примерчик, дело не в этом....
Объясню суть проблемы подробнее...
Есть Form1, на ней Image1. Image1 имеет свойства AutoSize:=True; Center:=:=True; Align:=alClient; и самое главное Proportional:=True; (важно иначе если рисунок больше формы он не влазиет на нее... виден только его кусок....)
При загрузке рисунка в Image1, рисунок выравнивается пропорционально размерам и при его не пропорциональности по отношению формы (например ширина рисунка меньше ширины формы а высота больше) по бокам остается пустое место...сам рисунок центрируется по центру, но главное помещается полностью!
Делаю так:

> если после  то при изменении размера Image1 присвоить его
> кординаты (Left, Top) Imag"у 2, ну а если до то сперва присвоить
> а потом изменения размера Image1.


procedure TForm1.FormResize(Sender: TObject);
begin
Image2.Left:=Round((Image2.Left*Form1.Width)/WOld);
Image2.Top:=Round((Image2.Top*Form1.Height)/HOld);
WOld:=Form1.Width;
HOld:=Form1.Height;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
WOld:=Form1.Width;
HOld:=Form1.Height;
end;



но при изменении ширины формы рисунок из-за свойства Proportional:=True; не изменяется (в силу того что высота рисунка больше высоты формы а ширина рисунка больше ширины формы), а Image то тянется в ширину в месте с формой... вот и получаю что сам рисунок закруженный в Image1 не изменяется а Image2 при этом изменяет свое положение из-за увеличения Image1.... тоесть расширили форму по ширине рисунок загруженный в Image1 остался неизменным в  размере а Image2 сместился....... а нужно что бы был привязан к реальному размеру не Image а рисунка загруженного в Image!
Надеюсь довел суть! ))


 
KSergey ©   (2008-11-17 10:59) [12]

А координаты точек привязки относительно первоначального рисунка хотя бы известны?
Ну и просто пересчитывать исходные координаты привязки к отмасштабированным (только не спрашивайте как, это неприличный вопрос для окончившего хотя бы 5..6 классов церковно-приходской).
И я бы лучше ручками масштабировал картинку, чтобы быть уверенным в результате. Хотя, если поведение достаточно предсказуемо у точность +-пиксель не критична - то пусть само масштабируется.


 
MsGuns ©   (2008-11-17 11:06) [13]

С одним разъединственным имеджем ничего не выйдет. Это все равно, что наносить "точечные" удары по объектам атомными взрывами. Следует вместо одной картинки использовать сложные конструкции графических объектов и связей между ними (опять же графических).
Задача для начинающего сверхсложная и попросту нереализуемая - правильно johnmen сказал.
Есть целые специальные программы для подобных задач (типа автокадов), надо брать либо их, либо искать соответствующие компоненты.


 
DOjD   (2008-11-17 21:35) [14]


> MsGuns ©

Что ж благодарю за мнение уважаемые!
Делаю как можно проще!


 
Германн ©   (2008-11-17 21:40) [15]


> MsGuns ©   (17.11.08 11:06) [13]
>
> С одним разъединственным имеджем ничего не выйдет. Это все
> равно, что наносить "точечные" удары по объектам атомными
> взрывами. Следует вместо одной картинки использовать сложные
> конструкции графических объектов и связей между ними (опять
> же графических).

Ты неисправим. Опять парадокс?
:)


 
MsGuns ©   (2008-11-17 21:57) [16]

>Германн ©   (17.11.08 21:40) [15]

"Мимо ганзовских ремарок
Я без реплик не хожу
То лайно всучу в подарок
То шутиху покажу"
    почти (с)

;)


 
DOjD   (2008-11-18 02:45) [17]

Можно как нибудь узнать момент когда Image1 полностью прорисовался? (Например после изменения размера формы)


 
Германн ©   (2008-11-18 03:54) [18]


> DOjD   (18.11.08 02:45) [17]
>
> Можно как нибудь узнать момент когда Image1 полностью прорисовался?
>  (Например после изменения размера формы)
>

Э. Хм. А зачем?


 
DOjD   (2008-11-18 10:23) [19]

Для того, что бы пробежать по пикселям формы и выяснить границы (левая,правая,верхняя,нижняя) рисунка на форме..


 
{RASkov} ©   (2008-11-18 10:32) [20]

> [19] DOjD   (18.11.08 10:23)

Глупость какая-то....
Но можешь "бежать по пикселам" в конце метода рисования "рисунка на форме"...


 
{RASkov} ©   (2008-11-18 11:39) [21]

> [17] DOjD   (18.11.08 02:45)
> Можно как нибудь узнать момент когда Image1 полностью прорисовался?

Перекрыть метод Paint;

> что бы пробежать по пикселям

только при

> после изменения размера

или при любой перерисовке картинки? т.е. каждый раз бегать в припрыжку по пикселам я думаю не обязательно...
Тогда нужно переписать TImage добавив в него флаг и перекрыть SetBounds, где возводить флаг, и Paint где проверять флаг и сбрасывать его если установлен, но при этом пощекотать пикселы....


 
MsGuns ©   (2008-11-18 12:24) [22]

>Тогда нужно переписать TImage добавив в него флаг и перекрыть SetBounds, где возводить флаг, и Paint где проверять флаг и сбрасывать его если установлен, но при этом пощекотать пикселы....

И ты представляешь себе, как это будет выглядеть ?
:)


 
{RASkov} ©   (2008-11-18 12:29) [23]

> [22] MsGuns ©   (18.11.08 12:24)

Хм....
Вот так примерно:
 TMyImage = class (TImage)
 private
   FSizing: Boolean;
 protected
   procedure Paint; override;
 public
   procedure SetBounds(ALeft: Integer; ATop: Integer; AWidth: Integer; AHeight: Integer); override;
 end;
...........
procedure TMyImage.Paint;
begin
 inherited;
 if FSizing then try
  //Тут бежим сломя голову по пикселам....
 finally
  FSizing:=False;
 end;
end;

procedure TMyImage.SetBounds(ALeft, ATop, AWidth, AHeight: Integer);
begin
 FSizing:=True;
 inherited;
end;
:) Или не то?)


 
Справочнег   (2008-11-19 10:47) [24]

Попробуй это http://delphikingdom.ru/asp/viewitem.asp?catalogid=1386



Страницы: 1 вся ветка

Текущий архив: 2008.12.28;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.014 c
15-1225230195
Германн
2008-10-29 00:43
2008.12.28
Спам-боты


15-1224965370
Real
2008-10-26 00:09
2008.12.28
Singularity - кто-нибудь ставил?


2-1227036079
front
2008-11-18 22:21
2008.12.28
Объявление переменной


2-1227009468
ekto
2008-11-18 14:57
2008.12.28
удилить дубликаты строк MS SQL Server


2-1226840008
Ruzzz
2008-11-16 15:53
2008.12.28
как быстро загрузить в Listview до 500 000 записей?