PDA

View Full Version : به هم خوردن ترتیب ایجاد فرم ها و خطا در بسته شدن برنامه



daffy_duck376
چهارشنبه 19 اسفند 1388, 05:54 صبح
سلام دوستان .
من تو برنامه خودم یه فرم splash گذاشته بودم بعد مجبور شدم یه سری از فرمها رو کم و یا زیاد کنم. میدونید که فرم SPLASH کد هاش تو قسمت ایجاد فرمها نوشته میشه. حالا برنامه من هنگام بسته شدن پیغام خظای acsess vilotion at adress...... را میدهد . میدونم مشکل تو ترتیب ایجاد فرمهاس . چون وقتی پس و پیش میکنم واسه مدت کوتاهی درست میشه و لیدوباره به هم میریزه . کسی پیشنهادی داره ؟

Mahmood_M
چهارشنبه 19 اسفند 1388, 06:13 صبح
سلام دوستان .
من تو برنامه خودم یه فرم splash گذاشته بودم بعد مجبور شدم یه سری از فرمها رو کم و یا زیاد کنم. میدونید که فرم SPLASH کد هاش تو قسمت ایجاد فرمها نوشته میشه. حالا برنامه من هنگام بسته شدن پیغام خظای acsess vilotion at adress...... را میدهد . میدونم مشکل تو ترتیب ایجاد فرمهاس . چون وقتی پس و پیش میکنم واسه مدت کوتاهی درست میشه و لیدوباره به هم میریزه . کسی پیشنهادی داره ؟
اگر امكانش هست كد مربوط به Unit اصلي پروژه كه فرمها درونش ساخته مي شن رو قرار بديد ، شايد مشكل پيدا شد ...

اينطوري نميشه جواب مناسبي داد ...

daffy_duck376
چهارشنبه 19 اسفند 1388, 13:38 عصر
اگر امكانش هست كد مربوط به Unit اصلي پروژه كه فرمها درونش ساخته مي شن رو قرار بديد ، شايد مشكل پيدا شد ...

اينطوري نميشه جواب مناسبي داد ...



program hesabdari;

