Создание собственного дизайнера форм - PullRequest
2 голосов
/ 08 августа 2009

Я хотел бы создать собственный модуль данных в Delphi, подобный TDataModule (возможно, унаследованный) класс, который будет иметь пользовательский интерфейс проектирования на основе сетки (один компонент на строку, некоторые свойства в виде столбцов). Это возможно? С чего мне начать?

Я сейчас использую Delphi 2007.

Ответы [ 3 ]

3 голосов
/ 09 августа 2009

Может быть, это возможно. Пример конструктора фреймов XML можно найти на странице Новые строительные блоки IDE . Ну, этот пример для Delphi 5, но это может быть хорошей отправной точкой.

2 голосов
/ 08 августа 2009

Как указывает Ник Ходжес здесь:

Рисование на модуле данных в Delphi

было бы трудно нарисовать на потомке TDataModule. Наверное, не невозможно, но не стоит беспокоиться.

Я бы подумал о разработке совершенно нового TDataModule с нуля, чтобы у вас был полный контроль над ним. Конечно, много работы, но в итоге это окупится.

Класс TDataModule находится в модуле Classes.pas. Но это только часть времени выполнения кода. Другие части связаны с IDE. Вы можете найти модули, связанные с ToolsAPI, например, в "c: \ Program Files \ Borland \ BDS \ 4.0 \ source \ ToolsAPI \" для BDS 2006. Вы также можете получить свой собственный модуль данных из TDataModule и зарегистрировать его в RegisterCustomModule (DesignIntf.pas). Я не знаю намного больше по этому вопросу, может быть, другие знают. Как я уже сказал, было бы нелегко сделать что-то подобное. Но, возможно, с этой исходной информацией вы сможете найти то, что вы хотите.

0 голосов
/ 08 августа 2009

Это невозможно в точности, как вы это описали. Вы не можете размещать визуальные компоненты, такие как сетка, в модуле данных. Для этого вам нужна форма или рамка.

Если бы я попытался сделать что-то похожее на то, что вы описываете, я бы использовал список для хранения списка отдельных компонентов, пару кнопок и диалоговое окно выбора для добавления и удаления компонентов из списка, и компонент TJvInspector из JVCL для изменения свойств. Это было бы намного проще, чем пытаться создать единую сетку, подходящую для всех, чтобы справиться с ситуацией.

...