Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как работать с непубличными событиями в RAD Studio 10.1 Berlin для компонента TStringGrid

Delphi , Компоненты и Классы , TStringGrid и TDrawGrid

В RAD Studio 10.1 Berlin произошли значительные изменения по сравнению с предыдущими версиями. В частности, в FMX некоторые ранее опубликованные события теперь стали только публичными. Это касается, в том числе, компонента TStringGrid и события OnDblClick, которое ранее было опубликовано, но в новой версии студии выводится предупреждение о том, что такое свойство не существует.

Проблема

Разработчики, работающие с мультиплатформенными проектами в RAD Studio 10.1 Berlin, могут столкнуться с проблемой, когда события, которые ранее были опубликованы, теперь доступны только как публичные. Это затрудняет их использование, так как публичные события не могут быть назначены напрямую в дизайнере интерфейса или с помощью свойств компонента.

Решение проблемы

Способ 1: Создание собственного компонента

Один из подходов заключается в создании собственного компонента, который расширяет TStringGrid, восстанавливая опубликованные обработчики событий. Это можно сделать, используя пример создания компонента FireMonkey:

unit MyStringGrid;

interface

uses FMX.Grids;

type
  TMyStringGrid = class(TStringGrid)
  published
    property OnDblClick;
    property OnMouseDown;
    property OnMouseMove;
    property OnMouseUp;
    property OnMouseWheel;
    property OnMouseEnter;
    property OnMouseLeave;
  end;

procedure Register;
implementation

uses FMX.Types;

procedure Register;
begin
  RegisterComponents('NewPage', [TMyStringGrid]);
end;

initialization
  RegisterFmxClasses([TMyStringGrid]);
end.

Способ 2: Назначение обработчика событий в FormCreate

Если события уже существуют, их можно назначить в процедуре FormCreate. Например:

procedure TForm1.FormCreate;
begin
  StringGrid1.OnDblClick := StringGrid1DblClick;
end;

Комментарии к решениям

  • Создание нового компонента может быть более трудоемким процессом, но он позволяет полностью контролировать поведение компонента.
  • Назначение обработчика событий в FormCreate является более простым и быстрым решением, если есть доступ к событиям.

Подтвержденный ответ

Проблема, описанная в вопросе, действительно существует и подтверждена в системе отслеживания ошибок Embarcadero (https://quality.embarcadero.com/browse/RSP-14683). Разработчики Embarcadero провели рефакторинг, в результате которого некоторые события были исключены из списка опубликованных.

Альтернативный ответ

Возможно, разработчики Embarcadero стремились упростить структуру компонентов, исключив излишние публикации событий, которые не используются в большинстве случаев. Однако это привело к неудобствам для разработчиков, которые привыкли к более гибким настройкам компонентов.

Заключение

В RAD Studio 10.1 Berlin для работы с непубличными событиями компонента TStringGrid можно использовать либо создание собственного компонента с опубликованными событиями, либо назначение обработчиков событий в процедуре FormCreate. Важно учитывать, что выбор метода зависит от конкретных требований проекта и личных предпочтений разработчика.

Создано по материалам из источника по ссылке.

Разработчикам RAD Studio 10.1 Berlin необходимо адаптироваться к изменениям в компоненте TStringGrid, где некоторые ранее опубликованные события стали непубличными, требуя создания нового компонента или назначения обработчиков событий в процеду


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: TStringGrid и TDrawGrid ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-03-14 13:29:05/0.003244161605835/0