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

Лидеры

  1. Brovin Yaroslav

    Brovin Yaroslav

    Администраторы


    • Баллы

      3

    • Постов

      2 124


  2. haword

    haword

    Пользователи


    • Баллы

      1

    • Постов

      535


  3. Dimonka

    Dimonka

    Пользователи


    • Баллы

      1

    • Постов

      7


Популярный контент

Показан контент с высокой репутацией 05.12.2014 во всех областях

  1. Добрый день, Ошибку завел в трекере. Временный Workaround: Открыть файл FMX.Grid.pas Найти TCustomGrid.DoContentPaint Предположительно 2292 строчка. Найти код: if TGridOption.RowLines in Options then begin W := Content.Width - 1; P := TPointF.Create(0, TopRow * FRowHeight); P := Content.LocalToAbsolute(P); P := TControl(Sender).AbsoluteToLocal(P); P.Offset(0.5, -0.5); for I := 0 to VisibleRows do // no -1 begin Canvas.DrawLine(P, PointF(P.X + W, P.Y), LAbsoluteOpacity); P.Offset(0, FRowHeight); end; end; Добавить после P.Offset(0.5, -0.5) P.X := P.X + ViewportPosition.X; Добавить исправленный файл в ваш проект.
    1 балл
  2. Глюки на глюках. Проблема в том что LowerCase который используется в TSearchBox не преобразовывает буквы в нижний регистр но зато вводимые данные в поиск преобразовываются в нижний регистр. Lower := Text.Trim.ToLower; - введенный текст в нижем регистре LowerCase(X).Contains(Lower); не может найти текст так как регистр не поменялся для X Есть в ListView строка с текстом "Ярослав". При вводе в поле поиска текста "Яро", он преобразовывается в нижний регистр и получается "яро". далее ищется вхождение "яро" слове "Ярослав", не находит и поле попадает под фильтр. Решение: заменяем LowerCase(X).Contains(Lower); на X.ToLower.Contains(Lower);
    1 балл
  3. Как правильно написал haword, да, такая ошибка есть в XE7. Она уже была локально устранена. Решения для всех у кого XE7. Найти файл FMX.SearchBox.pas, заменить код: procedure TSearchBoxModel.DoChangeTracking; var Lower: string; begin inherited; Lower := Text.Trim.ToLower; if SearchResponder <> nil then SearchResponder.SetFilterPredicate( function (X: string): Boolean begin Result := Lower.IsEmpty or LowerCase(X).Contains(Lower); end); end; На: procedure TSearchBoxModel.DoChangeTracking; var Lower: string; begin inherited; Lower := Text.Trim.ToLower; if SearchResponder <> nil then SearchResponder.SetFilterPredicate( function (X: string): Boolean begin Result := Lower.IsEmpty or X.ToLower.Contains(Lower); // <-- заменить LowerCase на ToLower end); end; И добавить этот файл в ваш проект
    1 балл
  4. TGrid не хранит значения в отличии от TStringGrid. Поэтому TGrid запрашивает данные в тот момент, когда они необходимы для отображения ячейки через событие: TGrid.OnGetValue. В качестве параметров передается запрашиваемые данные для строки Row и столбца Col, а так же непосредственно параметр для передачи самого значения Value. Поэтому, чтобы вам задать значение для любого столбца, вам нужно написать обработчик для события OnGetValue. И в Value поместить значение. Например, чтобы для столбца типа TImageColumn присвоить значение нужно написать следующий код: procedure TForm4.Grid1GetValue(Sender: TObject; const Col, Row: Integer; var Value: TValue); var Bitmap: TBitmap; begin // загружаем любое изображение Bitmap := TBitmap.CreateFromFile('image.png'); // Конвертируем изображение в универсальный тип TValue из RTTI Value := TValue.From<TBitmap>(Bitmap); end;
    1 балл
  5. Ну если уж брать алгоритмы нахождения пересечения, то универсальные. Например этот: http://angusj.com/delphi/clipper.php
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...