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

Лидеры

  1. Равиль Зарипов (ZuBy)

    Равиль Зарипов (ZuBy)

    Модераторы


    • Баллы

      8

    • Постов

      2 517


  2. Andrey Efimov

    Andrey Efimov

    Модераторы


    • Баллы

      2

    • Постов

      842


  3. Brovin Yaroslav

    Brovin Yaroslav

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


    • Баллы

      1

    • Постов

      2 124


  4. Mars M

    Mars M

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


    • Баллы

      1

    • Постов

      63


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

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

  1. вот например https://community.embarcadero.com/blogs/entry/10-1-berlin-premium-style-pack-for-vcl-and-firemonkey
    3 балла
  2. Да, конечно, там даже на фото видно, что включён bluetooth на LG, а все остальные сети отключены (вкл. мобильную). Да, можно конечно. Я вам выложу вообще весь проект, с уже собранными приложениями, т.е. в папках лежат исходники, apk-файлы, exe-файлы. (осторожно весит 145 МБ) залил на свой Google Диск https://drive.google.com/open?id=0BwEZB8sRo0DSc3lodnJWbDR3Nms На каких девайсах пробуете и какие версии Андроида на них? p.s. Собрано на Delphi Berlin Update 1
    2 балла
  3. procedure Parsing(URLToPars: string; aListView: TListView); var TempText: string; HeadMatches, MsgMatches: TMatchCollection; CountPagesMatch: TMatch; i: Integer; HeadRegularExprString: string; MsgRegularExprString: string; begin // вот это место, которое хотелось бы видеть с в потоке и с индикатором: <form1>.AniIndicator1.Enabled := true; // вот это место, которое хотелось бы видеть с индикатором TTask.Run( procedure begin HTMLText := IdHTTP1.Get(URLToPars); // выполняем загрузку файла из интернета; CountPagesMatch := TRegEx.Match(HTMLText, 'max="(.*?)".*value="(.*?)"'); HeadRegularExprString := 'class="date">(.*?)<.*?class="id">(.*?)<'; MsgRegularExprString := 'class="text">(.*?)<\/div>'; HeadMatches := TRegEx.Matches(HTMLText, HeadRegularExprString, [roIgnoreCase, roMultiLine]); MsgMatches := TRegEx.Matches(HTMLText, MsgRegularExprString, [roIgnoreCase, roMultiLine]); TThread.Synchronize(TThread.CurrentThread, procedure begin aListView.Items.Clear; if HeadMatches.Count = MsgMatches.Count then begin for i := 0 to HeadMatches.Count - 1 do begin TempText := HTMLClear(MsgMatches.Item.Groups[1].Value); with aListView.Items.Add do begin Data['DateText'] := HeadMatches.Item.Groups[1].Value; Data['CitateText'] := HeadMatches.Item.Groups[2].Value; Data['MainText'] := TempText; Data['imgCopy'] := il1.Bitmap(TSizeF.Create(36, 36), 0); Data['imgSend'] := il1.Bitmap(TSizeF.Create(36, 36), 1); end; end; end else ShowMessage('Ошибка загрузки данных!'); <form1>.AniIndicator1.Enabled := false; end); end); end;
    1 балл
  4. я могу дать две подсказки 1) ваш вариант мой вариант 2) ShowMessage(ItemObject.Name); UPDATE: Чтобы закрыть тему, приложу измененный вариант 111.zip
    1 балл
  5. procedure Parsing(URLToPars: string; aListView: TListView); var TempText: string; HeadMatches, MsgMatches: TMatchCollection; CountPagesMatch: TMatch; i: Integer; HeadRegularExprString: string; MsgRegularExprString: string; begin // вот это место, которое хотелось бы видеть с в потоке и с индикатором: <form1>.AniIndicator1.Enabled := true; // вот это место, которое хотелось бы видеть с индикатором TTask.Run( procedure begin HTMLText := IdHTTP1.Get(URLToPars); // выполняем загрузку файла из интернета; TThread.Synchronize(TThread.CurrentThread, procedure begin aListView.Items.Clear; CountPagesMatch := TRegEx.Match(HTMLText, 'max="(.*?)".*value="(.*?)"'); HeadRegularExprString := 'class="date">(.*?)<.*?class="id">(.*?)<'; MsgRegularExprString := 'class="text">(.*?)<\/div>'; HeadMatches := TRegEx.Matches(HTMLText, HeadRegularExprString, [roIgnoreCase, roMultiLine]); MsgMatches := TRegEx.Matches(HTMLText, MsgRegularExprString, [roIgnoreCase, roMultiLine]); if HeadMatches.Count = MsgMatches.Count then begin for i := 0 to HeadMatches.Count - 1 do begin TempText := HTMLClear(MsgMatches.Item.Groups[1].Value); with aListView.Items.Add do begin Data['DateText'] := HeadMatches.Item.Groups[1].Value; Data['CitateText'] := HeadMatches.Item.Groups[2].Value; Data['MainText'] := TempText; Data['imgCopy'] := il1.Bitmap(TSizeF.Create(36, 36), 0); Data['imgSend'] := il1.Bitmap(TSizeF.Create(36, 36), 1); end; end; end else ShowMessage('Ошибка загрузки данных!'); <form1>.AniIndicator1.Enabled := false; end); end); end;
    1 балл
  6. к таким вопросам прикладывайте проект
    1 балл
  7. Добрый вечер В моей статье, я описывал способ работы с TBitmap. В вашем же случае, вы работаете с канвой. У канвы формы нету Bitmap. Поэтому ваш код падает при попытке вызывать Map у не существующего объекта. Для решения вашей задачи, нужно: Помнить о самое главной вещи при работе с канвой в FMX. Это то, что выполнять отрисовку можно только в определенный моменты времени (в отличии от VCL). Непосредственно, когда получен системный запрос на отрисовку сцены (формы), а именно в событиях OnPaint, OnPainting (в вашем случае у панели). Знать, что канва существует в единственном экземпляре в рамках одной формы (опять же в отличии от VCL, где свою канву имеет каждый оконный контрол). Резюмирую, все выше сказанное. procedure TForm4.Panel1Paint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); var X, Y: Integer; PixelRegion: TRectF; begin Canvas.Stroke.Color := TAlphaColorRec.Red; for X := 0 to Floor(Panel1.Width) - 1 do for Y := 0 to Floor(Panel1.Height) - 1 do begin PixelRegion := TRectF.Create(TPointF.Create(X, Y), 1, 1); Canvas.DrawRect(PixelRegion, 0, 0, AllCorners, 1); end; end; Задаем обработчик на событие TPanel.OnPaint. Используя канву переданную через параметры, задаем цвет кисти и отрисовываем логические пиксели. Для закраски пикселей, я воспользовался обычной отрисовкой квадрата с шириной в 1 логический пиксель. Если речь идет об андроиде, то из-за возможного наличия экрана с повышенной плотностью пикселей (Screen Scale) это код для экранов со Scale отличных от 1 и не кратных 2, будет рисовать сдвоенные/размазанные линии. Чтобы этого избежать, нужно перед отрисовкой выполнить округление региона до физических пикселей при помощи метода TCanvas.AlignToPixel. procedure TForm4.Panel1Paint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); var X, Y: Integer; PixelRegion: TRectF; PixelPos: TPointF; begin Canvas.Stroke.Color := TAlphaColorRec.Red; for X := 0 to Floor(Panel1.Width) - 1 do for Y := 0 to Floor(Panel1.Height) - 1 do begin PixelPos := Canvas.AlignToPixel(TPointF.Create(X, Y)); PixelRegion := TRectF.Create(PixelPos, 1, 1); Canvas.DrawRect(PixelRegion, 0, 0, AllCorners, 1); end; end;
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...