uses
Forms,
hesabdar_control in 'hesabdar_control.pas',
report_datamodoule in 'report_datamodoule.pas' {repott_DataModule1: TDataModule},
UFarsiDate in 'UFarsiDate.pas',
Un_advanced_search_print in 'Un_advanced_search_print.pas' {fm_advanced_search_print},
Un_back_up in 'Un_back_up.pas' {fm_backup},
Un_close_hesab_movaghat in 'Un_close_hesab_movaghat.pas' {fm_close_hesab_movaghat},
Un_close_hesab_movaghat_print in 'Un_close_hesab_movaghat_print.pas' {fm_close_hesab_movaghat_print},
Un_data_center_hesab in 'Un_data_center_hesab.pas' {DataModule_hesab: TDataModule},
Un_data_module_last_year_operation in 'Un_data_module_last_year_operation.pas' {DataModule_last_operation: TDataModule},
Un_data_sanad in 'Un_data_sanad.pas' {data_sanad: TDataModule},
Un_delete_hesab in 'Un_delete_hesab.pas' {fm_delete_hesab},
Un_details in 'Un_details.pas' {fm_details},
Un_details_search in 'Un_details_search.pas' {details_search},
un_export_center in 'un_export_center.pas' {fm_export},
Un_group in 'Un_group.pas' {fm_group},
Un_group_edit in 'Un_group_edit.pas' {fm_group_edit},
Un_group_list in 'Un_group_list.pas' {Fm_group_list},
Un_Help_and_Support in 'Un_Help_and_Support.pas' {Fm_help},
Un_hesab_edit in 'Un_hesab_edit.pas' {Fm_hesab_edit},
Un_hesab_kol in 'Un_hesab_kol.pas' {fm_hesab_kol},
Un_hesab_list in 'Un_hesab_list.pas' {Fm_hesab_list},
Un_login in 'Un_login.pas' {fm_login},
Un_main in 'Un_main.pas' {Fm_main},
Un_moein in 'Un_moein.pas' {fm_moein},
Un_moein_edit in 'Un_moein_edit.pas' {Fm_edit_moein},
Un_moein_list in 'Un_moein_list.pas' {fm_moein_list},
Un_moein_select in 'Un_moein_select.pas' {fm_moein_select},
Un_primition in 'Un_primition.pas' {fm_primition},
Un_sale_mali in 'Un_sale_mali.pas' {fm_select_year},
Un_sanad in 'Un_sanad.pas' {fm_sanad},
Un_sanad_advanced_seach in 'Un_sanad_advanced_seach.pas' {fm_sanad_advanced_search},
Un_sanad_edit in 'Un_sanad_edit.pas' {fm_sanad_temp_edit},
Un_sanad_edit_dialog in 'Un_sanad_edit_dialog.pas' {fm_sanad_edit_dialog},
Un_sanad_include_search in 'Un_sanad_include_search.pas' {fm_sanad_include_seach},
Un_sanad_insert in 'Un_sanad_insert.pas' {fm_sanad_insert},
un_sanad_list_taeed in 'un_sanad_list_taeed.pas' {sanad_list_taeed},
Un_sanad_nages_list in 'Un_sanad_nages_list.pas' {fm_sanad_nages},
Un_sanad_search in 'Un_sanad_search.pas' {fm_sanad_search},
Un_sand_edit in 'Un_sand_edit.pas' {fm_sanad_edit},
Un_satandard_sanad_display in 'Un_satandard_sanad_display.pas' {fm_standard_display},
Un_setting in 'Un_setting.pas' {fm_setting},
un_show_advanced_seach_resualt in 'un_show_advanced_seach_resualt.pas' {fm_show_advaced_seach_resualt},
Un_splash in 'Un_splash.pas' {SPLASH},
Un_standard_edit in 'Un_standard_edit.pas' {fm_standard_edit},
Un_standard_edit_dialog in 'Un_standard_edit_dialog.pas' {fm_standard_edit_dialog},
Un_standard_sanad in 'Un_standard_sanad.pas' {fm_standard_sanad},
Un_standard_sanad_print in 'Un_standard_sanad_print.pas' {fm_standard_sanad_print},
Un_standard_sanad_search in 'Un_standard_sanad_search.pas' {fm_standard_sanad_search},
Un_tafsil in 'Un_tafsil.pas' {fm_tafsil},
Un_tafsil_edit in 'Un_tafsil_edit.pas' {fm_tafsil_edit},
Un_tafsil_group in 'Un_tafsil_group.pas' {fm_tafsil_group},
Un_tafsil_list in 'Un_tafsil_list.pas' {fm_tafsil_list},
Un_tafsil_search_for_sanad in 'Un_tafsil_search_for_sanad.pas' {fm_tafsil_search_for_sanad},
Un_tarazname in 'Un_tarazname.pas' {fm_taraz_name},
Un_user_control in 'Un_user_control.pas' {fm_user},
Un_year_select in 'Un_year_select.pas' {fm_year_select},
Unit1 in 'Unit1.pas' {Form1},
fm_moein_report in 'report\fm_moein_report.pas' {fm_moin_report},
sanad_report in 'report\sanad_report.pas' {fm_sanad_report},
tafsil_report in 'report\tafsil_report.pas' {fm_tafsil_report},
um_moein_print in 'report\um_moein_print.pas' {fm_moein_prin},
Un_fm_group_report_print in 'report\Un_fm_group_report_print.pas' {fm_group_report_print},
Un_fm_group_report_print_2 in 'report\Un_fm_group_report_print_2.pas' {fm_group_report_print_2},
Un_fm_hesab_kol_print_2 in 'report\Un_fm_hesab_kol_print_2.pas' {fm_hesab_kol_print_2},
Un_gardesh_print in 'report\Un_gardesh_print.pas' {fm_gardesh_print},
Un_hesab_gardesh in 'report\Un_hesab_gardesh.pas' {fm_hesab_gardesh_report},
Un_hesab_kol_report in 'report\Un_hesab_kol_report.pas' {fm_hesab_kol_report},
Un_hesab_sacn_print in 'report\Un_hesab_sacn_print.pas' {fm_hesab_sacn_print},
un_hesab_scan in 'report\un_hesab_scan.pas' {fm_hesab_sacn},
un_moein_print2 in 'report\un_moein_print2.pas' {fm_moein_print2},
Un_news_pager in 'report\Un_news_pager.pas' {fm_news_paper},
un_news_paper_print in 'report\un_news_paper_print.pas' {fm_news_pager_print},
un_report_group in 'report\un_report_group.pas' {fm_group_report},
Un_sanad_print in 'report\Un_sanad_print.pas' {fm_sanad_print},
un_tafsil_print1 in 'report\un_tafsil_print1.pas' {fm_tafsil_print1},
Un_tafsil_print2 in 'report\Un_tafsil_print2.pas' {fm_tafsil_print2},
Unhesab_kol_print in 'report\Unhesab_kol_print.pas' {fm_hesab_kol_print},
Un_hesab_no_gardesh in 'last operation\Un_hesab_no_gardesh.pas' {fm_hesab_no_gardesh},
Un_last_operation_data_module in 'last operation\Un_last_operation_data_module.pas' {last_operation_data_module: TDataModule},
Un_moein_select_for_last_operation in 'last operation\Un_moein_select_for_last_operation.pas' {fm_moein_for_last_operation},
Un_hesab_scan2 in 'Un_hesab_scan2.pas' {fm_hesab_scan_2},
Un_hesab_scan4 in 'Un_hesab_scan4.pas' {fm_hesab_scan4},
Un_show_details in 'Un_show_details.pas' {fm_show_details},
Un_taraz_print in 'Un_taraz_print.pas' {fm_tarzname_print},
Un_hesab_gardesh2 in 'Un_hesab_gardesh2.pas' {fm_hesab_gardesh},
Un_hesab_tafsil_details in 'Un_hesab_tafsil_details.pas' {fm_hesab_tafsil_details},
Un_moein4_list in 'Un_moein4_list.pas' {fm_moein_four_list},
Un_tafsil_list_4 in 'Un_tafsil_list_4.pas' {fm_tafsil_list_4},
Un_hesab_gardesh_list4 in 'Un_hesab_gardesh_list4.pas' {FM_HESAB_GARDESH4},
Un_hesab_kol_sanad_print in 'Un_hesab_kol_sanad_print.pas' {fm_hesab_kol_sanad_print},
Un_fm_hesab_moein_sanad_print in 'Un_fm_hesab_moein_sanad_print.pas' {fm_hesab_moein_sanad_print},
Un_show_taraz_name in 'Un_show_taraz_name.pas' {fm_show_taraz_name},
Un_sod_ziyan in 'Un_sod_ziyan.pas' {fm_sood_va_ziyan},
Un_hesab_transfer in 'Un_hesab_transfer.pas' {fm_hesab_transfer},
Un_hesab_transfer_th in 'Un_hesab_transfer_th.pas',
Un_hesab_transfer_dlg in 'Un_hesab_transfer_dlg.pas' {fm_hesab_transfer_dlg},
Un_newspaper_new_print in 'Un_newspaper_new_print.pas' {fm_newspaper_new_print},
Un_newspaper_new_print2 in 'Un_newspaper_new_print2.pas' {fm_newspaper_new_print2};

