Менять главную форму во время выполненияDelphi , Программа и Интерфейс , ФормыМенять главную форму во время выполнения
Оформил: DeeCo procedure SetAsMainForm(aForm:TForm); var P:Pointer; begin P := @Application.Mainform; Pointer(P^) := aForm; end; {************************************} // Example of Usage: { Question: If my application is main.exe and the main form is form1, form1 displays when it runs. I would like to display other forms based on the parameter passed. main.exe param1 will display form2 as the first form main.exe param2 with display form3 as the first form Answer: } program Project1; uses Forms, Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {Form2}, Unit3 in 'Unit3.pas' {Form3}; {$R *.res} procedure SetAsMainForm(aForm:TForm); var P:Pointer; begin P := @Application.Mainform; Pointer(P^) := aForm; end; begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); Application.CreateForm(TForm3, Form3); if Paramstr(1) = 'Param1' then SetAsMainForm(Form2); if Paramstr(1) = 'Param2' then SetAsMainForm(Form3); Application.Run; end. Программа Delphi, которая изменяет основную форму приложения в зависимости от параметра командной строки. Вот как это работает:
Этаapproach может быть полезна, если вы хотите динамически изменять, какой форм будет отображаться при запуске вашего приложения, в зависимости от определенных условий или параметров. Однако я хотел бы предложить альтернативное решение, использующее функциональность Delphi для обработки параметров командной строки и изменения основной формы. Вот как вы можете модифицировать код:
В этом модифицированном коде мы используем свойство Надеюсь, это поможет! Пожалуйста, если у вас есть какие-либо дальнейшие вопросы. В статье описывается способ изменения главной формы при выполнении программы, используя процедуру SetAsMainForm для передачи аргумента в виде имени параметра и изменение соответствующей формы на основную форму приложения. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |