willi

Пользователи
  • Публикации

    15
  • Зарегистрирован

  • Посещение

О willi

  • Звание
    Пользователь
  • День рождения

Информация

  • Пол
    Мужчина
  • Город
    Санкт-Петербург

Посетители профиля

139 просмотров профиля
  1. Работает - главное, не вызывать нигде LBM.Free;
  2. Ага! - оказалось, по умолчанию - при отключенных опциях - линии просто выключены - позабыл я еще попробовать Kind=Solid В общем - пока у меня локальный вывод: при рисовании ячеек в TGrid очень желательно выставлять полностью всё перед началом вывода на Canvas: включая также Padding=0.
  3. 2. В отношении разделительных линий: Я отключил прорисовку линий в Options TGrid - при этом прямоугольник заполняется полностью - границ нет, однако, в этом режиме (таблица без линий) есть другая особенность: любые команды типа Canvas.DrawRect Canvas.DrawLine Canvas.Draw... ничего на канву не выводят - т.е. границу так не нарисовать. Это - если кто-то столкнется со странностями при прорисовке каких-то контуров в ячейках... Vitaldj см. пункт 1 в моем первом сообщении этой темы
  4. procedure TForm18.Grid1DrawColumnCell(Sender: TObject; const Canvas: TCanvas; const Column: TColumn; const Bounds: TRectF; const Row: Integer; const Value: TValue; const State: TGridDrawStates); /// var LB:TGraphicField; LBM:FMX.Graphics.TBitmap; begin if Column.Index=1 then begin try Canvas.BeginScene; CoLumn.Padding.Rect:=rectF(0,0,0,0); Canvas.Fill.Color:=TAlphaColorRec.Green; Canvas.FillRect(Bounds,0,0,[],1); Canvas.Stroke.Color:=TAlphaColorRec.red; Canvas.DrawRect(Bounds,0,0,[],1); if (Value.IsEmpty=false) and (Value.IsObject=true) then begin LB:=TGraphicField(Value.AsObject); LBM:=FMX.Graphics.TBitmap.Create; try LBM.Assign(LB); Canvas.DrawBitmap(LBM,RectF(0,0,LBM.Width,LBM.Height),Bounds,1); finally LBM.Free; end; end; finally Canvas.EndScene; end; end; end; Спасибо Сергею Рощину - получилось. Действительно, нужно обязательно указать тип поля ftGraphic в свойстве BlobType у полей таблицы TFDMemTable - Причем, мне пришлось заново перезацепить LiveBinding для таблицы и чуть подправить код события - см. выше -у меня в старом моем варианте для поля ftGraphic выдавалась AV на чтение потока (позже посмотрю - почему).
  5. А вот какой эффект получается при добавлении в событие: Padding=0 --> CoLumn.Padding.Rect:=rectF(0,0,0,0); Canvas.Fill.Color:=TAlphaColorRec.Green; Canvas.FillRect(Bounds,0,0,[],1); Canvas.Stroke.Color:=TAlphaColorRec.red; Canvas.DrawRect(Bounds,0,0,[],1); Как видно -- все равно остается некоторое пространство вокруг ячеек
  6. Вот пример с блобами - как видно есть по умолчанию отступ и не работает перерисовка по событию - OnDrawColumnCell - я привожу вариант этого обработчика как в ХЕ8 - но Value - в данном случае - это не объект - и видно только закрашенный прямоугольник... Вверху над таблицей я добавил TImageControl - у него при проходе по таблице поле отображается корректно (привязка LIveBinding) Min_test.zip (Кстати - если не использовать обработчик - выводятся пустые ячейки столбца с блобом)
  7. Спасибо за информацию - я скачал демку - но там особенность в том, что картинки хранятся в TImageList - а в качестве переменной для столбца TGrid - индекс этого списка,как я понял... --- меня же интересовала ситуация с Blob-картинками в полях - например, как в старых примерах с рыбками - в XE8 та же табличка у меня с Blob работала - я постараюсь сделать отдельный воспроизводимый пример...
  8. При переходе на Delphi 10.1 Berlin (FMX) с XE8 возникает много "интересных" нюансов с TGrid: 1. У меня все(!) внутренние ячейки выводятся с отступом в 3px (я перерисовываю их в событии OnDrawColumnCell) от всех сторон - при этом внутри уже по умолчанию используется отсечка по области рисования (т.е. если задать большую область для, к примеру, FillRect - всё равно будет заполняться только с отступом 3px) - мое решение - локально создать var L_Rects:TClipRects; и var L_Bounds:TRectF; ---------> L_Bounds:=Bounds; L_Bounds.Inflate(3,3); // ! - компенсировать отступ SetLength(L_Rects,1); L_Rects[0]:=L_Bounds; /// - далее with aGrid do try Canvas.BeginScene(@L_Rects); // !! ..... рисуем на Canvas finally Canvas.EndScene; SetLength(L_Rects,0); end; 2. Из Published исчезло событие OnApplyStyleLookup - приходится вызывать его где-то при показе таблицы вручную... 3. Также исчезли события OnMouseUp и OnMousDown - похоже на прокол разработчиков - они есть в Public - их нужно прицеплять в коде выставляя их на свои методы формы (параметры методов такие же как и в XE8). 4. LiveBinding у меня не работает для полей с Blob - картинками - при вызове OnDrawColumnCell - для такого вида привязки параметр const Value: TValue или пустой, или (в зависимости от стиля столбца) содержит строку "(Object)" - как показать в таблице blob-поле - картинку в XE10 с помощью Livebinding я так и не понял... 5. Непонятно зачем нужно событие OnDrawColumnBackground - по-моему, оно никогда не срабатывает - совместимость со старыми версиями? ____________ Напишите, если кто-нибудь сталкивался с этими моментами и нашел какой-то другой ответ - хотелось бы использовать LiveBinding как в XE8 и ранних версиях...
  9. учти тот момент, что эффекты и анимация одновременно для одного объекта не работают (в XE8)
  10. Вот исходники под XE8 - хотя, там позориться больше - замысел был, как часто бывает, хороший, но поскольку этот проект не оплачивается, пришлось отложить пока... fmx_decoder.zip
  11. Еще можно, просматривать выбранный элемент в виде xml и править его вручную (немного проще получается, чем лазить по всему файлу стиля)
  12. Там всё сделано, по сути, через процедуру декодировки - планировалось дальнейшее развитие и приведение в человеческий вид... Сейчас, к примеру, не так, как хотелось бы, сохраняется дерево вложенных объектов (вернее вообще никак)... Но для копирования - удаления, очистки набора стилей и некоторых вещей мне лично хватает. Очистка, кстати, позволяет хранить отдельно, например, стили кнопок или прогрессбара и втыкать их в свои наборы стилей по необходимости fmxStyleEditor.zip
  13. Я сделал недавно свой вспомогательный редактор -- именно для копирования из одного набора в другой и ряда дополнит. вещей...
  14. FMX.Android.wGoogleAnalytics.zip