Alex7wrt
-
Постов
508 -
Зарегистрирован
-
Посещение
-
Победитель дней
31
Активность репутации
-
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; -
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"
Если пакет успешно установлен, то появится сообщение со списком зарегистрированных компонентов следующего вида:
Все! Установка окончена.
-
Alex7wrt отреагировална RoschinSpb в [Статья] Что нового в TImageList (RAD Studio 10.1 Berlin)
Статья: http://community.embarcadero.com/blogs/entry/timagelist101ru-1 Автор: Сергей Рощин Обзор новых возможностей, которые появились в компоненте и редакторе TImageList для Delphi R101 (2016 год, Version 24)
-
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"/> Должно помочь.
Вот тут можете посмотреть.
-
Alex7wrt отреагировална AndroidHalfNoob в Как включать/отключать звук и вибрацию?
вот еще не большой пример. например приложение свернуто и есть NotificationCenter. Пришло уведомление и было бы неплохо оповестить пользователя вибрацией.
в Edit1.Text вставляем длительность вибрации.
1000 = 1сек.
-
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; -
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; -
Alex7wrt отреагировална Brovin Yaroslav в Обновление форума
Добрый вечер, уважаемые форумчане,
Вместе с Андреем Ефимовым мы проделали огромную работу, чтобы сделать наш форум еще удобнее и лучше, а так же решить ряд проблем, возникших в недавнее время. Работа над технической составляющей форума закончена. Однако, работа над структуризацией и модерированием тем начинается, чтобы сделать форум еще удобнее и эффективнее в решении ваших задач.
Основные нововведения
Быстрый вход. Использование нескольких систем входа на сайт (VK, Facebook, Google, Microsoft, Linked-In, Twitter)
Введение нового формата ответов: Вопрос/Ответ. Теперь при вводе вопроса, ценится полнота и исчерпанность ответа. Это, возможно, потребует изменение структуры форума, чтобы разделять вопросы от обсуждений. Пока этот формат в процессе оценки.
Мгновенные оповещения. Поддержка оповещений браузером. Теперь, если ваш браузер открыт, а форум закрыт, то при получении сообщения или новых ответов в ваших темах, вы получите системное уведомление. -
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; -
Alex7wrt получил реакцию от Pax Beach в Какие статьи вы хотели бы видеть в блогах?
Как воспроизводить видео из одного файла одновременно на двух компонентах разного размера.
-
Alex7wrt отреагировална Axbor в Прозрачная форма с заголовком и рамками, Windows
На VCL это очень легко делается. Сделаете TransparentColor = true, и color формы сделаете одинаково со свойством TransparentColorValue
На FMX пока не нашел
-
Alex7wrt отреагировална GASCHE в Ошибка при задании координат формы
Да не надо ваш проект или пример. Создайте новый проект с двумя формами аналогично вашему, если там эта проблема будет повторяться, то выложите, здесь проверят. Если такой ошибки не возникнет, то значит листайте 1,5 тысяч строк по-видимому они не полностью рабочие.
-
Alex7wrt отреагировална #WAMACO в Ошибка при задании координат формы
может конфликт имен...
посмотрите внимательнее...
-
Alex7wrt отреагировална beklexx в Ошибка при задании координат формы
ммм... я так понимаю что на форме 5 лежит TRectangle под именем left... бывает, когда переработаешь, отдохнуть вам надо бы... пивка там
-
Alex7wrt отреагировална Вячеслав в Как отработать событие OnClick по TMediaPlayerControl, Windows
Я бился над этим в своё время, в итоге забил и сделал просто кликабельную панель сбоку от этого компонента.
-
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; В данном случае - присвоение второй форме координат первой.
-
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; В данном случае - присвоение второй форме координат первой.
-
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); указывать нужную область копирования.
Либо, продвинутый вариант. Это для конкретного окна находить хендл и делает скриншот только одного окна.
-
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
-
Alex7wrt отреагировална AngryOwl в Воспроизведение одного видео в двух окнах, Windows
Вот, кстати, Андрей Ефимов создал тему. Вот и сформулируйте правильно вопрос, на который бы Вы хотели получить полноценный и развернутый ответ.
Вдруг наши гуру обратят на него внимание!? )))
Ну а если нет - будем ждать..
Все-таки работа с видео, в частности его скоростное воспроизведение средствами FMX, - "больная" тема...
-
Alex7wrt отреагировална Maximus в Открытие файлов перемещением из проводника на форму или один из ее элементов, Windows
Например через компонент TDropTarget.
-
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 по центру вертикали родительского контрола
-
Alex7wrt получил реакцию от Vitaldj в Отображение значка дочерней формы на панели задач, Windows
Нашел решение в другой теме.
http://fire-monkey.ru/topic/504-neskolko-okon-prilozheniia-v-paneli-zadach/
-
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; -
Alex7wrt получил реакцию от Axbor в Отображение значка дочерней формы на панели задач, Windows
Нашел решение в другой теме.
http://fire-monkey.ru/topic/504-neskolko-okon-prilozheniia-v-paneli-zadach/