В чём отличия tshape от timage?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
yantux
постоялец
Сообщения: 133
Зарегистрирован: 29.10.2007 15:02:33
Откуда: Санкт-Петербург
Контактная информация:

В чём отличия tshape от timage?

Сообщение yantux »

Я так понимаю, отличия заключаются только в том, что tshape теоритически должен занимать меньше ресурсов!
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

yantux
В TShape уже встроено рисование некоторых графических примитивов - овал, квадрат и т.п. У TImage ничего подобного нет, там надо рисовать на канве самостоятельно. Это главное отличие. Все остальные отличия - сущие пустяки. :)
Последний раз редактировалось Vadim 06.02.2011 03:34:02, всего редактировалось 1 раз.
yantux
постоялец
Сообщения: 133
Зарегистрирован: 29.10.2007 15:02:33
Откуда: Санкт-Петербург
Контактная информация:

Сообщение yantux »

Vadim писал(а):yantux
В TShare уже встроено рисование некоторых графических примитивов - овал, квадрат и т.п. У TImage ничего подобного нет, там надо рисовать на канве самостоятельно. Это главное отличие. Все остальные отличия - сущие пустяки. :)

Ну как же нет? В timage есь canvas, разве не так?
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Canvas есть много где, если чё :wink:
А если так, то совершенно разные компоненты и предназначены они для разных целей! Если честно то TShare это атавизм пришедший из Delphi! ИМХО.
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

yantux
:D
Canvas - это то, на чём рисуют. Холст, по другому говоря. А я Вам говорил о наличии готовых встроенных процедур рисования, которые автоматически рисуют примитив на этой самой канве. У других компонентов автоматически ничего не рисуется, для рисования Вы сами должны, вручную, задать рисование чего-либо.
yantux
постоялец
Сообщения: 133
Зарегистрирован: 29.10.2007 15:02:33
Откуда: Санкт-Петербург
Контактная информация:

Сообщение yantux »

Vadim писал(а):yantux
:D
Canvas - это то, на чём рисуют. Холст, по другому говоря. А я Вам говорил о наличии готовых встроенных процедур рисования, которые автоматически рисуют примитив на этой самой канве. У других компонентов автоматически ничего не рисуется, для рисования Вы сами должны, вручную, задать рисование чего-либо.


Т.е. у TShare есть свои уникальные нужные фишки, которые есть только у него, но нет у других? Где об этом можно почитать? Мне то кажется, что canvas есть везде и я не вижу ни чего особенного в TShare, но если чтото есть и это можно использовать с пользой, то есть ли дока по этому поводу?

Добавлено спустя 40 секунд:
Mr.Smart писал(а):Canvas есть много где, если чё :wink:
А если так, то совершенно разные компоненты и предназначены они для разных целей! Если честно то TShare это атавизм пришедший из Delphi! ИМХО.


Т.е. вы считате, что TShare устраел и не рекомендуете его использовать?
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

yantux я считаю, что он не только устаревший, но и совершенно ненужный.
ViTality
постоялец
Сообщения: 308
Зарегистрирован: 05.10.2007 15:12:02

Сообщение ViTality »

Vadim писал(а):TShare

:arrow: TShape :evil:
yantux
постоялец
Сообщения: 133
Зарегистрирован: 29.10.2007 15:02:33
Откуда: Санкт-Петербург
Контактная информация:

Сообщение yantux »

ViTality писал(а):
Vadim писал(а):TShare

:arrow: TShape :evil:


Да, да, да... TShape!
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

yantux писал(а):Т.е. у TShare есть свои уникальные нужные фишки, которые есть только у него, но нет у других?

Особенность TShape в том, что у него эти функции вызываются автоматически, при создании (или при переопределении) компонента, в зависимости от того, какую фигуру Вы задали при проектировании. Это единственная фишка TShape. В принципе, ничего уникального тут нет, т.к. у любого компонента, у которого есть доступный Canvas можно сделать аналогичную фишку в событии OnCreate.
yantux писал(а):Где об этом можно почитать?

1. В хелпе по Delphi. (Кто бы мог подумать, не правда ли? :) )
2. В любой книге по Delphi, в которой есть описание компонента. Однако хочу сразу же предостеречь, что подробное описание этого компонента Вы нигде не найдёте, т.к. он никогда не пользовался особой популярностью именно в силу банальности того, что он делает.

По поводу использования с пользой. :)
Когда-то давно я делал одному чуваку диплом именно на этих компонентах. TShape использовались в качестве набора таскаемых по форме электронных компонентов (транзисторы, резисторы, конденсаторы и т.п.) и соединений между ними, дабы при перемещении компонентов не затирать их изображения на канве вручную. Да и как их перемещать по форме, чтобы это было явно видно, я по другому не придумал. :)
Соответственно, в слегка изменённом классе TShape были переопределены фигуры рисования по умолчанию и процедуры, которые их рисуют.
Ответить