PDA

View Full Version : مبتدی: ارسال یک مقدار از یک فرم به فرم بعدی



delphi5
چهارشنبه 13 مهر 1390, 09:14 صبح
با سلام
من میخوام پس از اینکه نام کاربری و کلمه عبورم رو در یک فرم چک کردم مقدار نام کاربری ، نام ، نام خانوادگی ، کلمه عبور ، ID ، تاریخ و ساعت ورود به برنامه رو جهت استفاده های بعد به فرم بعدی انتقال بدم . توی سایت سرچ کردم و به این
http://barnamenevis.org/showthread.php?182952-%D8%A7%D9%86%D8%AA%D9%82%D8%A7%D9%84-%D9%85%D9%82%D8%A7%D8%AF%DB%8C%D8%B1-%D9%85%D8%AA%D8%BA%DB%8C%D8%B1%D9%87%D8%A7-%D8%A7%D8%B2-%D9%81%D8%B1%D9%85-%DA%A9%D9%85%DA%A9%DB%8C-%D8%A8%D9%87-%D8%A7%D8%B5%D9%84%DB%8C/page2&highlight=%D9%BE%D8%A7%D8%B3+%DA%A9%D8%B1%D8%AF%D9 %86+%DB%8C%DA%A9+%D9%85%D9%82%D8%AF%D8%A7%D8%B1+%D 8%A8%D9%87+%D9%81%D8%B1%D9%85%DB%8C+%D8%AF%DB%8C%D A%AF%D8%B1
تاپیک رسیدم اما متوجه نشدم . میشه به یک روش خیلی ساده این قضیه رو بهم بگید
متشکرم

nilmil_nil
چهارشنبه 13 مهر 1390, 09:29 صبح
شما میتونید
چند متغیر Public توی فرم 2 تعریف کنید
و وقتی که از فرم1 خواستی بری به فرم 2 بعد از اینکه یه نمونه از فرم 2 ساختی میتونی به اون متغیر ها دسترسی داشته باشی
و بعد فرم2 رو نشون بدی
Form2 frm=new form2();
frm.id=id;
frm.name=name;
frm.showdialog();

mehran_sh_t
چهارشنبه 13 مهر 1390, 09:46 صبح
سلام
روشی که در اون پست گفته شده، روش جالبی هستش، به نظر نمی آد سخت باشه، با delegate و event پیاده سازی شده.
نمی دونم اینی که میگم روش درستیه یا نه! ولی می تونید از property هم استفاده کنید.
برای فرمتون یک property میذارید که یک کلاس با داده های مورد نظر رو برگردونه، بعد در فرم های با آوردن نام این فرم بهش دسترسی داری

ali_autumnal
چهارشنبه 13 مهر 1390, 10:02 صبح
سلام

تو program.cs به تعداد مورد نیاز property تعریف کن و همواره ازش تو همه فرم ها استفاده کن.

موفق باشید
علی پاییزی
وب سایت (http://babamoradi.ir/)

delphi5
چهارشنبه 13 مهر 1390, 11:49 صبح
تو program.cs به تعداد مورد نیاز property تعریف کن و همواره ازش تو همه فرم ها استفاده کن.

program.cs کجاست ؟

wolf_majid
چهارشنبه 13 مهر 1390, 13:00 عصر
سلام
من از روش زیر استفاده می کنم
کسانی که فکر می کنند اشتباهه یا میشه بهترش کرد لطفا" بهم اطلاع بدند

کلاس ضمیمه شده را برای نگهداری شی منتقل شده و شی فرستنده استفاده می کنم
توی کلاس فرمی که میخواد شی ای مثل dataTable را ارسال کنه یک رخداد تعریف می کنم مثل زیر
public delegate void _SelectedCustomer(MoveObjectEventArgs e);
public event _SelectedCustomer SelectedCustomer;
و جاییکه قراره شی ارسال بشه از کد زیر استفاده می کنم
//رخداد ارسال اطلاعات کاربر اعمال شود
if (this.SelectedCustomer != null)
this.SelectedCustomer(new MoveObjectEventArgs(dt2, this));

و اما توی کلاس گیرنده کد زیر رو اعمال می کنم

_frmCustomers frmCustomer = new _frmCustomers();
frmCustomer.SelectedCustomer += GetCustomer;
frmCustomer.ShowDialog();



private void GetCustomer(MoveObjectEventArgs e)
{
this.Text = (e.GetObject as DataTable).Rows[0][_classCustomers.TableFields.Code.ToString()].ToString();
(e.Sender as _frmCustomers).Close();
}

ali_autumnal
چهارشنبه 13 مهر 1390, 14:08 عصر
تو program.cs به تعداد مورد نیاز property تعریف کن و همواره ازش تو همه فرم ها استفاده کن.

program.cs کجاست ؟

این کلاس اصلیه پروژ ات هست و همواره تو همه پزوژه هایی که ایجاد میشه وجود داره.
بعداز static class Program

به فرم زیر پروپرتی بنویس:



private static string strUserInput = null;
public static string StrUserInput
{
get
{
return strUserInput;
}
set
{
strUserInput = value;
}
}


بعد تو برنامه ات هرجایی که لازم داشتی بفرم زیر استفاده کن:

if (Program.StrUserInput == "admin")
{
...
}


البته روشهای دوستان غلط نیست. اینم یه مدلیه.

موفق باشید
علی پاییزی
وب سایت (http://babamoradi.ir/)