Таблица лидеров


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

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

  1. 4 балла
    dnekrasov

    Как в DBChart добавить цвета RGB?

    Спасибо в отдельном сообщении говорить не надо - просто поставьте Thanks:
  2. 3 балла
  3. 3 балла
    ENERGY

    Не оптимизированный TLabel и TText (решение)

    Есть такая процедура, function DelAmp(const Text: string): string; в FMX.Types. Которая 2 раза выделяет память для всей строки, и сканирует все символы в строке, в поисках &. TLabel.Text := 'Text'; - эта процедура выполнится 2 раза, на любой платформе. Чтобы она выполнилась 1 раз, нужно сделать TLabel.PrefixStyle := TPrefixStyle.NoPrefix; TText TText.Text := 'Text'; Процедура DelAmp выполниться в любом случае на любой платформе procedure TText.SetText(const Value: string); [..] begin if Text <> Value then begin NewText := ConvertText(DelAmp(Value)); [..] Стили состоят из множества TText элементов. Теперь представьте сколько ресурсов тратиться впустую. function DelAmp(const Text: string): string; var I, J: Integer; Sb: TCharArray; begin Result := ''; if Text <> '' then begin SetLength(Sb, Text.Length); I := Low(Text); J := 0; while I <= High(Text) do begin if (Text[I] <> '&') then begin Sb[J] := Text[I]; Inc(J); end else begin if ((I < High(Text)) and (Text[I + 1] = '&')) then begin Sb[J] := Text[I]; Inc(J); Inc(I); end; end; Inc(I); end; Result := string.Create(Sb, 0, J); end; end; Решение - скопировать FMX.Types в папку с проектом, и переделать функцию на: function DelAmp(const Text: string): string; begin Result := Text; end;
  4. 2 балла
    ENERGY

    Плавающая кнопка

    В этом варианте при нажатии будет появляться сервый прямоугольник. Не идет. Вариант Равиля медленный, кнопка будет часто перерисовыватся, круг + картинка + тень. Поэтому лучший вариант это сделать кнопку в виде обычной картинки. TImage или TGlyph. Я делал на TGlyph чтобы все картинки были в ImageList. Подготовьте 3 пнг картинки с полностью готовой кнопкой, с тремя масштабами. Scale 1 = 56x56 Scale 2 = 112x112 Scale 3 = 168x168 Поместите его в TImageList (обычно в глобальном Datamodule), добавьте свое изображение в список и добавьте 3 коэффициента масштабирования в исходное изображение (дважды щелкните элемент в списке «Источник изображений» в ImageList), в итоге одно изображение в TImageList будет иметь 3 scale. Поместите TGlyph на форму и выберите свой список изображений. Установите событие OnClick в Form OnCreate (поскольку Glyph1 не имеет OnClick по умолчанию в Object Inspector): Glyph1.OnClick := Click; Glyph1.HitTest := true; В OnClick добавьте этот код для анимации: procedure TForm2.TestClick(Sender: TObject); begin TAnimator.AnimateFloatWait(Glyph1, 'Opacity', 0.5, 0.2); TAnimator.AnimateFloat(Glyph1, 'Opacity', 1, 0.2); end; Или вы можете использовать TImage - это еще проще и меньше кода, чем выше.
  5. 2 балла
    только ручками тестить, просить по братски потестить кого нить
  6. 2 балла
    x11

    Подключение к БД Firebird из Android

    Библиотеку нужно не забыть добавить в Deployment (release и debug). У меня рядом с папкой проекта есть, т.е. на одном уровне, папка media, где лежат иконки, картинки, so-библиотеки и прочий мусор для деплоя. В столбце Remote path указываем ".\assets\internal\db". Открываем "Project/Deployment", выбираем конфигурацию над таблицей, жмякаем слева + и выбираем файл. Только обрати внимание ,что галочка слева должна быть отключена. В проекте, в процедуре подключения к базе есть строка: ClientLibrary := IncludeTrailingPathDelimiter(TPath.GetDocumentsPath) + 'db' + PathDelim + 'libfbclient.so.3.0.2'; ну или "'libfbclient.so.2'", в зависимости от версии Firebird сервера: 2.5 или 3.0. Не забудь добавить в USES модуль System.IOUtils. Сразу напишу, что Андроид, как и Линукс туповаты, поэтому подключиться к хост-машине с Firebird по имени компьютера не получится. По крайне мере у меня не получилось. Поэтому в качестве адреса (параметр "Data Source") выступает IP адрес. Собираем строку подключения: UniConnectionFB.ConnectString := 'Provider Name=InterBase;' + 'Data Source=' + server +';' + 'Database=' + Database + ';' + 'Port=' + port +';' + 'User ID=' + Username +';' + 'Password=' + Password + ';'+ 'Client Library=' + ClientLibrary + ';' + 'Character Set='+ CharacterSet + ';' + 'Use Unicode=True;Login Prompt=False';
  7. 2 балла
    Barbanel

    Как в DBChart добавить цвета RGB?

    Я конечно прошу прощения, но граммар наци во мне негодует. "Диаграмма успеваемости"
  8. 2 балла
    dnekrasov

    Как в DBChart добавить цвета RGB?

    Вы передаёте цвет с прозрачностью 0. Попробуйте сделать так: Add(R1, 'Раздел 1', $FF000000 or rgb(49, 47, 138));
  9. 2 балла
    FREEFAR

    Кнопка Done

    Я сделал проще. Убрал эту кнопку и ее панель. Повесил над клавой свою панель и все
  10. 1 балл
    ENERGY

    Размытие текста у функции Canvas.FillText

    Проблема в том что ваш битмап растягивается ,т.к. у него не правильный масштаб (масштаб 1, а нужен системный который больше). Значит 1. Получите текущий Scale из системы (если отнаследовались от TControl, то есть Scene.GetSceneScale). 2. Установите правильный размер у битмапа - Bitmap.SetSize(Ceil(Width * Scale), Ceil(Height * Scale)) Вместо Ceil можно Trunc попробовать, что лучше. BitmapScale не трогайте (его нужно менять, если рисуете векторный Path ). Теперь попробуйте вывести на него текст, а затем этот битпам отобразить на PaintBox. Должно все получиться с высокой вероятность, я так отрисовываю примитивы, напр. круг через китайский модуль NativeAPI, чтобы было сглаживание на Android/iOS.
  11. 1 балл
    ENERGY

    Исчезли картинки

    Что то мне кажется это связано с этим багом https://quality.embarcadero.com/browse/RSP-18210 Загружайте картинки в ImageList - и затем отображайте в TGlyph. Таким образом у вас будут все картинки в едином хранилище, которое можно обновить. Глобальный ImageList можно хранить в DataModule, который должен загружаться раньше всех форм (в dpr файле).
  12. 1 балл
    ENERGY

    Размытие текста у функции Canvas.FillText

    Если на Timage то Image1.WrapMode := TImageWrapMode.Original; Чтобы не растягивало. Также обратите внимание на параметр BitmapScale. Он должен быть равен текущему scale, иначе изображение будет тоже искажено. var lScale: Single; lScreenService: IFMXScreenService; begin // FMX.Platform if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, lScreenService) then lScale := lScreenService.GetScreenScale else lScale := 1; Если у вас свой компонент от TControl , то там есть переменная Scene. и конструкция выше не нужна. Result := TBitmap.Create(Trunc(AWidth), Trunc(AHeight)); Result.BitmapScale := lScale; Есть одно но, если указать правильный Scale в Bitmap - то на Windows (если там scale > 1) часть рисунка на канве будет отрезаться, видимо какой то баг с просчетом координат с новым Scale в FMX, при это на мобильных системах все прекрасно работает и корректно рисуется и масштабируется с разными Scale. Я так рисую со сглаживанием через NativeDraw - сначала на Bitmap, для кэша, затем на канву. Возможно Ярослав знает в чем дело. Используйте этот метод BitmapScale на Android\iOS (рендер GlobalUseGPUCanvas := true; чтобы посмотреть на Win, но без сглаживания).
  13. 1 балл
    Это видимо чтобы сделать "введите email повторно", самая раздражающая функция на Земле.
  14. 1 балл
    GASCHE

    Как базу данных подключить к TGrid

    Здесь или тут смотрели?
  15. 1 балл
    Ильдар

    Как изменить цвет Label?

    self.Label1.StyledSettings:= self.Label1.StyledSettings - [TStyledSetting.FontColor]; self.Label1.FontColor:= TAlphaColorrec.Red; Можно просто отключить стилизацию.
  16. 1 балл
    dnekrasov

    Как изменить цвет Label?

    В FMX у TLabel нет свойства Color. В стандартных стилях у TLabel прозрачный фон, поэтому надо или сделать свой стиль или расположить ваш Label поверх TRectangle, TColorBox ну или что-то похожее.
  17. 1 балл
    HitTest = True ?
  18. 1 балл
    Dmitry Stolyarov

    Отображение картинок в ListView

    Добрый день! Использую Ваш пример... и столкнулся с такой же траблой.. (в последнем приложенном файле та же трабла..) Подскажите, пжл, куда копать.. procedure TForm1.FormCreate(Sender: TObject); var sUrl: string; i: integer; item:TListViewItem; begin with qLess do try if qLess.Active then Close; Open; while not eof do begin with ListView1 do begin Item:=listview1.Items.Add; Item.Text := qLessLESS_NAME.AsString; Item.Detail:= qLessLESS_DESC.AsString; Item.Data['URL'] := qLessIMG_URL.AsString; Item.Data['loading'] := 0; // даём знать, что можно загрузить картинку end; next; end; except // end; end; procedure TForm1.ListView1Paint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); var i:integer; begin for i := 0 to ListView1.Items.Count-1 do begin if (i >= 0) and (i < ListView1.Items.Count) then begin if ListView1.Items.Bitmap.Image<>NIL then if (ListView1.Items.Data['loading'].AsInteger = 0) then begin ListView1.Items.Data['loading']:= 1; ListView1.Items.Bitmap.LoadFromUrlToListViewItem(ListView1.Items.Data['URL'].AsString, ListView1); end; end; end; end; { TBitmapHelper } procedure TBitmapHelper.LoadFromUrlToListViewItem(AUrl: string; AListView: TListView); var thread: TThread; begin thread := TThread.CreateAnonymousThread( procedure var NetHTTPClient: TNetHTTPClient; Result: TMemoryStream; begin Result := TMemoryStream.Create; NetHTTPClient := TNetHTTPClient.Create(nil); try try NetHTTPClient.Get(AUrl, Result); TThread.Synchronize(TThread.CurrentThread, procedure() var tempBitMap: TBitmap; begin tempBitMap := TBitmap.Create; tempBitMap.LoadFromStream(Result); if not tempBitMap.IsEmpty then begin self.Assign(tempBitMap); AListView.Paint; end; end); except Result.Free; end; finally NetHTTPClient.Free; end; end); thread.FreeOnTerminate := true; thread.start; end;
  19. 1 балл
    AliZairov

    Native Android VideoView

    Здравствуйте. К сожалению, есть некоторые ошибки. 1) К сожалению, компонент Align и Anchor не реагирует. 2) Распространяйте объекты в Layouta и это не работает должным образом. 3) Если размер видео небольшой, он остается черным, как на картинке. if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, FScreenService) then FScale := FScreenService.GetScreenScale else FScale := 1; procedure Load; begin {$IFDEF ANDROID} CallInUIThreadAndWaitFinishing( procedure begin { VideoView } FJVideoParams := TJViewGroup_LayoutParams.JavaClass.init(Round(Width * FScale), Round(Height * FScale)); FJVideoView := TJVideoView.JavaClass.init(TAndroidHelper.Context); FJVideoView.setLayoutParams(FJVideoParams); FJVideoView.setBackgroundColor(TJColor.JavaClass.BLACK); if Visible = True then begin Visible := False; FJVideoView.setVisibility(TJView.JavaClass.VISIBLE); end else begin FJVideoView.setVisibility(TJView.JavaClass.INVISIBLE); end; { Control } FJNativeLayout := TJNativeLayout.JavaClass.Init(TAndroidHelper.Activity, MainActivity.getWindow.getDecorView.getWindowToken); FJNativeLayout.setControl(FJVideoView); FJNativeLayout.setPosition(Round(Position.X * FScale), Round(Position.Y * FScale)); FJNativeLayout.setSize(Round(Width * FScale), Round(Height * FScale)); end); {$ENDIF} end; // http://techslides.com/demos/sample-videos/small.3gp 4) Trackbar не меняет позицию. procedure TMain.TrackBar1Change(Sender: TObject); begin Label1.Text := MSToTime(TrackBar1.Value); //V.setPosition(TrackBar1.Value); // Когда вы его активируете, это создает проблемы. end;
  20. 1 балл
    Andrey Efimov

    Что лучше: TIdHttp или TNetHTTPClient?

    Если не изменяет память, то: Компонент TNetHttpClient это просто обёртка над THttpClient. В этой обёртке и реализована асинхронность, посредством создания отдельного потока. Если по каким-то причинам не хочется использовать TNetHttpClient с асинхронным режимом, то берёте THttpClient и запихиваете в отдельный поток. На 100% точность не претендую, но когда стоял вопрос, что использовать в одном из приложений, выбор был сделан в пользу TNetHttpClient, т.к. уже всё, что нужно написали за нас (только использовать студию не ниже Berlin, т.к. в Seattle были какие-то проблемы с асинхронностью) p.s. Если приложение для мобильных устройств - то юзайте TNetHttpClient (THttpClient). С indy компонентами на моб. устройствах проблемы.
  21. 1 балл
    dnekrasov

    Изменить цвет пикспля на bitmape image

    var bmd: TBitmapData; bmp: TBitmap; c, c1: TAlphaColor; x, y: Integer; ... bmp.Map(TMapAccess.ReadWrite, bmd); try c1 := bmd.GetPixel(x, y); bmd.SetPixel(x, y, c); finally bmp.Unmap(bmd); end;
  22. 1 балл
    Brovin Yaroslav

    [TMultiView] Починили TMultiView.Enable в Tokyo

    Моя работа По просьбе трудящихся на этом форуме сделал эту задачу. А еще добавил настройки, чтобы можно было линию убирать.
  23. 1 балл
    Kitty

    Открыть ссылку

    Дополнительно найдено: #if defined(__ANDROID__) #include <Androidapi.JNI.JavaTypes.hpp> #include <Androidapi.JNI.GraphicsContentViewText.hpp> #include <Androidapi.JNI.Net.hpp> #include <Androidapi.Helpers.hpp> #include <FMX.Helpers.Android.hpp> #elif defined(__APPLE__) #include <iOSapi.Foundation.hpp> #include <Macapi.Helpers.hpp> #include <FMX.Helpers.iOS.hpp> #elif defined(MSWINDOWS) #include <shellapi.h> endif bool __fastcall OpenURL(const String &AURL) { #if defined(__ANDROID__) _di_JIntent Intent = TJIntent::JavaClass->init(TJIntent::JavaClass->ACTION_VIEW, TJnet_Uri::JavaClass->parse(StringToJString(AURL))); try { SharedActivity()->startActivity(Intent); return true; } catch (const Exception &) { return false; } #elif defined(__APPLE__) _di_NSURL NSU = StrToNSUrl(AURL); if (SharedApplication()->canOpenURL(NSU)) return SharedApplication()->openURL(NSU); else return false; #elif defined(MSWINDOWS) SHELLEXECUTEINFOW sei = {0}; sei.cbSize = sizeof(sei); sei.lpFile = AURL.c_str(); sei.nShow = SH_SHOWNORMAL; return ShellExecuteEx(&sei); #else return false; #endif } void __fastcall TForm1::Text1Click(TObject *Sender) { OpenURL(L"http://fire-monkey.tu"); }
  24. 1 балл
    Если еще актуально: Установил компонент SpeechRecognition1 (во вложении) Накидываю на форму компонент TSpeechRecognition из панели компонентов в нем имеются свойства(у меня следующие): AlwaysGuesses: true; Language: ru-RU; Prompt: Пожалуйста скажите ЧЕ нибудь! Объявите глобально FSpeech: TStrings; является своего рода посредником передачи данных иначе все глючит) Теперь при необходимости вызывайте SpeechRecognition1.ListenFor(FSpeech); появится окно обработки голоса Далее в компоненте обработчике OnRecognitionEx прописываем куда распознанный текст должен попасть Edit1.Text := Guesses[0]; Ссылка на источник http://delphi.org/2014/10/voice-enable-your-android-apps/ но кажись сейчас можно скачать только Триал версию, а во вложении полная версия (да простят меня Боги!), демки там есть, а также примеры для перевода текста в голос. Speech.zip
  25. 1 балл
    AliZairov

    Native Android VideoView

    Привет, Готовы, unit VideoView; interface uses System.SysUtils, FMX.Types, FMX.Helpers.Android, Androidapi.Helpers, Androidapi.JNI.App, Androidapi.JNI.Net, Androidapi.JNI.VideoView, Androidapi.JNI.Widget; type TVideoView = class(TObject) private FDialog: JDialog; FVideoView: JVideoView; public procedure Play(Source: string); end; implementation { TVideoView } procedure TVideoView.Play(Source: string); begin CallInUIThread( procedure begin FDialog := TJDialog.JavaClass.init(TAndroidHelper.Activity, -1); FDialog.setCancelable(True); FVideoView := TJVideoView.JavaClass.init(TAndroidHelper.Activity); FVideoView.setVideoURI(StrToJURI(Source)); FVideoView.start; FDialog.setContentView(FVideoView); FDialog.show; end); end; end.
Эта таблица лидеров рассчитана в Москва/GMT+03:00