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

A. Sharif

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

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

  • Посещение

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

Блок последних пользователей отключён и не показывается другим пользователям.

Достижения A. Sharif

  1. Вроде нашел активити Вконтакте для авторизации, но так и не смог настроить Вк-приложение, чтобы получить доступ. Вечное '{"error":"invalid_client","error_description":"client_id is incorrect"}'. Прикрепил пример, просьба: кто-нибудь попробуйте настроить Вк-приложение и авторизоваться, и отпишитесь, если получится. У меня уже руки опустились) AppIntentAuth.rar
  2. Все работает, авторизация в один клик, спасибо!! Немного помучился с настройками фейсбук-приложения и генерацией Хэш-ключа. Помогла инструкция https://stackoverflow.com/questions/5306009/facebook-android-generate-key-hash?noredirect=1&lq=1. Для Вконтакте тоже, вроде как, есть описание в документации. Буду пробовать)
  3. Возможно ли с помощью intent получить от какого-либо из официальных приложений Вконтакте/Фейсбук/Инст/Google access-token (через кол-бэк метод)? Предусматривается ли данная возможность этими приложениями? Если кто делал - приведите, пожалуйста, пример получения результата.
  4. Кажется, ответ нашел сам. ViewportPosition в данном случае устанавливается как надо только если использовать ListBox1.ViewportPosition := TPointF.Create(X,Y) после добавления всех итемов.
  5. Delphi 10.1. Кроссплатформ, задачка следующая: Необходимо добавлять определенное количество итемов в начало списка TListBox. Причем ViewportPosition при этом меняться не должно (т.е. область скролла не должна смещаться, если ViewportPosition не корректировать - все смещается). Если реализовать данную процедуру при клике на кнопку - все работает. Если реализовать из события OnViewportPositionChange таким образом, чтобы при прокручивании списка почти к началу (когда ViewportPosition.Y станет < 100, например) добавлялись новые итемы - не работает, всегда VP сбрасывается в начало. Как это побороть? Пробовал различные варианты с сохранением значений старой VP, откладыванием на время добавление итемов через поток и пр. - не помогло. Ниже код программы, нужно просто создать новый проект, добавить TListBox и пару кнопок, сопоставить события. Сначала нажимаем button1, затем начинаем подкручивать список к началу, чтобы добавить новые итемы. По button2 также можно добавить новые итемы. procedure TForm1.AddItems(Anum: integer); var I: integer; h,dy : single; begin h := ListBox1.ContentBounds.Height; for I := 0 to Anum do begin ListBox1.Items.Insert(0,'итем № '+inttostr(ListBox1.Count)); end; dy := ListBox1.ContentBounds.Height-h; ListBox1.ScrollBy(ListBox1.ViewportPosition.X,-dy); end; procedure TForm1.Button2Click(Sender: TObject); begin AddItems(50); end; procedure TForm1.Button1Click(Sender: TObject); begin AddItems(100); ListBox1.ScrollToItem(ListBox1.ItemByIndex(99)); ListBox1.OnViewportPositionChange := ListBox1ViewportPositionChange; end; procedure TForm1.FormCreate(Sender: TObject); var t : TThread; begin with ListBox1.AniCalculations do begin Animation := true; BoundsAnimation := true; TouchTracking := [ttVertical]; end; end; procedure TForm1.ListBox1ViewportPositionChange(Sender: TObject; const OldViewportPosition, NewViewportPosition: TPointF; const ContentSizeChanged: Boolean); var thread: TThread; begin if NewViewportPosition.Y <= 100 then begin ListBox1.OnViewportPositionChange := nil; Button2Click(sender); end; end; P.S. В событии OnViewportPositionChange ВСЕГДА приходит ContentSizeChanged = true.
  6. 1. Создаем пустой документ Word. Пишем в него что-нибудь, например слово "ЗАГОЛОВОК". 2. Извлекаем из архива файл "document.xml" (переименовать ".docx" в ".zip", извлечь, найти в папке "word" этот файл) 3. Загружаем из рантайма этот файл в TStrings методом LoadFromFile, а затем перезаписываем его методом SaveToFile. 4. Архивируем все обратно в ZIP, переименовываем расширение в "docx". Пробуем открыть в MSWord. Фрагмент моего кода: Strings := Tstringlist.create; try Strings.LoadFromFile(path_temp, TEncoding.UTF8); finally Strings.SaveToFile(path_temp,TEncoding.UTF8); Strings.Free; end; "document.xml" состоит, из 2-х строк. Почему-то при записи в "document.xml" не прописывается перенос строки. Из-за этого документ Word не открывается. Как это исправить? П.С. Мне нужно, по сути, внести какие-либо изменения в этот файл (например, заменить текст) и перезаписать любым способом, так, чтобы сохранить формат файла.
×
×
  • Создать...