{$R *.res}

begin
Application.Initialize;
Application.Title := '';
Application.CreateForm(Tfm_login, fm_login);
Application.CreateForm(TDataModule_hesab, DataModule_hesab);
Application.CreateForm(Tdata_sanad, data_sanad);
Application.CreateForm(TDataModule_last_operation, DataModule_last_operation);
Application.CreateForm(Trepott_DataModule1, repott_DataModule1);
Application.CreateForm(Tfm_delete_hesab, fm_delete_hesab);
Application.CreateForm(Tlast_operation_data_module , last_operation_data_module);
Application.CreateForm(Tfm_close_hesab_movaghat_pr int, fm_close_hesab_movaghat_print);
Application.CreateForm(Tfm_advanced_search_print, fm_advanced_search_print);
Application.CreateForm(Tfm_backup, fm_backup);
Application.CreateForm(Tfm_close_hesab_movaghat, fm_close_hesab_movaghat);
Application.CreateForm(Tfm_details, fm_details);
Application.CreateForm(Tdetails_search, details_search);
Application.CreateForm(Tfm_export, fm_export);
Application.CreateForm(Tfm_group, fm_group);
Application.CreateForm(Tfm_group_edit, fm_group_edit);
Application.CreateForm(TFm_group_list, Fm_group_list);
Application.CreateForm(TFm_help, Fm_help);
Application.CreateForm(TFm_hesab_edit, Fm_hesab_edit);
Application.CreateForm(Tfm_hesab_kol, fm_hesab_kol);
Application.CreateForm(TFm_hesab_list, Fm_hesab_list);
Application.CreateForm(TFm_main, Fm_main);
Application.CreateForm(Tfm_moein, fm_moein);
Application.CreateForm(TFm_edit_moein, Fm_edit_moein);
Application.CreateForm(Tfm_moein_list, fm_moein_list);
Application.CreateForm(Tfm_moein_select, fm_moein_select);
Application.CreateForm(Tfm_primition, fm_primition);
Application.CreateForm(Tfm_select_year, fm_select_year);
Application.CreateForm(Tfm_sanad, fm_sanad);
Application.CreateForm(Tfm_sanad_advanced_search, fm_sanad_advanced_search);
Application.CreateForm(Tfm_sanad_temp_edit, fm_sanad_temp_edit);
Application.CreateForm(Tfm_sanad_edit_dialog, fm_sanad_edit_dialog);
Application.CreateForm(Tfm_sanad_include_seach, fm_sanad_include_seach);
Application.CreateForm(Tfm_sanad_insert, fm_sanad_insert);
Application.CreateForm(Tsanad_list_taeed, sanad_list_taeed);
Application.CreateForm(Tfm_sanad_nages, fm_sanad_nages);
Application.CreateForm(Tfm_sanad_search, fm_sanad_search);
Application.CreateForm(Tfm_sanad_edit, fm_sanad_edit);
Application.CreateForm(Tfm_standard_display, fm_standard_display);
Application.CreateForm(Tfm_setting, fm_setting);
Application.CreateForm(Tfm_show_advaced_seach_resu alt, fm_show_advaced_seach_resualt);
Application.CreateForm(TSPLASH, SPLASH);
Application.CreateForm(Tfm_standard_edit, fm_standard_edit);
Application.CreateForm(Tfm_hesab_kol_report, fm_hesab_kol_report);
Application.CreateForm(Tfm_tafsil_search_for_sanad , fm_tafsil_search_for_sanad);
Application.CreateForm(Tfm_standard_edit_dialog, fm_standard_edit_dialog);
Application.CreateForm(Tfm_standard_sanad, fm_standard_sanad);
Application.CreateForm(Tfm_standard_sanad_print, fm_standard_sanad_print);
Application.CreateForm(Tfm_standard_sanad_search, fm_standard_sanad_search);
Application.CreateForm(Tfm_tafsil, fm_tafsil);
Application.CreateForm(Tfm_tafsil_edit, fm_tafsil_edit);
Application.CreateForm(Tfm_tafsil_group, fm_tafsil_group);
Application.CreateForm(Tfm_tafsil_list, fm_tafsil_list);
Application.CreateForm(Tfm_taraz_name, fm_taraz_name);
Application.CreateForm(Tfm_user, fm_user);
Application.CreateForm(Tfm_year_select, fm_year_select);
Application.CreateForm(TForm1, Form1);
Application.CreateForm(Tfm_moin_report, fm_moin_report);
Application.CreateForm(Tfm_sanad_report, fm_sanad_report);
Application.CreateForm(Tfm_tafsil_report, fm_tafsil_report);
Application.CreateForm(Tfm_moein_prin, fm_moein_prin);
Application.CreateForm(Tfm_hesab_gardesh_report, fm_hesab_gardesh_report);
Application.CreateForm(Tfm_group_report_print, fm_group_report_print);
Application.CreateForm(Tfm_group_report_print_2, fm_group_report_print_2);
Application.CreateForm(Tfm_hesab_kol_print_2, fm_hesab_kol_print_2);
Application.CreateForm(Tfm_gardesh_print, fm_gardesh_print);
Application.CreateForm(Tfm_hesab_sacn_print, fm_hesab_sacn_print);
Application.CreateForm(Tfm_hesab_sacn, fm_hesab_sacn);
Application.CreateForm(Tfm_moein_print2, fm_moein_print2);
Application.CreateForm(Tfm_news_paper, fm_news_paper);
Application.CreateForm(Tfm_news_pager_print, fm_news_pager_print);
Application.CreateForm(Tfm_group_report, fm_group_report);
Application.CreateForm(Tfm_sanad_print, fm_sanad_print);
Application.CreateForm(Tfm_tafsil_print1, fm_tafsil_print1);
Application.CreateForm(Tfm_tafsil_print2, fm_tafsil_print2);
Application.CreateForm(Tfm_hesab_kol_print, fm_hesab_kol_print);
Application.CreateForm(Tfm_hesab_no_gardesh, fm_hesab_no_gardesh);
Application.CreateForm(Tfm_moein_for_last_operatio n, fm_moein_for_last_operation);
Application.CreateForm(Tfm_hesab_scan_2, fm_hesab_scan_2);
Application.CreateForm(Tfm_hesab_scan4, fm_hesab_scan4);
Application.CreateForm(Tfm_show_details, fm_show_details);
Application.CreateForm(Tfm_tarzname_print, fm_tarzname_print);
Application.CreateForm(Tfm_hesab_gardesh, fm_hesab_gardesh);
Application.CreateForm(Tfm_hesab_tafsil_details, fm_hesab_tafsil_details);
Application.CreateForm(Tfm_moein_four_list, fm_moein_four_list);
Application.CreateForm(Tfm_tafsil_list_4, fm_tafsil_list_4);
Application.CreateForm(TFM_HESAB_GARDESH4, FM_HESAB_GARDESH4);
Application.CreateForm(Tfm_hesab_kol_sanad_print, fm_hesab_kol_sanad_print);
Application.CreateForm(Tfm_hesab_moein_sanad_print , fm_hesab_moein_sanad_print);
Application.CreateForm(Tfm_show_taraz_name, fm_show_taraz_name);
Application.CreateForm(Tfm_sood_va_ziyan, fm_sood_va_ziyan);
Application.CreateForm(Tfm_hesab_transfer, fm_hesab_transfer);
Application.CreateForm(Tfm_hesab_transfer_dlg, fm_hesab_transfer_dlg);
Application.CreateForm(Tfm_newspaper_new_print, fm_newspaper_new_print);
Application.CreateForm(Tfm_newspaper_new_print2, fm_newspaper_new_print2);
Application.Run;
end.

hamid-nic
چهارشنبه 19 اسفند 1388, 13:52 عصر
سلام
دوست عزیز شما باید ابتدا فرم اصلی تون را بسازید یعنی باید دستور ساخت فرم به این صورت باشد که فرم اصلی در ابتدا ساخته شود . شما فرم اصلیتون با این کدی که گذاشتید Tfm_login است ! در نتیجه فرم اصلی در ابتدا ساخته نشده است

Mahmood_M
چهارشنبه 19 اسفند 1388, 14:05 عصر
يك مطلب ديگه به توضيحات دوستمون اضافه كنم و اون اينكه ، هر فرمي كه ابتدا Create ميشه به عنوان فرم اصلي قرار داده ميشه ، يعني در حال حاضر فرم fm_Login فرم اصلي پروژه ي شما هست و تا زماني كه اين فرم Close نشده برنامه باز مي مونه ...

موفق باشيد ...

daffy_duck376
چهارشنبه 19 اسفند 1388, 17:01 عصر
مگه با دستور application.terminate تمامی فرمها بسته نمی شن؟

hamid-nic
چهارشنبه 19 اسفند 1388, 17:44 عصر
مگه با دستور application.terminate تمامی فرمها بسته نمی شن؟
به نقل از Mahmood_N
دستور Application.Terminate هم به Thread اصلی برنامه ( Application ) اطلاع میده که باید کارش خاتمه پیدا کنه و کار خاص دیگه ای انجام نمی ده ...

