ورود

View Full Version : اشکال درشروع برنامه ولود شدن فرم‌ها



amirkazem
دوشنبه 17 تیر 1398, 08:58 صبح
باسلام واحترام خدمت دوستان خوب!
دربرناه ی موردنظر، تنظیماتی اختیارشده که ابتدا main_frm(فرم اصلی) لودشده والبته روی همان فرم، login_frm (تأییدکاربر) شاهرشده وسپس برنامه وفرم اصلی فعال شود. ولی متأسفانه این تنظیمات ظاهراً دچارمشکل شده ودرهنگام اجرای برنامه، فرم اصلی ظاهر می‌شود وهمزمان باآن، فرم تأییدکاربر وفرم معرفی هم بازمی شوند. وقاعدتاً بایدفرم تأییدکاربر(login_frm)روی فرم اصلی قراربگید که انجام نمی شود.
لطفاً راهنمایی بفرماییداشکال ازکجاست!

view surce:

program Miz_Project;
uses Vcl.Forms, Main in 'Main.pas' {Main_frm}, Vcl.Themes, Vcl.Styles, Sabt in 'Sabt.pas' {sabt_frm}, Mrj in 'Mrj.pas' {mrj_frm}, Reports in 'Reports.pas' {Rep_frm}, abute in 'abute.pas' {abute_frm}, splash_screen in 'splash_screen.pas' {splashscreen}, Rep_Tak in 'Rep_Tak.pas' {Ar_tak_frm}, Rep_vahedd in 'Rep_vahedd.pas' {Rep_vahed_frm}, login in 'login.pas' {login_frm};
{$R *.res}begin Splashscreen:=TSplashscreen.Create(Application); Splashscreen.Show; Splashscreen.Update; Application.Initialize; //Application.MainFormOnTaskbar := True; TStyleManager.TrySetStyle('Iceberg Classico'); Application.CreateForm(TMain_frm, Main_frm); Application.CreateForm(Tsabt_frm, sabt_frm); Application.CreateForm(Tmrj_frm, mrj_frm); Application.CreateForm(TRep_frm, Rep_frm); Application.CreateForm(Tabute_frm, abute_frm); Application.CreateForm(TAr_tak_frm, Ar_tak_frm); Application.CreateForm(TRep_vahed_frm, Rep_vahed_frm); Application.CreateForm(Tlogin_frm, login_frm); Splashscreen.close; //Splashscreen.Free; login_frm.Show ; Application.Run; //Application.MainFormOnTaskbar := True;


main_frm.create:

procedure TMain_frm.FormCreate(Sender: TObject);beginLabel1.Caption :=SolarDatePicker1.Text ;label1.Font.Color :=CLYellow;//label1.BringToFront ;label2.Font.Color :=CLYellow;//label2.BringToFront ;end;

mafazel
سه شنبه 18 تیر 1398, 14:27 عصر
سلام و درود.
برای login_frm بجای Show از ShowModal استفاده کنید.
شاید کدی شبیه به این برای چند خط آخر مناسب تر باشه:

...
login_frm.ShowModal;
if not LoginOk then
begin
Application.Terminate;
Exit;
end;
Application.Run;

که LoginOk یه متغیر سراسریه که تعریف می کنید و اگر دکمه Ok رو توی login_frm زد و OK بود مقدار True بهش میدید و فرم رو می بندید و اگر Ok نبود با نمایش پیغام خطا به گرفتن اسم و رمز بر می گردید و اگر Cancel رو زد مقدارش رو False می کنید و فرم رو می بندید.

hp1361
جمعه 21 تیر 1398, 05:09 صبح
سلام و درود.
برای login_frm بجای Show از ShowModal استفاده کنید.
شاید کدی شبیه به این برای چند خط آخر مناسب تر باشه:

...
login_frm.ShowModal;
if not LoginOk then
begin
Application.Terminate;
Exit;
end;
Application.Run;

که LoginOk یه متغیر سراسریه که تعریف می کنید و اگر دکمه Ok رو توی login_frm زد و OK بود مقدار True بهش میدید و فرم رو می بندید و اگر Ok نبود با نمایش پیغام خطا به گرفتن اسم و رمز بر می گردید و اگر Cancel رو زد مقدارش رو False می کنید و فرم رو می بندید.

در تکمیل کدهای ایشان باید ذکر بشه که این موارد رو در سورس پروژه باید بنویسید