Alex7wrt
Пользователи-
Постов
508 -
Зарегистрирован
-
Посещение
-
Победитель дней
31
Весь контент Alex7wrt
-
Ошибка при задании координат формы
Alex7wrt ответил Alex7wrt вопрос в Перемещение и позиционирование
Я ж не спорю, что Ваш код работает. Наоборот, так, как у Вас, и должно быть. Я не пойму, что у меня не так. Первый раз с таким сталкиваюсь. Delphi XE7. Пример я привел выше. В коде 1.5 тысячи строк, но он полностью рабочий. Просто первый раз в нем пришлось использовать свойство Left и такое обнаружил. -
Ошибка при задании координат формы
Alex7wrt ответил Alex7wrt вопрос в Перемещение и позиционирование
Процедура относится к другой форме - form1. Но даже в своем юните описанный Вами способ у меня не работает. Скриншот прилагаю -
Ошибка при задании координат формы
Alex7wrt ответил Alex7wrt вопрос в Перемещение и позиционирование
File->New->Multi Device Form -
Добрый день. При попытке задать координаты одной из форм: form5.left:=5; Происходит ошибка следующего содержания: [dcc32 Error] unit5.pas(42): E2010 Incompatible types: 'TRectangle' and 'Integer' При введении точки после Form5 в выпадающем списке свойств и методов свойству Left, как и Тоp указан тип TRectangle. Откуда это могло взяться? У других форм все нормально.
-
Добрый день. Интересует, как можно сделать фон формы прозрачным так, чтобы у нее остались видны заголовок и рамки. Если выставить свойство Transparancy в True, то заголовок и рамки исчезают. То же самое происходит если выставить цвет заливки прозрачным.
-
Как отработать событие OnClick по TMediaPlayerControl, Windows
Alex7wrt опубликовал вопрос в TMediaPlayer
Добрый день. У TMediaPlayerControl нет события OnClick, но есть OnTap. Однако в 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; В данном случае - присвоение второй форме координат первой.
-
как отловить перемещение формы по экрану, Windows
Alex7wrt опубликовал вопрос в Перемещение и позиционирование
Добрый день. Интересует есть ли в FMX способ отследить передвижение формы. -
Нашел ошибку. Вот так работает: procedure MakeWindowScreenShot; var VCLBitmap: Vcl.Graphics.TBitmap; WindowRect: TRect; tmpStream: TMemoryStream; dc: HDC; begin VCLBitmap := Vcl.Graphics.TBitmap.Create; dc := GetDc(FMXHandletoHWND(form5.Handle)); try tmpStream:= TMemoryStream.Create; WindowRect:= Rect(0, 0, form5.Width, form5.Height); VCLBitmap.Width:= WindowRect.Width; VCLBitmap.Height:= WindowRect.Height; BitBlt(VCLBitmap.Canvas.Handle, WindowRect.Left, WindowRect.Top, WindowRect.Width, WindowRect.Height, dc, 0, 0, SRCCOPY); VCLBitmap.SaveToStream(tmpStream); tmpstream.Position:=0; form4.image1.bitmap.LoadFromStream(tmpStream); finally VCLBitmap.free; tmpStream.Free end; end;
-
Решил сделать скриншот всей формы, на которой растянут компонент TMediaPlayerControl. На основе http://fire-monkey.ru/topic/648-xe7-sozdanie-printscreenov-polnykh-i-chasti-ekranov/ и http://fire-monkey.ru/topic/492-windows-kak-zagruzit-hbitmap-v-tbitmap/ Получился такой код procedure MakeWindowScreenShot; var VCLBitmap: Vcl.Graphics.TBitmap; WindowRect: TRect; tmpStream: TMemoryStream; begin VCLBitmap := Vcl.Graphics.TBitmap.Create; try tmpStream:= TMemoryStream.Create; WindowRect := Rect(0, 0, form5.Width, form5.Height); VCLBitmap.Width := WindowRect.Width; VCLBitmap.Height := WindowRect.Height; BitBlt(VCLBitmap.Canvas.Handle, WindowRect.Left, WindowRect.Top, WindowRect.Width, WindowRect.Height, FMXHandletoHWND(form5.Handle), 0, 0, SRCCOPY); VCLBitmap.SaveToStream(tmpStream); form4.image1.bitmap.LoadFromStream(tmpStream); except VCLBitmap := nil; end; tmpStream.Free; end; Запускаю процедуру во время воспроизведения видео на Form5. Но в image1 на Form4 сохраняется пустой битмап белого цвета без видео, без ничего. Хотя даже фон на Form5 черный. Что я пропустил или не учел?
-
Собственно. Нашел эту тему : http://fire-monkey.ru/topic/391-kak-sdelat-skrinshot-s-tmediaplayercontrol/ Но реализация там не работает под современными редакциями FMX. Интересует, есть ли в FMX способ сделать скриншот под Windows.
-
Добрый день. Как вариант для предотвращения разбегания label-ов можно попробовать задать выравнивание для всех TLabel таким образом: Align:=TAlignLayOut.MostTop; Если Вы используете TLabel для вывода текста в TListBox, то, быть может, целесообразнее для этого вместо Label использовать свойство Text самого TListBoxItem. Но судя по прикрепленному Вами изображению Вам должно хватить возможностей TListView - картинка, текст и details там среди стандартных параметров.
-
Добрый день. Есть ли у TMemo что-то вроде рамок, которые ограничивают текстовую область? Суть вопроса: есть 1 элемент TText и 1 элемент TMemo. У этих компонентов заданы одинаковые пропорции, одинаковые параметры шрифта кроме размера. Размер шрифта и у того, и у другого компонента определяется умножением высоты компонента на одно и то же число. Так, чтобы при изменении их размеров текст растягивался вслед за компонентом. Так вот, при всем при этом, если пропорционально менять размеры компонентов и размер шрифта в них, то в некоторых случаях размещение текста может не совпадать, то есть некоторое слово в TMemo может перебежать на другую строку. При этом если брать два TText, то при изменении их размера текст у них всегда совпадает. Поэтому и интересует, может быть в TMemo есть небольшая граница для текстовой области, которая делает ее меньше размеров самого TMemo?
-
Как воспроизводить видео из одного файла одновременно на двух компонентах разного размера.
-
Даже не подозревал, что все так сложно.
-
Мне советовали в другой ветке использовать метод половинного деления.
-
Не знаю еще. А каким посоветуете?
-
Добрый день. Интересует, можно ли в FMX реализовать воспроизведение видео из одного файла одновременно в двух окнах или компонентах, чтобы в каждый момент времени в них был один и тот же кадр. Желательно без потерь в производительности по сравнению с выводом на один приемник, либо с минимальными потерями. Окна разного размера. Одно маленькое, другое большое. Что-то вроде главного окна и предварительного просмотра
-
Добрый день. Интересует, как в FMX организовать открытие файлов перемещением их из проводника Windows на форму. Как открыть несколько файлов через TOpenDialog знаю, как делается открытие перемещением в VLC написано здесь: http://www.delphisources.ru/forum/showthread.php?t=3658. Но как сделать это в FMX - вопрос.
-
Нашел немного похожий вопрос на 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 по центру вертикали родительского контрола