Перейти к содержанию
Fire Monkey от А до Я
  • 0

StringrGrid переехал из Seatle в Berlin в пути пропал багаж (DragDrop, DblClick)


Alexander

Вопрос

Рекомендуемые сообщения

  • 0
9 часов назад, Alexander сказал:

Попытался открыть проект в Berlin'е, среда выдала ошибку что не находит обработчиков DragOver, DragDrop, DblClick, MouseDown...

Вопрос: где искать? 

Если их нет: что делать?

Вы прямо с языка у меня сняли! Тоже хотел написать про DblClick.

Ссылка на комментарий
  • 0

Конечно это... не очень хорошее отношение к продукту, блин.Пока лучше не Siettlle оставаться.

Можно попробовать такой финт ушами. Перед формой где используется грид прописать класс

  TStringGrid = class(FMX.Grid.TStringGrid)..., и в нем прописать обработчики, а вформе назначить их вручную
Т.е. получим нечто следующее:

uses
  System.SysUtils, System.Types, System.UITypes, System.Rtti, System.Classes,
  System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.Layouts, FMX.Grid;

type
  TStringGrid = class(FMX.Grid.TStringGrid)
  published
    property OnDblClick;
    //...
  end;

  TForm5 = class(TForm)
    StringGrid1: TStringGrid;
    procedure FormCreate(Sender: TObject);
    procedure StringGrid1DblClick(Sender: TObject);
  private
    procedure SubscribeControlsEvents;
  public
  end;

var
  Form5: TForm5;

implementation

{$R *.fmx}

procedure TForm5.FormCreate(Sender: TObject);
begin
  SubscribeControlsEvents;
end;

procedure TForm5.StringGrid1DblClick(Sender: TObject);
begin
//
end;

procedure TForm5.SubscribeControlsEvents;
begin
  StringGrid1.OnDblClick := StringGrid1DblClick;
end;

 

Ссылка на комментарий
  • 0

мы точно в одной и той же теме пишем?

изначальный вопрос. "был проект, я его открыл в новой версии IDE. Обработчики не срабатывают"

При чем тут предки и т.п.?

Ссылка на комментарий
  • 0

В Berlin-e в объявлении published у класса Grid пропала часть обработчиков. Поэтому и возникла указанная ошибка - при открытии формы не находятся обработчики. Явный косяк разработчиков, ну мы не об этом.

У меня нет исходников, поэтому я не могу точно сказать, что там за рефакторинг был проведен. В VCL, например, такие обработчики у базового класса в секции protected объявлены.

 Т.е. если в базовом классе они в секции public, то в моем примере класс TStringGrid = class(FMX.Grid.TStringGrid) не нужен.

Ссылка на комментарий
  • 0

открыл, кинул грид. 5 секунд

вписал grid1.onDblClick и контрол+клик по нему. они public. еще 5 сек.

написал

grid1.onDblClick := MyOldDblClick;

итого 15 сек на решение проблемы

а куда делись исходники? триал?

Изменено пользователем krapotkin
Ссылка на комментарий
  • 0

Коллеги, часть событий, действительно переехала из Published в Public, по причине полной, или частичной неработоспособности. Это как бы толстый намек, что ими пользоваться не рекомендуется. Потому, что унаследованные события используются самим гридом по своему усмотрению. Это была моя инициатива, видимо мне и придется восстанавливать свою карму.

В этой связи у меня вопрос, что вы пытаетесь делать на OnClick, OnDblClick и.т. В событиях OnSelectCell и OnSelChanged это ни как нельзя делать?

 

Ссылка на комментарий
  • 0

ну так, с ходу - DblClick селектом не заменить

для десктопа дабл - все-таки предпочтительный способ совершения действий

но намек понят и запомнен

я правда понял намек еще в XE3 по-своему - нигде больше не использую гриды....

Ссылка на комментарий
  • 0
22 минуты назад, krapotkin сказал:

ну так, с ходу - DblClick селектом не заменить

для десктопа дабл - все-таки предпочтительный способ совершения действий

но намек понят и запомнен

я правда понял намек еще в XE3 по-своему - нигде больше не использую гриды....

Умолчательное действие это по первому клику выбираем ячейку, по второму входим в режим редактирования. Кроме того что Click, что DblClick выполняются перед выбором ячейки и не понятно в каком месте происходило нажатие и не понятно по отношению к какой ячейке надо выполнять действия.

Вообще же Grid переписан чуть менее, чем полностью. Теперь он сделан по принципу Presentation/Model. Т.е. можно будет делать нативные гриды, но пока сделан только вариант для iOS.
Вот небольшой Demo-проект, который скорее всего войдет в Update1.

