PDA

View Full Version : اشاره کردن به محتوی یک متغیر



پدرخوانده
پنج شنبه 28 مهر 1384, 14:08 عصر
شنیدم با استفاده از پوینترها می توان چنین کاری کرد
ممنون میشم مثالی جهت استفاده از این تکنیک (اشاره به محتوی یک متغیر) بزنید؟
(مثلا در یک فرم می خواهم یکسری آبجکت از نوع buttion را مقداردهی کنم؟)
مثلا بدین صورت:
for iz:=1 to 10 do
buttion[iz].caption = inttostr(iz);
)

oghab
پنج شنبه 28 مهر 1384, 15:21 عصر
سلام
هر component یه ایندکس داره که بر اساس ترتیب گذاشتنشون روی فرم و یا داخل frame ها مشخص میشه.
این ایندکس را میشه به روش زیر برای کامپوننت مورد نظرت بدست بیاری. q یه متغیر از نوع integer است
q:=button1.ComponentIndex ;

حالا برای اشاره به اون کامپوننت از طریق این ایندکس می تونی اینجوری عمل کنی:
(Components [q] as tbutton).Caption :='ama';

و برای مثالی که بالا زدی می تونی این کارو انجام بدی:
for i:=0 to 9 do
(components[i] as tbutton).Caption :=inttostr(i);
end;

موفق باشی

oghab
پنج شنبه 28 مهر 1384, 15:30 عصر
دوباره سلام
این یک سال پیش سوال خودم بوده و لینکی که می فرستم. جوابی هست که بهم داده شد و خیلی کمک کرد
شاید بد نباشه اینم ببینید.
http://www.barnamenevis.org/forum/showthread.php?t=9142


این جوابی بود که کمکم کرد

++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++
شنبه 13 تیر 1383, 04:42 بامداد #4
MToloo
کاربر دائمی



وضعیت: Offline
پست ها: 111
شهرت:
تاریخ عضویت: تیر 1383




--------------------------------------------------------------------------------

اگه برای واقعه هاشون میخوایی این کار و بکنین که تو دلفی خیلی راحتتره. چند تا کامپوننت و با هم انتخاب میکنی بعد براشون یک واقعه ایجاد میکنی. اینطوری واقعه همه اونها یکی میشه. یا میتونی وقتی برای یکی یک رویداد ایجاد کردی برای بقیه هم میتونی اون واقعه ایجاد شده رو انتخاب کنی.
اگر هم میخوایی به خودشون دسترسی پیدا کنی چند تا راه وجود داره که بسته به نوع استفادهت باید یکی اش و انتخاب کنی. حالا من یه راهش و میگم. تمام عناصر فرم آرایه اند. با یک حلقه for میتونی همشون و بررسی بکنی و به همشون دسترسی داشته باشی. مثلا اگه کل TEdit ها رو خواسته باشی:

کد:
for i:= 0 to ComponentCount- 1 do
begin
if Components[i] is TEdit then
(Components[i] as TEdit).Text:= 'Component no : '+ IntToStr(i);
end;

MToloo
View Public Profile
ارسال پیام خصوصی به MToloo
Find More Posts by MToloo
اضافه کردن MToloo به لیست دوستان
++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++=
با تشکر از MToloo