FMXInno

DLL FMXInno October 27, 2024

Нет прав для скачивания
Подскажите пожалуйста люди добрые как вставить в инсталлятор даже не знаю как правильно сформулировать, вот у фит герл типо есть кнопочка (другие РеПаки , ну или как то так) вообщем что бы человек жамкнув на кнопочку видел список РеПаков
 
Конечно можно, конкретно, что у нее там просто список ее репаков или переходит на сайт, внятно пишите.И если вы хотите задать вопрос прочтите правила сайта, где можно задавать вопрос и прочее
 
Конечно можно, конкретно, что у нее там просто список ее репаков или переходит на сайт, внятно пишите.
именно как список при чём с кликабильными ссылками( то есть название, кликаешь - перекидывает на ее сайт именно на этот репак)
Просто хочу в свои типо такого сделать что бы человеки могли все мои творения увидеть и скачать если захотят
 
если вам надо в точь в точ скиньте скриншот,если надо типо как у нее тогда сейчас сделаю.
 
я не знаю,прочту ли, но вот вам маленький пример, она использовала Readmy.txt сама выделяла цветом текст и прочее. Я вам сделал не всего текста а вот только ссылку.
; Основные настройки установщика
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputDir=Output
OutputBaseFilename=Setup
Compression=lzma
SolidCompression=yes



; Код для создания страницы с кликабельным URL
Код:
procedure URLLabelOnClick(Sender: TObject);
var
  ErrorCode: Integer;
