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

Лидеры

  1. Brovin Yaroslav

    Brovin Yaroslav

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


    • Баллы

      1

    • Постов

      2 124


  2. Andrey Efimov

    Andrey Efimov

    Модераторы


    • Баллы

      1

    • Постов

      842


  3. Alexey Lovchikov

    Alexey Lovchikov

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


    • Баллы

      1

    • Постов

      37


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

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

  1. Как отловить событие выполнения JavaScript, например событие console.log, чтоб инициировать выполнение delphi логики Задача заключается в организации взаимодействия delphi кода с TWebBrowser и обратно. Необходимо при нажатии кнопки html страницы выполнять код delphi
    1 балл
  2. Слипом вы подвешиваете главный поток, поэтому кнопка остаётся нажатой. Почему не происходит прорисовка, я точно сказать не могу, но скорее всего связано с подвешенным главным потоком. Чтобы ваш код заработал, можно, например, использовать "Application.ProcessMessages" (кнопка будет нажата): procedure TForm1.Button1Click(Sender: TObject); begin Panel1.Visible := True; Application.ProcessMessages; Sleep(3000); Panel1.Visible := False; Application.ProcessMessages; end; Или воспользоваться потоками (кнопка будет в обычном состоянии): procedure TForm1.Button1Click(Sender: TObject); begin TThread.CreateAnonymousThread( procedure begin TThread.Synchronize(nil, procedure begin Panel1.Visible := True; end); TThread.Sleep(3000); TThread.Synchronize(nil, procedure begin Panel1.Visible := False; end); end ).Start; end; Можно написать вот так (без синхронизации тоже работает, это у меня уже в привычку вошло, работу с визуальными компонентами в синхронизацию запихивать): Используйте вариант описанный выше. Возможно, есть более лучшее решение...
    1 балл
  3. Поменялась логика работы грида. Теперь он самостоятельно отрисовывает ячейки и не создает для каждой ячейки отдельный контрол. Поэтому старый способ работать не будет. Новый вариант решения - это самостоятельно нарисовать ячейку грида: uses FMX.TextLayout, System.UIConsts; procedure TForm2.Grid1DrawColumnCell(Sender: TObject; const Canvas: TCanvas; const Column: TColumn; const Bounds: TRectF; const Row: Integer; const Value: TValue; const State: TGridDrawStates); const HorzTextMargin = 2; VertTextMargin = 1; var TextLayout : TTextLayout; TextRect: TRectF; begin // Здесь определяем какую ячейку будем перерисовывать if (Column = StringColumn1) and (Row = 1) then begin TextRect := Bounds; TextRect.Left := TextRect.Left + 1; TextRect.Bottom := TextRect.Bottom -1; TextRect.Inflate(-HorzTextMargin, -VertTextMargin); Canvas.FillRect(TextRect, 0, 0, AllCorners, 1); TextLayout := TTextLayoutManager.DefaultTextLayout.Create; try TextLayout.BeginUpdate; try TextLayout.WordWrap := False; TextLayout.Opacity := Column.AbsoluteOpacity; TextLayout.HorizontalAlign := StringGrid1.TextSettings.HorzAlign; TextLayout.VerticalAlign := StringGrid1.TextSettings.VertAlign; TextLayout.Trimming := TTextTrimming.Character; TextLayout.TopLeft := TextRect.TopLeft; TextLayout.Text := Value.ToString; TextLayout.MaxSize := PointF(TextRect.Width, TextRect.Height); { Пользовательские настройки отрисовки } TextLayout.Font.Family := 'Times New Roman'; TextLayout.Font.Style := [ TFontStyle.fsBold ]; TextLayout.Font.Size := 14; TextLayout.Color := claBlueViolet; finally TextLayout.EndUpdate; end; TextLayout.RenderLayout(Canvas); finally TextLayout.Free; end; end; end;
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...