Перейти к содержанию
  • Регистрация
  • 0
alewka006

[TForm] Задание фонового изображения для формы

Вопрос

Подскажите, как на форме сделать фоновое изображение. Вставляю картинку (TImage) на весь экран, изображение в пропорции выводится не на весь экран

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рекомендуемые сообщения

Гость
Эта тема закрыта для публикации ответов.

  • Похожий контент

    • От Ильдар
      Добрый день, идеология такая:
      - создать битмап, рисовать на нем, не делая его видимым.
      - нашлепать на канву панели подготовленный битмап.
       
      На деле не получается нарисовать линию на битмапе. Т.е после процедуры Draw2 прожимаю процедуру Draw - получаю на панели красный прямоугольник битмапа без нарисованной линии...
      Посоветуйте чего-нибуть, спасибо!
       
      //BITMAP Bm:= TBitmap.Create; bm.Width:= round (Panel.Width/2); bm.Height:= round (Panel.Height/2); bm.Canvas.BeginScene(); bm.Canvas.Clear(TAlphacolorrec.Red); //($FF484848); bm.Canvas.EndScene; procedure TChart.Draw2; var A,B:TPointF; begin A:=TPointF.Create(0,0); B:=TPointF.Create(200, 200); bm.Canvas.BeginScene(); bm.Canvas.DrawLine(A,B,1); bm.Canvas.EndScene; end; procedure TChart.Draw; var A: TPointF; R: TRectF; begin A.X:= Panel.Position.X+3; A.Y:= Panel.Position.Y+3; R:= TRectF.Create(A, bm.Width , bm.Height); panel.Canvas.BeginScene(); Panel.Canvas.DrawBitmap(bm,r,r, 20); panel.Canvas.EndScene; end;  
    • От zekelive
      Добрый день, друзья. Подскажите, есть ли возможность в firemonkey открыть форму как представлено на картинке ниже? Если да, то подскажите в какую сторону копать. Спасибо.

    • От Julia
      Загружаю через opendialog картинку  формата bmp в image
      Есть переменные с:TColor, c1:Tcolor
      Необходимо  вначале узнать цвет определенного пикселя на загруженной картинке и записать в  c1, а затем изменить цвет определенного пикселя на загруженной картинке на цвет, хранящийся в переменной c.
      Ищу очень давно, но внятного объяснения нигде не нашла(
       
       
    • От Макс Войтенко
      Хотел сделать вот так (1 скриншот)

      Выбраная вкладка (аккаунты): иконка красная. А остальные вкладки чтобы иконка была серая. (как шрифт ниже).
      Подскажите как решить?
    • От MrSergei2017
      Я тут новичок, и не понимаю как использовать комманду CopyFromBitmap
    • От Andrew
      Для проведения опытов на Delphi XE8 использовал два планшета Android:
      - Lenovo TAB S8-50LC на базе процессора Intel Atom Z3745: http://www.ixbt.com/portopc/lenovo-tab-s8-50lc.shtml. На нем установлен Android версии 4.4.2. Подключил к USB и, как не странно, тестовая программка "Hello World!" успешно запустилась, хотя думал, что с процессором Intel вообще ничего не получится;

      - Prestigio Multipad PMT5777_3G с процессором ARM MediaTek MT8382. На нем установлен Android 4.2.2.

      Затем на форму красного цвета бросил зеленый TRectangle, присвоил Align значение Client, а также добавил желтую рамку с помощью свойства Stroke (Thinkness=10). Запустил на Prestigio - выглядит нормально, если не считать не дорисованных уголков (см. красные квадраты). Кстати, на Windows уголки рамки отображаются нормально.
       
      MainForm.Top = 25 - видимо, смещение от статус-бара.
       

       
       
      Затем запустил на Lenovo и результат получился не такой красивый. Как видим, верх формы почему-то "уехал" за статус-бар, а ее свойство Top равно 0:
       

       
      ------------------------------------------------------------------------------------------------------------------------------------
       
      Поворачиваем планшеты на 90 градусов. На Prestigio все выглядит нормально:
       

       
       
      На Lenovo произошло какое-то расстройство:
       

       
       
      Как я понял, на Lenovo возникают проблемы с получением высоты статус-бара и размеров экрана при повороте планшета, но с чем это связано - непонятно. Возможно решение где-то в FMX.Platform.Android или глубже. По крайней мере там переменная FStatusBarHeight равна нулю.

      На моем примере ниже можно получить правильные размеры и позицию для формы (в т.ч. с учетом статус-бара):
      NativeWin := SharedActivity.getWindow;
      if NativeWin <> nil then
      begin
      ContentRect := TJRect.Create;
      DecorView := NativeWin.getDecorView;
      DecorView.getWindowVisibleDisplayFrame(ContentRect);
      end;
    • От chaplin.u@gmail.com
      На таблетах форма очень растянута. Как можно задать максимальный размер для главной формы.  Пусть по краям будут полосы.
    • От notricky
      На Android код, который работает исправно на Win  вызывает ошибку "CalledFromWrongThreadException: Only the original thread that created a view hierarcy can touch its views" 
      Смысл таков, что я пытаюсь показать форму из треда, у которой BorderStyle=none (роли это не играет).
      Решение в Андроиде заключается в том, чтобы пускать через  runOnUiThread  (то есть выполнять интерфейсные штуки в главном потоке). Как я понимаю, в firemonkey эту фичу должен выполнять Synchronize().
      Тем не менее, ошибка возникает.
      А при запуске в режиме дебага на андроид девайсе событие кнопки вообще не срабатывает иногда. А если срабатывает, то возникает описанное выше исключение.
      Я собрал тестовый пример и в нем не сразу видна ошибка, тогда как получил я ее на рабочем проекте.
      Цель: показать бизибокс на время бекграундных действий. Этот бизибокс у меня сначала был просто на каждой форме и я интерфейсно его вызывал, но теперь решил сделать отедльной формой (как и тоаст), но почему так происходит я не понял. Вы что скажете?
       
      unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; TWorkThread = class(TThread) public procedure Execute; override; end; var Form1: TForm1; implementation {$R *.fmx} uses unit2; procedure TForm1.Button1Click(Sender: TObject); var t: TWorkThread; begin t := TWorkThread.Create(True); t.FreeOnTerminate := true; t.Start; end; { TWorkThread } procedure TWorkThread.Execute; begin inherited; Self.Synchronize(procedure begin Form2.Show; Form2.Top := Form1.Top; Form2.Left := Form1.Left; Form2.BringToFront; end); Terminate; end; end.  
    • От gresaggr
      Всем добрый день.
      Дошло дело до дизайна приложения. Как правильно разместить кнопки поверх изображения фона?

      Исходные данные такие: Delphi 10.1 Berlin Update2. Приложение под Андроид.
      Есть фон в разрешении 1280*720..  На форме есть Layout с Align = Client. В Layout вставлен Image с Align = Client.
       


       
      Есть отдельные кнопки (на первом рисунке выделены черно-белым цветом). Как правильно сделать вставку кнопок, чтобы попасть на нижнюю кромку фона правил?
      Еще хочется сделать это универсальным для разных разрешений экрана.

       
      if res = 1280 then
        begin
          LayoutRulesText1.Margins.Top := 30;
          LayoutRulesText1.Margins.Bottom := 80;
          LayoutRulesText1.Margins.Left := 30;
          LayoutRulesText1.Margins.Right := 30;
          ImageRulesBack.Position.X := 50;
          ImageRulesBack.Position.Y := 510;
          ImageRulesBack.Width := 55;
          ImageRulesBack.Height := 55;
          ImageRulesForward.Position.X := 250;
          ImageRulesForward.Position.Y := 510;
          ImageRulesForward.Width := 55;
          ImageRulesForward.Height := 55;
        end;

       
      Изначально думал делать для каждого разрешения через case в зависимости от разрешения, но кажется что этот путь совсем неправильный!
    • От ODmitrijS
      Подскажите алгоритм или готовый пример заливки замкнутой области рисунка произвольной формы определенным цветом?
      Моё решение часто приводит к переполнению стека.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...