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

HyperZen

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

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

  • Посещение

  • Победитель дней

    1

Весь контент HyperZen

  1. Спасибо! Не хотелось мне всю процедуру заносить в синхронизацию, видимо, без этого никуда )
  2. procedure Parsing(URLToPars: string; aListView: TListView); var TempText : string; HeadMatches, MsgMatches: TMatchCollection; CountPagesMatch: TMatch; i: Integer; HeadRegularExprString : string; MsgRegularExprString : string; begin try // вот это место, которое хотелось бы видеть с в потоке и с индикатором: HTMLText := IdHTTP1.Get(URLToPars); // выполняем загрузку файла из интернета; // вот это место, которое хотелось бы видеть с индикатором 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('Ошибка загрузки данных!'); except On E: Exception do ShowMessage('Ошибка: ' + E.Message); end; end;
  3. Вот проект, все работает корректно, пока нет события onUpdateObjects (в проекте с ним, если удалить - то все начинает работать как надо) 111.rar
  4. В продолжение темы http://fire-monkey.ru/topic/3307-tlistview-как-отловить-нажатие-на-картинку-в-tlistview/ При использовании автоматического подсчета высоты итема, картинки становятся не кликабельны... Подсчет идет при помощи процедуры с этого форума, в onUpdateObjects.
  5. Спасибо! Немного перефразирую вопрос: у меня имеется процедура, в которой происходит закачка страницы с интернета. В ней же - происходит поиск нужной мне информации регулярными выражениями. Далее, в ней же - очистка от лишних символов. И заполнение TListView. Хочу "обернуть" момент закачки страницы в TAniIndicator. Интегрирую данный код с использованием TTask (место, где идет закачка страницы). Получаю exception на регулярных выражениях (это, видимо, потому, что еще не скачана страница целиком). Как сделать так, чтобы шла закачка страницы, показывался индикатор, а моя процедура - выполнялась позже. Есть ли возможность как-то "дождаться" закачки страницы, а затем выполнять код процедуры далее? И как вообще правильно поступать в таких случаях?
  6. Спасибо! Но в примере Ярослава более "наглядно", что ли, выглядит код. Там сразу понятно где запускать анимацию индикатора, где тормозить ее. Как быть с использованием TTask и индикатора?!
  7. Как правильно передать полученные значения в потоке (например строку, очень длинную строку) в главную форму приложения? Использовать глобальные переменные? Или есть другой способ? Использую пример Ярослава: http://fire-monkey.ru/topic/30-фоновое-выполнение-операции-без-замораживания-отрисовки/?controller=topic Вместо Sleep использую обычное скачивание страницы с интернета при помощи IdHTTP1.Get, записываю результат в какую-то переменную, затем пытаюсь использовать ее в главной форме приложения... Как все-таки правильно?
  8. http://fire-monkey.ru/topic/2856-возвращаясь-к-вопросу-о-подсчете-высоты-текста-tlistview/
  9. Нет. Как только я ни бился с расчетом высоты итемов компонента ListView... Ничего не помогало, пока я не понял, что все ошибки связаны с размером шрифта по-умолчанию, установленного в конкретном устройстве. Обошел эту проблему, теперь все работает корректно на любых (ЛЮБЫХ) устройствах! Для этого при расчете высоты итема прибавляю к размеру шрифта 0.1 и все расчет ведутся корректно. А процедуру расчета взял на этом замечательном форуме.
  10. Огромное спасибо! А как различить две разные картинки? Выполнить разные действия при нажатии на соответствующую кнопку?
  11. Добрый день! Как отловить нажатие на картинку в компоненте TListView (режим - DynamicAppearance) и получить доступ (например вывести в виде сообщения) к тексту текущего Item'а? (Berlin upd 1) Test.rar
  12. begin TDialogServiceAsync.InputQuery('Adv Options', ['Discover Targets at'], [''], procedure(const AResult: TModalResult; const AValues: array of string) begin case AResult of mrOk: begin // необходимые действия end; mrCancel: begin Exit; end; end; end );
  13. http://fire-monkey.ru/topic/30-фоновое-выполнение-операции-без-замораживания-отрисовки/#comment-80
  14. Что-то я туплю не работает, тыкните, пожалуйста, в ошибку if Key = vkHardwareBack then begin if (back_pressed + 2000) > MilliSecondOfTheDay(now) then begin Close end else begin {$IFDEF ANDROID} ToastMsg('Нажмите еще раз для выхода...'); {$ENDIF} back_pressed := MilliSecondOfTheDay(now); end; end;
  15. private static long back_pressed; @Override public void onBackPressed() { if (back_pressed + 2000 > System.currentTimeMillis()) { super.onBackPressed(); } else { Toast.makeText(getBaseContext(), "Нажмите еще раз для выхода", Toast.LENGTH_SHORT).show(); } back_pressed = System.currentTimeMillis(); } Вот код для С++. Может кто его в Delphi превратить?
  16. Добрый вечер! Сабж, собственно. Как отловить двойное нажатие кнопки Back, как это сделано для выхода из программы ES проводник?!
  17. Такая проблема наблюдается только на TListView и касается только цвета текста... Видимо очередной баг.
  18. Как раз те элементы, которые были вне экрана - обновляются и стиль к ним применяется нормально. Не меняется цвет шрифта в видимой области TListView.
  19. Приведите кто-нибудь, пожалуйста, пример, простой пример - переключения двух стилей в приложении... Желательно используя TListView в данном проекте... Уже бесит данная ситуация... // не помогает ни: lvMain.NeedStyleLookup; lvMain.ApplyStyleLookup; // не помогает ни: lvMain.Resize; // ни: lvMain.Repaint; Помогает только полная загрузка данных заново в этот компонент...
  20. А можно проект глянуть? Просто интересно как он в Берлине себя поведет...
  21. В Берлине свойство Trimming работает нормально, при обрезании длинного предложения появляется три точки и в рантайме тоже... У Вас Берлин?
  22. Можно поинтересоваться какое? Мне что-то ни NeedStyleLookup ни ApplyStyleLookup не помогает... Итемы перерисовываются некорректно...
  23. Судя по первому скриншоту, у Вас все поля одинаковые по размеру, т.е. высота компонента не выставляется от количества введенного в него текста. Вам следует пересмотреть подсчет высоты компонента относительно текста, а установленное свойство Trimming никак на это не влияет...
  24. Видимо, потому что текст не влезает...
×
×
  • Создать...