begin
  ShellExec('open', 'https://www.innosetup.com', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;

procedure InitializeWizard();
var
  InfoBeforePage: TWizardPage;
  InfoMemo: TNewMemo;
  URLLabel: TNewStaticText;
begin
  // Создание страницы InfoBefore
  InfoBeforePage := CreateCustomPage(wpWelcome, 'Информация', 'Дополнительная информация перед установкой');

  // Текстовое поле
  InfoMemo := TNewMemo.Create(InfoBeforePage);
  InfoMemo.Parent := InfoBeforePage.Surface;
  InfoMemo.Width := InfoBeforePage.SurfaceWidth;
  InfoMemo.Height := InfoBeforePage.SurfaceHeight - 30;
  InfoMemo.ScrollBars := ssVertical;
  InfoMemo.Text := 'Другие репаки вы можете найти здесь:' + #13#10 +
                  ' '; // Пустая строка для размещения ссылки

  // Кликабельный URL
  URLLabel := TNewStaticText.Create(InfoBeforePage);
  URLLabel.Parent := InfoBeforePage.Surface;
  URLLabel.Caption := 'https://www.innosetup.com';
  URLLabel.Left := 10; // Отступ слева внутри поля
  URLLabel.Top := InfoMemo.Top + 25; // Позиция внутри Memo
  URLLabel.Cursor := crHand;
  URLLabel.Font.Color := clBlue; // Явно задаем синий цвет
  URLLabel.Font.Style := [fsUnderline];
  URLLabel.Enabled := True; // Убеждаемся, что элемент активен
  URLLabel.OnClick := @URLLabelOnClick;
end;
[/SPOILER][/SPOILER]
 
я не знаю,прочту ли, но вот вам маленький пример, она использовала Readmy.txt сама выделяла цветом текст и прочее. Я вам сделал не всего текста а вот только ссылку.
; Основные настройки установщика
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputDir=Output
OutputBaseFilename=Setup
Compression=lzma
SolidCompression=yes



; Код для создания страницы с кликабельным URL
Код:
procedure URLLabelOnClick(Sender: TObject);
var
  ErrorCode: Integer;
begin
  ShellExec('open', 'https://www.innosetup.com', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;

procedure InitializeWizard();
var
  InfoBeforePage: TWizardPage;
  InfoMemo: TNewMemo;
  URLLabel: TNewStaticText;
begin
  // Создание страницы InfoBefore
  InfoBeforePage := CreateCustomPage(wpWelcome, 'Информация', 'Дополнительная информация перед установкой');

  // Текстовое поле
  InfoMemo := TNewMemo.Create(InfoBeforePage);
  InfoMemo.Parent := InfoBeforePage.Surface;
  InfoMemo.Width := InfoBeforePage.SurfaceWidth;
  InfoMemo.Height := InfoBeforePage.SurfaceHeight - 30;
  InfoMemo.ScrollBars := ssVertical;
  InfoMemo.Text := 'Другие репаки вы можете найти здесь:' + #13#10 +
                  ' '; // Пустая строка для размещения ссылки

  // Кликабельный URL
  URLLabel := TNewStaticText.Create(InfoBeforePage);
  URLLabel.Parent := InfoBeforePage.Surface;
  URLLabel.Caption := 'https://www.innosetup.com';
  URLLabel.Left := 10; // Отступ слева внутри поля
  URLLabel.Top := InfoMemo.Top + 25; // Позиция внутри Memo
  URLLabel.Cursor := crHand;
  URLLabel.Font.Color := clBlue; // Явно задаем синий цвет
  URLLabel.Font.Style := [fsUnderline];
  URLLabel.Enabled := True; // Убеждаемся, что элемент активен
  URLLabel.OnClick := @URLLabelOnClick;
end;
[/SPOILER][/SPOILER]
Благодарю попробую сделать.
 
Кто-нибудь вообще поднимал вопрос работы FMX в Wine/Proton? Активный юзер SteamDeck и вообще Linux дистров, как не пытался какие компоненты не добавлял в префикс, работать FMX нормально не смог. Репаки знаменитых dixen18 и других товарищей работают. :acute:
 
Кто-нибудь вообще поднимал вопрос работы FMX в Wine/Proton? Активный юзер SteamDeck и вообще Linux дистров, как не пытался какие компоненты не добавлял в префикс, работать FMX нормально не смог. Репаки знаменитых dixen18 и других товарищей работают. :acute:
Есть косяк в вайнах да. Тестил на своей рабочей линукс минт. Работает, но кривовато. Связано это с эмуляцией вайна на старых компонентах винды, судя по ошибке. Пробовал использовать классик форм?
 
There is a joint in the vines, yes. I tested mint on my working linux. It works, but it is crooked. This is due to the emulation of the vine on old Windows components, judging by the mistake. Have you tried to use classic forms?
Classic Form is TForm Above the VCL Form.
Other Form is FMX Form Inside the FMXInno.dll.
ISFMXFW
Код:
//Form
function TFForm.FCreate(WParent : HWND): TForm;
var
 cRect: TRect;
begin
  GetWindowRect(WParent, cRect);
  Result := TForm.CreateNew(nil);
  Result.BorderStyle := TFmxFormBorderStyle.None;
  Result.Quality:=TCanvasQuality.HighQuality;
  Result.Position := TFormPosition.Default;
  Result.FormFactor.Devices := [TDeviceKind.Desktop];
  Result.Width := cRect.Width;
  Result.Height := cRect.Height;
  ShowWindow(ApplicationHWND, SW_HIDE);
  SetWindowLong(ApplicationHWND, GWL_EXSTYLE, GetWindowLong(ApplicationHWND,
    GWL_EXSTYLE) and (not WS_EX_APPWINDOW) or WS_EX_TOOLWINDOW);
  Result.Show;
  SetParent(FMXHandleToHWND(Result.Handle),WParent);
  SetWindowLongPTR(FMXHandleToHWND(Result.Handle), GWL_STYLE,WS_CHILD);
  Result.WindowState:=TWindowState.wsMaximized;
  Result.BringToFront;
  DefaultForm := Result;
  DefaultParent := WParent;
end;
 
Есть косяк в вайнах да. Тестил на своей рабочей линукс минт. Работает, но кривовато. Связано это с эмуляцией вайна на старых компонентах винды, судя по ошибке. Пробовал использовать классик форм?
По моему пытались. Но это не точно. Работает обычный сетап без FMX даже на ботве допустим
 
Наши старые проекты вроде работали, но были визуальные проблемы, например, с шрифтами. На самом деле ничего хорошего ставить из-под вайна виндовые проги. Лучше собрать распакованную игру и баш написать для запуска через вайн, а не вот это вот всё.
 
Наши старые проекты вроде работали, но были визуальные проблемы, например, с шрифтами. На самом деле ничего хорошего ставить из-под вайна виндовые проги. Лучше собрать распакованную игру и баш написать для запуска через вайн, а не вот это вот всё.
В этом плане согласен. Всё таки под линь лучше собирать репаки даже если. То уже с готовым вайном и префиксом. А если хочется графику, то мне кажется статистику распаковки и прочее лучше через какой-то электрон(любой веб сервер) сделать. Если конечно Unarc кроссплатформенный
 
Последнее редактирование:
Кто-нибудь вообще поднимал вопрос работы FMX в Wine/Proton? Активный юзер SteamDeck и вообще Linux дистров, как не пытался какие компоненты не добавлял в префикс, работать FMX нормально не смог.
И не будет работать. Wine служит для эмуляции ядра Windows. Подсистема отрисовки там практически не эмулируется, кроме базового минимума. Это скорее мост между linux подсистемой отрисовки и приложением. Вы же не будете пытаться запустить GTA V на Windows 98. Вот и тут то же самое. Оно просто не работает. А могло бы и в пешее эротическое отправить. Плюс запускать вин-инсталлятор под вайном так себе идея, особенно если пожато хорошо - это трата лишнего времени.

Наши старые проекты вроде работали, но были визуальные проблемы, например, с шрифтами
Если тащить шрифты с собой, то проблем особо быть не должно, если это OpenType, с TrueType иногда могут быть проблемы.

Если конечно Unarc кроссплатформенный
Он то кроссплатформенный, но никто в so либу его не собирал. Под линукс он идёт как консольное приложение.

А если хочется графику, то мне кажется статистику распаковки и прочее лучше через какой-то электрон сделать
А вот такие слова лучше не говорить в приличном обществе. Каждому инструменту своё место. А JS лучше оставить там, где он и должен быть - в Web. Но не тащить его на каждый чих куда не попадя. Сжать игру до 700 метров + 300 метров инсталлятор - очень весело.
Я вообще не понимаю это повальное желание тащить JS в embedded. Я ещё как-то смирился со steam, gog, figma и иже с ними - им тупо дешевле запихать сайт в оболочку под винду/linux/mac. Но когда на серьёзных щях пытаются сделать серьёзный софт на electron или же пихать js в те места где он нафиг не нужен (типа бэкэнд процессинговой системы), у меня подгорает
 
Тут как не прикрывайся какими то принципами или смыслами. 90% аудитории которые скачали условную раздачу начинают ныть в он у вас в лютрисе и тому подобных не запускается и хоть ты чего делай. А им нужно его там запустить и установить. Вот один из выходов тупое но рабочее решение в виде упрощённого инсталла который будет понимать те же архивы но в минимальной конфигурации графики
 
Последнее редактирование:
Какие все приличные и ранимые. А сидят на форумах по "упаковке" игрушек. Ну да ладно, это мне напоминает физиков ядерщиков из школы, почему то не в компаниях работают до сих пор :)
Не понял посыл, видимо слишком стар для этого, ну да ладно :pardon:

90% аудитории которые скачали условную раздачу начинают ныть в он у вас в лютрисе и тому подобных не запускается и хоть ты чего делай. А им нужно его там запустить и установить.
Если юзер использует любой дистр linux, это автоматически означает, что многие проблемы он должен уметь решать сам, а с чем не справился, уже в 99% разобрано на форумах. Также накладывает определенные требования к техническим знаниям, хоть за последние 5 лет они и снизились. Т.к. наклепали кучу дистров, в которых из коробки много чего настроено, некоторые от винды почти не отличить.

Но да суть не в этом. Если есть необходимость, чтобы работало везде - используйте простые инструменты, которые очень сложно сломать - bash/bat скрипты (помнится Skymmer в своё время собирал репаки на батниках), базовый inno (который отлажен и работает), системо-зависимые методы установки (+ время на реализацию, но будет работать везде). Если хочется красявостей - увы, придётся страдать (и разработчику и пользователю :D)
 
Назад
Сверху