Mahmood_M
چهارشنبه 19 اسفند 1388, 20:45 عصر
مگه با دستور application.terminate تمامی فرمها بسته نمی شن؟
فرم Login رو بعد از نمايش چطور مي بنديد ؟ مطمئنا Close نمي كنيد چون برنامه بسته ميشه ، چطور فرم اصلي رو نشون مي ديد ؟ فرم Logine رو Hide مي كنيد ؟

به نقل از Mahmood_N
دستور Application.Terminate هم به Thread اصلی برنامه ( Application ) اطلاع میده که باید کارش خاتمه پیدا کنه و کار خاص دیگه ای انجام نمی ده ...
اگر Terminated برابر True قرار بگيره و مانعي براي بسته شدن برنامه وجود نداشته باشه‌يا به نوعي Thread برنامه مشغول نباشه ، برنامه و همه فرمها بايد بسته بشن ...
بايد ديد كه چه چيزي مانع Terminate شدن Thread اصلي مي شه ؟!

لطفا سئوال اول رو جواب بديد و همينطور بگيد كه با بستن برنامه چه اتفاقي مي افته ؟

...

daffy_duck376
پنج شنبه 20 اسفند 1388, 05:27 صبح
ترتیب اجرای فرم های من ابتدا login سپس hide ldai سپس.showmodal year select هست که اون هم hideسپس fm_main.showmodal انجام میشه.
یه سوال دیگه اگه از پروژه propertis بگیریم یه سری فرمها Auto create هستند و یه سری availabe که بیشتر فرمها هم available iهستند فرق این دو تا ستون با هم چی هست ؟