GridDemo.zip

Ссылка на комментарий
  • 0

Вот тут бы определиться - два клика через "большой" интервал очень отличаются от Double Click.

В Windows это очевидно прямо в Explorer

В классическом гриде ничего подобного не происходит, и при DblClick мы точно знаем, что Col, Row установлены уже на кликнутую ячейку. От нативности это имхо не зависит 

Ссылка на комментарий
  • 0
37 минут назад, RoschinSpb сказал:

Коллеги, часть событий, действительно переехала из Published в Public, по причине полной, или частичной неработоспособности. Это как бы толстый намек, что ими пользоваться не рекомендуется. Потому, что унаследованные события используются самим гридом по своему усмотрению. Это была моя инициатива, видимо мне и придется восстанавливать свою карму.

В этой связи у меня вопрос, что вы пытаетесь делать на OnClick, OnDblClick и.т. В событиях OnSelectCell и OnSelChanged это ни как нельзя делать?

 

Очень широко использовал и использую grid, так как в основном программирую для десктопов windows и mac. OnDblClick нужен! Двойной клик использую по разному.  Иногда для помещения в рядом стоящий edit какой либо информации. Иногда для открытия формы для редактирования этой записи (Бывает, что строка в grid'е составлена из разных таблиц, поэтому напрямую не отредактируешь ее).

Ссылка на комментарий
  • 0
14 минуты назад, RoschinSpb сказал:

Вообще же Grid переписан чуть менее, чем полностью. Теперь он сделан по принципу Presentation/Model. Т.е. можно будет делать нативные гриды, но пока сделан только вариант для iOS.
Вот небольшой Demo-проект, который скорее всего войдет в Update1.

GridDemo.zip

Пример может и хороший, но оценить не получается, нет  fmx.grid.ios на который ссылается uses

Ссылка на комментарий
  • 0

Понятно. Область видимости в Update1 уже не поменять. В следующей версии возможно добавлю пару событий OnCellClick OnCellDblClick с параметрами, чтобы можно было определить ячейку куда ткнули.

Ссылка на комментарий
  • 0
1 минуту назад, Vitaldj сказал:

Пример может и хороший, но оценить не получается, нет  fmx.grid.ios на который ссылается uses

Что, вообще среди исходников нету? По идее должен входить в поставку, наверно надо путь указать правильный. Можно и просто удалить этот модуль из Uses и проекта. Тогда будет работать только стилевой вариант.

 

Ссылка на комментарий
  • 0
3 минуты назад, RoschinSpb сказал:

В следующей версии возможно добавлю пару событий OnCellClick OnCellDblClick с параметрами

Это было бы великолепно!

А нельзя прикрутить свойство, активировав бы которое, при нехватке места в ячейке, показывалось бы Hint'ом содержимое ячейки? Вот так, например:

Screenshot - 10_06 002.png

К сожалению на скрине не видно мышки, она на слове "капли"

Ссылка на комментарий
  • 0
9 минут назад, RoschinSpb сказал:

Что, вообще среди исходников нету? По идее должен входить в поставку, наверно надо путь указать правильный. Можно и просто удалить этот модуль из Uses и проекта. Тогда будет работать только стилевой вариант.

 

Нет, есть, нашел. У вас в примере просто для этого модуля написан прямой путь: c:\fmx/grid/ios.pas

Исправил, но программа вываливается в Access violation ((( хоть на винде, хоть на ios

Ссылка на комментарий
  • 0

а на телефоне грид вообще не вариант

в вот уже на планшете - можно и посмотреть

и действительно desktop программы от переезда удерживает на 95% отсутствие внятного грида

может, давайте отдельную тему заведем/перенесем/отредактируем отдельно по пожеланиям в гриды, раз уж разработчик среди нас

может, и ListView тоже у нас, нет?

Ссылка на комментарий
  • 0
12 минуты назад, krapotkin сказал:

а на телефоне грид вообще не вариант

в вот уже на планшете - можно и посмотреть

и действительно desktop программы от переезда удерживает на 95% отсутствие внятного грида

может, давайте отдельную тему заведем/перенесем/отредактируем отдельно по пожеланиям в гриды, раз уж разработчик среди нас

может, и ListView тоже у нас, нет?

ListView это не моя тема.
Про грид, можно и в отдельную тему. Но давайте сразу исходить из того, что все должно работать в числе прочего и на мобилных платформах. Варианты расширения только для дэсктопа можно сделать и своими руками.
Пожелания по новым фичам и исправлениям если они оформляются во что-то конкретное пожалуйста дублируйте в QC.
По OnClick OnDblClick несколько запросов в QC уже было.

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...