View Full Version : تغییر خصوصیت یک شی فرم از درون فرم دیگر
khoshblagh
چهارشنبه 15 مهر 1388, 12:33 عصر
با سلام خدمت دوستان
میخواهم از درون یک فرم خصوصیت یک ادیت باکس (مثلا تغییر Maxlenght ) فرم دیگر را انجام بدهم البته فرمی که قرار است تغییرات داشته باشد بسته میباشد و فقط فرمی که از
طریق آن تغییرات انجام میگیرد باز و فعال است .برای روشن شدن مطلب فرض کنید که فرمی
به نام فرم تنظیمات سیستم وجود دارد که از طریق آن تغییراتی در سایر فرمهای برنامه اجرا
میشود. آیا این کار امکان دارد؟ در صورت امکان روش آنرا ذکر نمائید.متشکرم
hadisalahi2
چهارشنبه 15 مهر 1388, 12:42 عصر
بله امکان دارد.
ابتدا با استفاده از Use Unit یونیت فرم مقصد را به فرم مورد نظر اضافه کنید.
حال تمام کنترلهای فرم مقصد از داخل فرم مبدا قابل تنظیم می باشند.
یا حق
khoshblagh
چهارشنبه 15 مهر 1388, 12:46 عصر
بله امکان دارد.
ابتدا با استفاده از Use Unit یونیت فرم مقصد را به فرم مورد نظر اضافه کنید.
حال تمام کنترلهای فرم مقصد از داخل فرم مبدا قابل تنظیم می باشند.
یا حق
با تشکر از پاسختان
در حقیقت من این کار انجام دادم ولی در موقع اجرا برنامه خطای آدرس میداد.
Zahed2008
چهارشنبه 15 مهر 1388, 13:03 عصر
سلام، لازم به تذکر هستش که باید قبل از اسم ادیت باکست باید اسم فرم مقصد رو بصورت زیر بدی. مثلا اگه تو فرم Form1 از Unit1 هستی و می خوای یه شی از فرم Form2 از Unit2 رو صدا کنی:
uses Unit2;
...
Form2.Editbox1.Maxlenght := 100;اینطوری هم می شه:
with Form2 do begin
Editbox1.Maxlenght := 100;
end;موفق باشید.
khoshblagh
پنج شنبه 16 مهر 1388, 07:16 صبح
سلام، لازم به تذکر هستش که باید قبل از اسم ادیت باکست باید اسم فرم مقصد رو بصورت زیر بدی. مثلا اگه تو فرم Form1 از Unit1 هستی و می خوای یه شی از فرم Form2 از Unit2 رو صدا کنی:
uses Unit2;
...
Form2.Editbox1.Maxlenght := 100;اینطوری هم می شه:
with Form2 do begin
Editbox1.Maxlenght := 100;
end;موفق باشید.
با سلام خدمت شما
من تمام موارد فوق الذکر را رعایت کردم. ولی نتیجه ای نداشت. به نظر من مشکل پیش آمده به علت ساخته نشدن فرم مقصد میباشد. زیرا در زمان استفاده از کد بالا فرم مقصد هنوز ساخته نشده است . پس بعد از اجرای آن کد و در موقع مراجعه به فرم مقصد کد تازه فرم مقصد ساخته شده و مقادیر پیش فرض در آن قرار میگیرد. لذا باید راهی پیدا کرد که فرم مقصد ابتدا ساخته شود و بعد تنظیمات آن دستکاری گردد.
Zahed2008
یک شنبه 26 مهر 1388, 14:09 عصر
سلام، بايد مطمئن باشيد كه فرم مورد نظر در قسمت Auto-Create form (منوي Project/Option) قرار داشته باشه. يا با دستور زير در قسمت Initialize پروژه مورد نظر توليدش كنيد:
program Project1;
....
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.Run;
AmirSky
دوشنبه 27 مهر 1388, 11:52 صبح
تمام فرمها رو که نمی شه در ابتدای برنامه ایجاد کرد. اگه برنامه صد تا فرم داشته باشه چی؟
باید متد هایی که می خواهید در فرم دوم تغییر دهید بعد از Create فرم دوم قرار دهید . بهتره بعد از ایجاد فرم دوم و در فرم دوم پارامتر های مورد نیاز رو لود کنید. این پارامتر ها رو می توانید در جای خاصی به صورت دائم یا موقت نگهداری کنید. اما حتما باید بعد از Create فرم دوم باشه. و تا وقتی فرم دوم ایجاد نشده باشه Error به وجود می یاد چون در برنامه فرم دوم ایجاد نشده که شما مثلا خاصیت Maxlenght ادیت باکس اون فرم رو تغییر بدید.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.