Mahmood_M
پنج شنبه 20 اسفند 1388, 05:54 صبح
یه سوال دیگه اگه از پروژه propertis بگیریم یه سری فرمها Auto create هستند و یه سری availabe که بیشتر فرمها هم available iهستند فرق این دو تا ستون با هم چی هست ؟
فرمهايي كه در قسمت Auto-Create قرار دارند فرمهايي هستند كه در شروع كار برنامه ساخته مي شن ، اما فرمهاي قسمت available در شروع برنامه Create نمي شن بلكه بايد خودتون اونها رو در صورت نياز Create و Free كنيد ...

ترتیب اجرای فرم های من ابتدا login سپس hide ldai سپس.showmodal year select هست که اون هم hideسپس fm_main.showmodal انجام میشه.
احتمالا مشكل اصلي به خاطر همين مورد هست ...
مطالب اين تاپيك (http://barnamenevis.org/forum/showthread.php?t=181568) و همچنين اين تاپيك (http://barnamenevis.org/forum/showthread.php?t=207218) رو مطالعه كنيد ، اگر مشكلتون حل نشد بگيد تا توضيح كاملتري بدم ...

موفق باشيد ...

vcldeveloper
پنج شنبه 20 اسفند 1388, 17:47 عصر
اساسا استفاده از فرم لاگین به عنوان فرم اصلی برنامه کار اشتباهی هست، حالا چه Hide بشه، چه Hide نشه!

من قبلا برای مواردی مثل این که باید یک فرم لاگین قبل از فرم اصلی نمایش داده بشه، اینجا نمونه کد گذاشته بودم:
http://www.barnamenevis.org/forum/showpost.php?p=883668&postcount=2