Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Шаблоны форм и собственные события 
:(
    Опции темы
Matrex
Дата 30.10.2016, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 31.1.2006

Репутация: нет
Всего: 2



Доброго дня!!

Есть в Delphi такое понятие как «Шаблоны форм». Хочу создать создать шаблон формы со своим событием. Делаю так:

Код

unit TestEvent_f;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  tOnMyEvent = procedure() of object;

type
  TTestEventForm = class(TForm)
  private
    fOnMyEvent: tOnMyEvent;
    { Private declarations }
  public
    property OnMyEvent: tOnMyEvent read fOnMyEvent write fOnMyEvent;
    { Public declarations }
  end;

var
  TestEventForm: TTestEventForm;

implementation

{$R *.dfm}

end.


И добавляю форму в шаблон (правой кнопкой мыши на форме, затем "Add to Repository").

Вопрос. Как при использовании этой формы в своих проектах сделать так, что бы мое событие (OnMyEvent) выводилось в инспекторе событий?






Это сообщение отредактировал(а) Matrex - 30.10.2016, 14:12
PM MAIL   Вверх
testX
Дата 31.10.2016, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 14.4.2016

Репутация: нет
Всего: нет



Перенести событие из public в published
PM MAIL   Вверх
Matrex
Дата 31.10.2016, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 31.1.2006

Репутация: нет
Всего: 2



Не работает и с published. Точнее не отображается в инспекторе объектов на вкладке "события", там где "OnCreate", "OnShow", если создать эту форму через шаблон. Если назначать событие в real-time все работает, впрочем как и с секцией public. Задача - вывести это событие в инспектор объектов для того что бы работать с событием в design-time...

Ссылка на картинку: Картинка

Это сообщение отредактировал(а) Matrex - 31.10.2016, 17:03
PM MAIL   Вверх
Sajtran
Дата 31.10.2016, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 15.10.2008
Где: Мегион

Репутация: 2
Всего: 2



Репозитории это просто папки шаблонов
Delphi не сможет найти информацию о типах без компиляции исходников в пакет (bpl), соответственно и объявленных вами свойств не будет в инспекторе объектов


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Sajtran
Дата 31.10.2016, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 15.10.2008
Где: Мегион

Репутация: 2
Всего: 2



Репозитории это просто папки шаблонов
Delphi не сможет найти информацию о типах без компиляции исходников в пакет (bpl), соответственно и объявленных вами свойств не будет в инспекторе объектов


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Sajtran
Дата 31.10.2016, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 15.10.2008
Где: Мегион

Репутация: 2
Всего: 2



Репозитории это просто папки шаблонов
Delphi не сможет найти информацию о типах без компиляции исходников в пакет (bpl), соответственно и объявленных вами свойств не будет в инспекторе объектов


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Sajtran
Дата 31.10.2016, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 15.10.2008
Где: Мегион

Репутация: 2
Всего: 2



Репозитории это просто папки шаблонов
Delphi не сможет найти информацию о типах без компиляции исходников в пакет (bpl), соответственно и объявленных вами свойств не будет в инспекторе объектов


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Sajtran
Дата 31.10.2016, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 15.10.2008
Где: Мегион

Репутация: 2
Всего: 2



Репозитории это просто папки шаблонов
Delphi не сможет найти информацию о типах без компиляции исходников в пакет (bpl), соответственно и объявленных вами свойств не будет в инспекторе объектов


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Matrex
Дата 1.11.2016, 07:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 31.1.2006

Репутация: нет
Всего: 2



Плохо. Тогда нужен совет. Есть проект (много форм, работа с БД). Идея с шаблонами состояла в том, что бы создать одну форму-шаблон, в которой заложить все логику работы с БД (добавление, редактирование и т.д.) и достать такие события как «Перед добавлением записи», «Перед редактированием записи» и т.д. наружу.

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

PM MAIL   Вверх
Vas
Дата 2.11.2016, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 828
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 4
Всего: 28



Ну наследуйте свои формы от общей и своим свойствам присваивайте процедуры нужные. Или обязательно надо видеть в инспекторе объектов свойства?


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
Matrex
Дата 3.11.2016, 07:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 31.1.2006

Репутация: нет
Всего: 2



Сейчас так и сделано - использую виртуальные процедуры в наследниках.

Как я понял (пообщавшись в том числе и на других форумах) - есть три решения:

1. Виртуальные методы
2. Свой компонент с событиями
3. Можно из формы сделать компонент а потом из него форму (пока не разобрался как)...

Всем спасибо за советы.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

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

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1224 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.