Где я должен начать при создании компонента?

ПК, вероятно, установят Acrobat? Я думаю, что Acrobat устанавливает расширение оболочки, таким образом, предварительные просмотры первой страницы документа в формате PDF появляются в режиме просмотра миниатюр Windows Explorer. Можно получить миниатюры сами через API IExtractImage COM, который необходимо будет обернуть. VBAccelerator имеет пример в C#, который Вы могли портировать на Python.

5
задан Rob Kennedy 20 November 2009 в 20:16
поделиться

6 ответов

Вы можете заказать книгу Рэя Конопки «Дев. Пользовательские компоненты Delphi 3 - PDF за 25 $. Это специализированная книга по данной теме, которая очень хороша и для новичков.

Основные принципы разработки компонентов:

  1. Является ли компонент визуальным или not (Нужен ли холст для рисования)

  2. Нужен ли ему дескриптор окна (визуальный или невизуальный)

После того, как вы ответили на эти вопросы, вы можете посмотреть исходный код Delphi для примеров.

6
ответ дан 18 December 2019 в 10:45
поделиться

Насколько мне известно, Delphi Component Design , написанная Дэнни Торпом, по-прежнему остается лучшей книгой по этой теме. Конструкция компонентов не претерпела существенных изменений за последние 15 лет, поэтому любые книги, которые у вас есть, вероятно, не так устарели, как вы думаете. При чтении старых ссылок следует помнить о трех вещах:

  1. Названия некоторых юнитов изменились. Например, DsgnIDE больше нет. Вместо этого это DesignIDE.

  2. Код времени разработки теперь строго отделен от кода времени выполнения. Это означает, что вы не можете использовать DesignIDE в модуле вашего компонента, иначе вам запрещено использовать пакеты времени выполнения. В старых версиях Delphi не было этого технического ограничения (хотя это всегда было юридическим ограничением), поэтому старые примеры кода, которые вы найдете, возможно, придется немного изменить.

5
ответ дан 18 December 2019 в 10:45
поделиться

Самый простой способ сделать то, что вы хотите, - создать новую форму. Отбросьте ярлыки и изображение и расположите их так, как хотите; если это соответствует вашим потребностям, поместите их на панель, чтобы их можно было перемещать как единое целое.

Выберите все компоненты, которые вы хотите включить (включая панель, если вы решили ее использовать), а затем щелкните элемент «Компонент» в главном меню IDE и выберите «Создать шаблон компонента». (Это возможно только в том случае, если вы выбрали компоненты в текущей форме.) Появится диалоговое окно с запросом имени для нового компонента и страницы палитры компонентов, на которой вы хотите, чтобы он отображался.

3
ответ дан 18 December 2019 в 10:45
поделиться

Взгляните на эту статью , в которой описывается, как создавать новые компоненты, состоящие из группы существующих компонентов.

1
ответ дан 18 December 2019 в 10:45
поделиться

Не беспокойтесь о том, что ваши книги устарели.

Практически все из старых времен по-прежнему работает нормально, а то немногое, что не так, обычно связано с конфликтами имен или добавлением Unicode в версии 2009 г.

Они не Microsoft, они не взламывают старый код без уважительной причины. Фактически, возьмите некоторый код из старых дней DOS - если он не пытается манипулировать экраном, он, вероятно, будет работать с минимальными исправлениями.

1
ответ дан 18 December 2019 в 10:45
поделиться

Не беспокойтесь о своих старых книгах! Начиная с v3, Delphi не сильно изменился. Вот почему большинство программ, скомпилированных с D3, все еще компилируются в D7 или даже более новых версиях. И если он не компилируется, возможно, вам нужно изменить пару строк здесь и затем.

Я бы порекомендовал вам поискать другие ОЧЕНЬ простые компоненты в Интернете и посмотреть, как они создаются. Тогда сделайте свой собственный и разместите здесь. Пусть другие взглянут на это и предложат улучшения или обнаружат ошибки.

О дизайне вашего элемента управления:

1) возможно, вам НЕ нужны эти два ярлыка. Вы можете просто нарисовать текст прямо на изображении. Если у вас много этих компонентов, как вы говорите, вы можете сэкономить немного памяти.

2) вы НЕ можете захотеть загружать много-много-много изображений в одной форме. Накладные расходы могут быть значительными. Что вы можете сделать, так это загрузить изображения ТОЛЬКО в изображения, которые видны на экране - и вы поместите на экран ТОЛЬКО 5-10 изображений (или любое другое количество изображений, которое вы можете показать в форме, не выходя за пределы экрана). Когда пользователь прокручивает страницу вниз, вы сохраняете те же элементы управления TImage на экране, но загружаете в них новые (следующие) изображения.

3) Возможно, вы не захотите хранить метки и TImage в массиве (я полагаю, что это TImage потому что кажется, что вы хотите показать их на экране, иначе ярлыки вам не понадобятся - вам нужно объяснить свою проблему более подробно, если я ошибся). Но вместо этого вы можете сохранить TBitmap и текст (который вы хотите отображать в метках).

Таким образом, вам может потребоваться подсчитать, какие накладные расходы на ЦП / диск создадут сотни элементов управления и сколько памяти им потребуется. Если вы остаетесь менее 1 ГБ, а время загрузки менее 10 секунд, то это относительно нормально. ЕСЛИ нет, вы можете подумать о дизайне вашего элемента управления, прежде чем начинать его реализацию.

Надеюсь, это было полезно. Увидимся.

0
ответ дан 18 December 2019 в 10:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: