PDA

View Full Version : استفاده از یک کامپوننت از فرمی دیگر؟



V60
جمعه 27 خرداد 1384, 11:30 صبح
سلام همانطور که می دانید اگر بخواهیم از طریق کامپوننت و ایندکس مربوط هم می توانیم به اجزاء روی یک فرم دسترسی پیدا کنیم ,
مثلا می توانیم بنویسم

TButton(Components[1]).SetFocus;
حال اگر بخواهیم به کامپوننتی در فرم غیر از فرم جاری دسترسی داشته باشیم باید چه کنیم , دوستان دقت کنید می خواهیم از طریق کامپونتت به آن دسترسی داشته باشیم و نه نام آن چون همانطور که می دانیم دسترسی از طریق نام بسیار راحت است.
مشکل من این است که می خواهم ایندکس مربوط به کامپوننت را در شرطی قرار دهم و اگر هر شرطی برقرار بود ایندکس درون کامپوننت را تغییر دهم .
با تشکر.

vcldeveloper
یک شنبه 29 خرداد 1384, 02:19 صبح
من چندان منظورتون رو نفهمیدم و اگه کامپوننت های مربوطه در Form2 باشند و شما بخوایید از طریق Form1 به اونها دسترسی داشته باشید، می تونید به راحتی بنویسید:


Form2.Controls[i]

V60
یک شنبه 29 خرداد 1384, 13:33 عصر
جناب کشاورز کدی که شما نوشتید کاملا درست است فقط من این کد را نمی توانم برای data madoule استفاده کنم , من نمی دانم چرا؟ :flower:
اقای کشاورز این سوال را برای این می پرسم که می خواهم فرضا توسط رابطه های کامپوننت ها که مربوط به یک کوری می شود عملیات post را انجام دهم ( برای مثال) می خواهم از کد نویسی اضافه بپرهیزم.
البته فکر کنم آن کد شما برای این کار فایده نداشته باشد ؟البته جسارت نباشد. :embr:

vcldeveloper
دوشنبه 30 خرداد 1384, 19:53 عصر
فقط من این کد را نمی توانم برای data madoule استفاده کنم , من نمی دانم چرا؟
از


DataModule1.Components[i]

استفاده کنید.

می خواهم فرضا توسط رابطه های کامپوننت ها که مربوط به یک کوری می شود عملیات post را انجام دهم
متوجه نشدم چی میگید.

V60
سه شنبه 31 خرداد 1384, 10:10 صبح
جناب کشاورز
من یک کوری در فرم خودم داشته باشم اینجوری هم می توانم بنویسم

TADOQuery(Components[k]).FieldByName('Factor').AsS tring:=ADOTable2factor.AsString;
TADOQuery(Components[k]).Post;
ولی وقتی می خواهم این کدها را به یک فرم دیگر نسبت دهم با قبول نمی کند , یعنی اول اینها نمی توانم اسم فرم را بگذارم و بعدش دات بگذارم. اصلا نمی پذیرد.

Touska
سه شنبه 31 خرداد 1384, 11:28 صبح
فکر کنم اگر With به آن Data بزنید شاید درست شه. :flower:

m-khorsandi
سه شنبه 31 خرداد 1384, 16:55 عصر
درود

میتونم بپرسم چرا نمیتونید برای DataModule استفاده کنید، پیغام خطا میده؟

vcldeveloper
چهارشنبه 01 تیر 1384, 00:32 صبح
یعنی اول اینها نمی توانم اسم فرم را بگذارم و بعدش دات بگذارم. اصلا نمی پذیرد.
باید اینجوری بنویسید:


TADOQuery(DataModule1.Components[k]).Post;

V60
پنج شنبه 02 تیر 1384, 11:33 صبح
جناب کشاورز
بسیار سپاس گذارم.