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

Alex7wrt

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

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

  • Посещение

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

    31

Активность репутации

  1. Like
    Alex7wrt получил реакцию от Rusland в Фото с камеры (Android)   
    У Осипова получение снимка с камеры описано так:
    Осипов. Delphi. Программирование для Windows, OS X, iOS и Android. стр. 131. Предопределенные команды.
     
    1. Разместите на форме элементы TImage, TButton и TActionList
    2. Выберите  кнопку  и  в  Инспекторе  объектов  найдите  свойство  Action.  Разверните комбинированный  список  и, пройдя  по  цепочке  New  Standard  Action | Media Library,  выберите  предопределенную  команду  TTakePhotoFromCameraAction. 3. В  окне  Инспектора  объектов  перейдите  на  вкладку  Events  и  найдите  событие OnDidFinishTaking()  для только что созданного командного объекта. 4. Двойной щелчок по строке события перенесет нас в  редактор кода,  в котором нам придется написать всего одну строку   procedure TForm1.TakePhotoFromCameraActionlDidFinishTaking(Image:  TBitmap);  begin     Image1.Bitmap.Assign(Image);  end;    
  2. Like
    Alex7wrt отреагировална Brovin Yaroslav в Инструкция по установке набора компонентов FGX   
    Скачать пакет можно здесь: Скачать
    1. Удалить старый пакет библиотеки FGX
    Открываем среду IDE RAD Studio XE7 с административными правами. В меню открываем менеджер пакетов: "Component -> Install Packages..."

    Среди списка компонентов находим "FMX Extension Components". Выделяем и нажимаем кнопку "Remove"

    2. Установка пакета библиотеки FGX
    Открываем в среде группу проектов. "File -> Open Project -> FGXGroup.groupproj"

    Собираем пакет fgx210 для всех требуемых платформ. Выделяем в менеджере проектов нужную платформу "Target Platforms" и в контекстном меню пакета fgx210 выбираем "Build"

    Далее повторяем сборку для всех целевых платформ.
    3. Устанавливаем Design-Time пакет
    Выбираем в группе проектов dclfgx210 пакет и в контекстном меню выбираем "Install"
    Если пакет успешно установлен, то появится сообщение со списком зарегистрированных компонентов следующего вида:

    Все! Установка окончена.
  3. Like
    Alex7wrt отреагировална RoschinSpb в [Статья] Что нового в TImageList (RAD Studio 10.1 Berlin)   
    Статья: http://community.embarcadero.com/blogs/entry/timagelist101ru-1 Автор: Сергей Рощин Обзор новых возможностей, которые появились в компоненте и редакторе TImageList для Delphi R101 (2016 год, Version 24)
  4. Like
    Alex7wrt отреагировална dante333 в Не могу разобратся с BannerAD   
    AndroidManifest.template видимо не правили.Добавьте
    Перед <activity>
    <meta-data android:name="com.google.android.gms.version" android:value="4323000"/> После </activity>
    <activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/> Должно помочь.
    Вот тут можете посмотреть. 
  5. Like
    Alex7wrt отреагировална AndroidHalfNoob в Как включать/отключать звук и вибрацию?   
    вот еще не большой  пример. например приложение свернуто и есть  NotificationCenter. Пришло уведомление и было бы неплохо оповестить пользователя вибрацией.
    в Edit1.Text вставляем длительность вибрации.
    1000 = 1сек.
  6. Like
    Alex7wrt отреагировална Rusland в Как включать/отключать звук и вибрацию?   
    Ну и узнать режим звонка можно так:
    function GetRingerMode():integer; var AudioObj: JObject; Audio: JAudioManager; begin AudioObj:=SharedActivity.getSystemService(TJContext.JavaClass.AUDIO_SERVICE); Audio:=TJAudioManager.Wrap((AudioObj as ILocalObject).GetObjectID); Result:=Audio.getRingerMode; // 0 - silent, 1 - vibrate, 2 - normal end;
  7. Like
    Alex7wrt отреагировална Rusland в Как включать/отключать звук и вибрацию?   
    Народ, что с вами? Сколько уже вопросов без ответов... все самому приходится разбирать 
     
    Вот написал процедурку переключения режимов в Андроид, пользуйтесь на здоровье:

    uses   Androidapi.JNIBridge,       Androidapi.Helpers,         AndroidApi.JNI.Media,       Androidapi.JNI.GraphicsContentViewText,   Androidapi.JNI.App,         Androidapi.JNI.JavaTypes; procedure RingerMode(Mode:integer); var   AudioObj: JObject;   AudioMng: JAudioManager; begin                                       AudioObj:=SharedActivity.getSystemService(TJContext.JavaClass.AUDIO_SERVICE);   AudioMng:=TJAudioManager.Wrap((AudioObj as ILocalObject).GetObjectID);     case Mode of     0: AudioMng.setRingerMode(TJAudioManager.JavaClass.RINGER_MODE_SILENT);     1: AudioMng.setRingerMode(TJAudioManager.JavaClass.RINGER_MODE_VIBRATE);     2: AudioMng.setRingerMode(TJAudioManager.JavaClass.RINGER_MODE_NORMAL);   else AudioMng.setRingerMode(TJAudioManager.JavaClass.RINGER_MODE_NORMAL);   end; end;
  8. Like
    Alex7wrt отреагировална Brovin Yaroslav в Обновление форума   
    Добрый вечер, уважаемые форумчане,
    Вместе с Андреем Ефимовым мы проделали огромную работу, чтобы сделать наш форум еще удобнее и лучше, а так же решить ряд проблем, возникших в недавнее время. Работа над технической составляющей форума закончена. Однако, работа над структуризацией и модерированием тем начинается, чтобы сделать форум еще удобнее и эффективнее в решении ваших задач.
    Основные нововведения
    Быстрый вход. Использование нескольких систем входа на сайт (VK, Facebook, Google, Microsoft, Linked-In, Twitter)
    Введение нового формата ответов: Вопрос/Ответ. Теперь при вводе вопроса, ценится полнота и исчерпанность ответа. Это, возможно, потребует изменение структуры форума, чтобы разделять вопросы от обсуждений. Пока этот формат в процессе оценки.
    Мгновенные оповещения. Поддержка оповещений браузером. Теперь, если ваш браузер открыт, а форум закрыт, то при получении сообщения или новых ответов в ваших темах, вы получите системное уведомление.
  9. Like
    Alex7wrt получил реакцию от sandy в Загрузка картинки в TBitmap из TResourceStream   
    Много раз вытаскивал Png из ресурсов, проблем не замечено.
    Например загрузка 40 изображений с именами "PngImage_1"..."Png_Image_40" в массив
    for n:=0 to 39 do begin rs:=TResourceStream.Create(0,'PngImage_'+inttostr(n+1),PChar(RT_RCDATA)); setlength(img,n+1); img[n]:=tbitmap.Create; img[n].LoadFromStream(rs); rs.Free; end;
  10. Like
    Alex7wrt получил реакцию от Pax Beach в Какие статьи вы хотели бы видеть в блогах?   
    Как воспроизводить видео из одного файла одновременно на двух компонентах разного размера.
  11. Like
    Alex7wrt отреагировална Axbor в Прозрачная форма с заголовком и рамками, Windows   
    На VCL это очень легко делается. Сделаете TransparentColor = true, и color формы сделаете одинаково со свойством TransparentColorValue
    На FMX пока не нашел
  12. Like
    Alex7wrt отреагировална GASCHE в Ошибка при задании координат формы   
    Да не надо ваш проект или пример. Создайте новый проект с двумя формами аналогично вашему, если там эта проблема будет повторяться, то выложите, здесь проверят. Если такой ошибки не возникнет, то значит листайте 1,5 тысяч строк по-видимому они не полностью рабочие.
  13. Like
    Alex7wrt отреагировална #WAMACO в Ошибка при задании координат формы   
    может конфликт имен...
    посмотрите внимательнее...
  14. Like
    Alex7wrt отреагировална beklexx в Ошибка при задании координат формы   
    ммм... я так понимаю что на форме 5 лежит TRectangle под именем left... бывает, когда переработаешь, отдохнуть вам надо бы... пивка там
  15. Like
    Alex7wrt отреагировална Вячеслав в Как отработать событие OnClick по TMediaPlayerControl, Windows   
    Я бился над этим в своё время, в итоге забил и сделал просто кликабельную панель сбоку от этого компонента.
  16. Like
    Alex7wrt получил реакцию от Vitaldj в как отловить перемещение формы по экрану, Windows   
    После долгого поиска все-таки нашел тему на этом же форуме )). Хотя раньше искал, но не находил.
    Тема: http://fire-monkey.ru/topic/1452-kak-poimat-peremeschenie-formy/
     
    Суть решения - необходимо перекрыть виртуальный метод формы SetBounds, который выполняется каждый раз при перемещении формы
    procedure TCommonCustomForm.SetBounds(ALeft, ATop, AWidth, AHeight: Integer); virtual; Для этого в описании методов формы пишем
    type TForm1 = class(TForm) ........ procedure SetBounds(ALeft, ATop, AWidth, AHeight: integer); override; ....... end; и в теле процедуры выполняем необходимые действия
    procedure TForm1.SetBounds(ALeft, ATop, AWidth, AHeight: integer); begin  inherited; if assigned(form2) then begin form2.Left:=ALeft; form2.top:=ATop; end; end; В данном случае - присвоение второй форме координат первой.
  17. Like
    Alex7wrt получил реакцию от Axbor в как отловить перемещение формы по экрану, Windows   
    После долгого поиска все-таки нашел тему на этом же форуме )). Хотя раньше искал, но не находил.
    Тема: http://fire-monkey.ru/topic/1452-kak-poimat-peremeschenie-formy/
     
    Суть решения - необходимо перекрыть виртуальный метод формы SetBounds, который выполняется каждый раз при перемещении формы
    procedure TCommonCustomForm.SetBounds(ALeft, ATop, AWidth, AHeight: Integer); virtual; Для этого в описании методов формы пишем
    type TForm1 = class(TForm) ........ procedure SetBounds(ALeft, ATop, AWidth, AHeight: integer); override; ....... end; и в теле процедуры выполняем необходимые действия
    procedure TForm1.SetBounds(ALeft, ATop, AWidth, AHeight: integer); begin  inherited; if assigned(form2) then begin form2.Left:=ALeft; form2.top:=ATop; end; end; В данном случае - присвоение второй форме координат первой.
  18. Like
    Alex7wrt отреагировална Brovin Yaroslav в [XE7] Создание PrintScreen'ов полных и части экранов   
    Добрый день,
     
    Могу предложить в качестве базового способ получения скриншота всего рабочего стола. 
    1. Делаем скриншота рабочего стола по хендлу:
    function MakeWindowScreenShot(const AWindowHandle: HWND): TBitmap; var VCLBitmap: TBitmap; WindowRect: TRect; begin VCLBitmap := TBitmap.Create; try WindowRect := Rect(0, 0, Screen.DesktopWidth, Screen.DesktopHeight); VCLBitmap.Width := WindowRect.Width; VCLBitmap.Height := WindowRect.Height; BitBlt(VCLBitmap.Canvas.Handle, WindowRect.Left, WindowRect.Top, WindowRect.Width, WindowRect.Height, AWindowHandle, 0, 0, SRCCOPY); except VCLBitmap := nil; end; Result := VCLBitmap; end; 2. Далее получаем хендл рабочего стола, делаем скриншот и сохраняем скриншот в файл:
    procedure MakeScreenShotOfDesktop(const AFileName: string); var DCDesk: HDC; VCLBitmap: TBitmap; DesktopWindow: HWND; begin DesktopWindow := GetDesktopWindow; DCDesk := GetWindowDC(DesktopWindow); try VCLBitmap := MakeWindowScreenShot(DCDesk); try if VCLBitmap <> nil then VCLBitmap.SaveToFile(AFileName); finally VCLBitmap.Free; end; finally ReleaseDC(DesktopWindow, DCDesk); end; end; Соответственно далее, можно от этого отталкиваться и делать копирование только требуемой части рабочего стола (регион, окно). Для этого нужно в строке:
    BitBlt(VCLBitmap.Canvas.Handle, WindowRect.Left, WindowRect.Top, WindowRect.Width, WindowRect.Height, AWindowHandle, 0, 0, SRCCOPY); указывать нужную область копирования.
     
    Либо, продвинутый вариант. Это для конкретного окна находить хендл и делает скриншот только одного окна.
  19. Like
    Alex7wrt отреагировална Brovin Yaroslav в Как сделать скриншот формы?   
    На всякий случай, продублирую:
    function MakeScreenshotOfForm(const AForm: TForm): TBitmap; begin Assert(AForm <> nil); Result := TBitmap.Create(AForm.Width, AForm.Height); AForm.PaintTo(Result.Canvas); end; procedure TForm4.Button1Click(Sender: TObject); var Bitmap: TBitmap; begin Bitmap := MakeScreenshotOfForm(Self); try Image1.Bitmap.Assign(Bitmap); finally Bitmap.Free; end; end; Еще есть статья [XE7] Создание PrintScreen'ов полных и части экранов, в ней рассказывается, как сделать скриншоты в том числе и чужих окон, правда только под Windows
  20. Like
    Alex7wrt отреагировална AngryOwl в Воспроизведение одного видео в двух окнах, Windows   
    Вот, кстати, Андрей Ефимов создал тему. Вот и сформулируйте правильно вопрос, на который бы Вы хотели получить полноценный и развернутый ответ.
    Вдруг наши гуру обратят на него внимание!? )))
    Ну а если нет - будем ждать..
    Все-таки работа с видео, в частности его скоростное воспроизведение средствами FMX, - "больная" тема...
  21. Like
    Alex7wrt отреагировална Maximus в Открытие файлов перемещением из проводника на форму или один из ее элементов, Windows   
    Например через компонент TDropTarget.
  22. Like
    Alex7wrt получил реакцию от enatechno в Как выровнять текст в TMemo по центру по вертикали?   
    Нашел немного похожий вопрос на http://stackoverflow.com/questions/21836579/can-i-make-a-tmemo-size-itself-to-the-text-it-contains-firemonkey
     
    Используя код определения высоты TMemo:
    function get_memo_height(amemo:tmemo):single; var i:integer; astring: string; layout: ttextlayout; begin Layout := TTextLayoutManager.DefaultTextLayout.Create; astring:=''; for i:=0 to amemo.lines.count-1 do astring:=astring+amemo.lines[i]+chr(10); Layout.BeginUpdate; Layout.Text :=astring; Layout.WordWrap:= amemo.wordwrap; Layout.HorizontalAlign:= amemo.TextAlign; Layout.MaxSize:= PointF(amemo.width,maxint); Layout.VerticalAlign := TTextAlign.Leading; Layout.Font := amemo.Font; Layout.TopLeft := pointf(0,0); Layout.EndUpdate; result:=layout.textrect.bottom-amemo.Font.Size;; Layout.free; end; Memo.Height:=get_memo_height(Memo); в сочетании с 
    Memo.Align:= TAlignLayOut.VertCenter; Получаем эффект выравнивания текста Memo по центру вертикали родительского контрола
  23. Like
    Alex7wrt получил реакцию от Vitaldj в Отображение значка дочерней формы на панели задач, Windows   
    Нашел решение в другой теме. 
    http://fire-monkey.ru/topic/504-neskolko-okon-prilozheniia-v-paneli-zadach/
     
  24. Like
    Alex7wrt отреагировална Alexander в Изменение курсора мыши, Windows   
    всё правильно, вы в обработчике компонента присваиваете курсор не компоненту, а форме. Хотите, чтоб и над компонентом был такой курсор, так и ему присвойте.
    Проверил у себя, данный код работает
    procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); begin if Rectangle1.Cursor = crHourGlass then Form1.Cursor := crSQLWait else Form1.Cursor := crSizeNWSE; end; procedure TForm1.Rectangle1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); begin Form1.Cursor := crSizeAll; Rectangle1.Cursor := crHourGlass; end;
  25. Like
    Alex7wrt получил реакцию от Axbor в Отображение значка дочерней формы на панели задач, Windows   
    Нашел решение в другой теме. 
    http://fire-monkey.ru/topic/504-neskolko-okon-prilozheniia-v-paneli-zadach/
     
×
×
  • Создать...