LINUX.ORG.RU

Масштабирование размера формы и размера шрифтов нужен код на Lua Cheat Engine

 


0

1

Здравствуйте уважаемые программисты форума LINUX.ORG.RU, прошу помочь по коду Lua Cheat Engine 7.5 делаю трейнер в программе Cheat Engine и проблема заключается в масштабирование размера формы и размера шрифтов при изменения масштабирование разметки, а также разрешения экрана в самой операционной системе windows в разделе параметры экрана, запущенный трейнер и формы меняются и становятся больше сам текс в трейнер становится больше и выходит за пределами трейнер, я по простому здел такой код так как не силён в Lua, но данный код работает не эффективно и шрифты и размер формы все равно меняется, при изменения масштабирование разметки, а также разрешения экрана в самой операционной системе windows.

ВОТ ДАННЫЙ КОД НА Lua

local Constraints = CETrainer.CELabel1.Constraints Constraints.MaxHeight = 0 Constraints.MaxWidth = 0 Constraints.MinHeight = 0 Constraints.MinWidth = 0 local font = CETrainer.CELabel1.Font font.Height = -20 font.Name = ‘Verdana’ font.Size = 12

Вот я на сайте https://delphisources.ru/pages/faq/base/scale_form_and_fonts.html?ysclid=m19wfrvrw9627507109 в свободном доступе нашёл тот самый код который нужен, но он написан на Delphi а мене нужен такой же на Lua. Прошу пожалуйста кто может помочь переделать данный код Delphi на Lua, вот два кода которые нужно переделать под Lua коды ниже.

Вот первый Delphi код №1, который нужно переделать на Lua.

{ ВАЖНО!! : Установите в Инспекторе Объектов свойство Scaled TForm в FALSE.

Следующая программа масштабирует форму так, чтобы она выглядела одинаково внезависимости от размера экрана и пикселей на дюйм. Расположенный ниже участок кода проверяет, отличается ли размер экрана во время выполнения от размера во время проектирования. Если да, Scaled устанавливается в True и компоненты снова масштабируются так, чтобы они выводились в той же позиции экрана, что и во время проектирования. } if (Screen.width &; lt > cScreenWidth) or (Screen.PixelsPerInch <> cPixelsPerInch) then begin MForm.scaled := TRUE; MForm.height := MForm.height * screen.Height div cScreenHeight; MForm.width := MForm.width * screen.width div cScreenWidth; MForm.ScaleBy(screen.width, cScreenWidth);

end;

Вот второй Delphi код №2, который нужно переделать под Lua.

{ Этот код проверяет, отличается ли размер шрифта во время выполнения от размера во время проектирования. Если во время выполнения pixelsperinch формы отличается от pixelsperinch во время проектирования, шрифты снова масштабируются так, чтобы форма не отличалась от той, которая была во время разработки. Масштабирование производится исходя из коэффициента, получаемого путем деления значения font.height во время проектирования на font.height во время выполнения. Font.size в этом случае работать не будет, так как это может дать результат больший, чем текущие размеры компонентов, при этом текст может оказаться за границами области компонента. Например, форма создана при размерах экрана 800x600 с установленными маленькими шрифтами, имеющими размер font.size = 8. Когда вы запускаете в системе с 800x600 и большими шрифтами, font.size также будет равен 8, но текст будет бОльшим чем при работе в системе с маленькими шрифтами. Данное масштабирование позволяет иметь один и тот же размер шрифтов при различных установках системы. }

if (Screen.PixelsPerInch <> cPixelsPerInch) then begin

for i := MForm.ControlCount - 1 downto 0 do
  TFooClass(MForm.Controls[i]).Font.Height :=
    (MForm.Font.Height div cFontHeight) *
    TFooClass(MForm.Controls[i]).Font.Height;

end;

end;

end.



Последнее исправление: Dima245 (всего исправлений: 1)

Ты спидраннер чтоль? Обычно они читенжин использую для поиска точек фиксации спидран таймера.


if (Screen.width  and lt > cScreenWidth) or (Screen.PixelsPerInch ~= cPixelsPerInch) then 
     MForm.scaled = TRUE; 
     MForm.height = MForm.height * screen.Height / cScreenHeight; 
     MForm.width  = MForm.width  * screen.width  / cScreenWidth; 
     MForm.ScaleBy(screen.width, cScreenWidth);
end
if (Screen.PixelsPerInch ~= cPixelsPerInch) then
    for i = MForm.ControlCount - 1, 0, -1 do
        TFooClass(MForm.Controls[i]).Font.Height = (MForm.Font.Height / cFontHeight) *
        TFooClass(MForm.Controls[i]).Font.Height;
    end
end

Вот это меняй или не меняй на своё, я всю эту хрень первый раз вижу

TFooClass(MForm.Controls[i]).Font.Height

Дальше сам, тут переписывание лоб в лоб, пойди почитай про синтаксис луа, и по наитию получится переписать всё на полуавтомате, не глядя и во сне. А тебе и так и так придётся, раз ковыряешься.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 8)