PDA

View Full Version : اضافه کردن تصویر در یکی از خصوصیات شیی که قصد اضافه کردن به لیست باکس داریم؟؟؟؟



firststep
سه شنبه 27 فروردین 1392, 10:10 صبح
سلام به همه دوستتان خوبم
من قصد دارم تصویر رو در یک شیی از کلاسی ذخیده کنم و بعد اون رو بدم به لیست باکس تا به این شکل زمانی کاربر روی یکی از ایتم ها کلیک کرد تصویر اون شی نمیش داده بشه بهمراه دیگر پارمتر ها




ببینین برای مثال کلاسی که ساختم این طوره


type
tt = class
lentime: integer;
im:TGRAPHIC;
PP:TBitmap;
ID_PIC:INTEGER;

kind_tizer: boolean;


Constructor Create();

end;




بعد زمانی که یک تصویر رو درون یک IMAGE لود می کنم
بهد با زدن دکمه انتقال
این رویدا انجام میشه


var

dd: tt;
ss:TMemoryStream;
begin


dd := tt.Create();
dd.PP:=Image1.Picture.BITMAP;
dd.lentime := self.SpinEdit1.Value;


if ComboBox1.ItemIndex = 0 then
dd.kind_tizer := false
else
dd.kind_tizer := true;


ListBox1.Items.AddObject(ComboBox1.Text+' --> len: '+SpinEdit1.Text+' s', dd);
end;




بعد هروقت می خوام تصویر رو بگیرم و توی یک IMAGE نمایش بدم نمی تونم
یک مقدار کلافه شدم
این کار رو با کلاس های STREAM و حتی tGRAPHIC انجام دادم نشد....

یوسف زالی
سه شنبه 27 فروردین 1392, 12:08 عصر
سلام.
در کمبوباکس قصد استفاده از نام اشیا رو دارید که با استفاده از چیزی که انتخاب می شه شی رو داشته باشید؟
اگر این طوره راههای ساده تری هم وجود داره.
اگر نه، توضیحاتتون من رو گیج کرد.

firststep
سه شنبه 27 فروردین 1392, 12:57 عصر
سلام اصلا کاری با combobox نداشتم که
توی لیست باکس بود
item های لیست باکس هم یک string ذخیره می کنن و هم یک object حالا من می خوام ابجکتشو شیی از که کلاس tt قرار بدم که توی این کلاس یک عکس رو ذخیره کنم حالا هم که ایتمی رو انتخاب می کنین تصویر دون image نمایش بده

یوسف زالی
سه شنبه 27 فروردین 1392, 13:08 عصر
در اینصورت نیازی به ساخت کلاس دیگه ندارید. البته فرقی هم نمی کنه. ممکنه فیلد های اضافی بخواهید داشته باشید.
یک مثال بسیار ساده می گذارم.
مهم دسترسی داشتن به آبجکتتونه.
ببینید.

firststep
سه شنبه 27 فروردین 1392, 15:57 عصر
بله بسیار ممنونم
نه در همین مورد اگر IMAGE1 تصویرش تغییری کنه ، تصویر مربوط به ITEM یک هم تغییر می کنه
انگار شی ه اشاره گری به اون IMAGE هستش نه مستقلا شی

باز ارایه از TPICTURE هم درس ت کردم و خواستم که هر ایتم رو با خونه متناطرش در نظر بگیرم ولی اون هم همینطور بود
نمی دونم چه گار کنم

یوسف زالی
سه شنبه 27 فروردین 1392, 16:30 عصر
اگر دارید در لیست شی اد می کنید اشاره گری به شی اصلی شما اد خواهد شد یعنی فقط یک پوینتر.
اگر قصد دارید کلون کنید و نسخه ی مجزا داشته باشید داستان فرق داره. باید آرایه ای از اشیا بسازید و آخر کار اونها رو آزاد کنید.

Ananas
سه شنبه 27 فروردین 1392, 16:53 عصر
کلا متغیر های از نوع کلاس در دلفی به شکل اشاره گر هستن. یعنی مثل record نیستن. و شما اصلا نمیتونین یک متغیر مثل record ولی از نوع کلاس داشته باشید. مثلا وقتی مینویسید :
MyRecord1 := MyRecord2;
فیلد های رکورد 2 در رکورد 1 ذخیره میشه ولی وقتی مینویسید :
MyClass1 := MyClass2;
اطلاعات و فیلد های کلاس 2 در کلاس 1 ذخیره نمیشه (اصلا MyClass1 و MyClass2 هر کدوم یک اشاره گر هستن و مقدار فضایی که خودشون ذخیره میکنن اندازه ی یک آدری حافظه هست) و فقط آدرسی که MyClass2 ذخیره کرده در MyClass1 ذخیره میشه.