PDA

View Full Version : سوال: ساخت شی بدون ParentWindow در حالت RunTime



loo30fer
شنبه 26 شهریور 1390, 14:23 عصر
با سلام خدمت دوستان
من میخواستم یک شی رو در فرم دیگری در حالت Run Time ایجاد کنم ولی متاسفانه این شی پارامتر ParentWindow رو نداره که هندل اون فرم رو بهش بدم تا روی اون فرم نمایش داده بشه.
به جاش سعی کردم از پارامتر Parent استفاده کنم و با این کدی که قرار دادم سعی کردم ولی بی فایده بود.
البته قابل به ذکر هست که من میخوام اون آبجکت رو روی فرم برنامه ساخته شده با Builder ایجاد کنم که dll من هم توسط اون استفاده میشه و یک راهی که برام وجود داره این هست که من داخل dll هم یک MainForm ایجاد کنم و اون MainForm رو هم روی فرم exe Builder بسازم و شی مد نظرم رو روی اون MainForm ایجاد و استفاده کنم.
ولی من این رو نمیخوام چون میخوام خودم بتونم چندین شی رو روی اون فرم exe Builder ایجاد کنم.
خیلی ممنون میشم در این زمینه بنده رو راهنمایی کنید. پیشاپیش تشکر

procedure Create;
begin
with TTransparentFlashPlayerControl.Create(nil) do begin
Parent:= FindControl(hMMBWindow);
Show;
Movie:= 'E:\movie.swf';
Play;
end;end;

Felony
شنبه 26 شهریور 1390, 15:49 عصر
اون کامپوننتی که قصد ساختنش رو دارید متدی با نام ParentWindow نداره ؟ اگر داره اون رو با handle پنجره بیلدر مقدار دهی کنید .

loo30fer
شنبه 26 شهریور 1390, 17:44 عصر
اون کامپوننتی که قصد ساختنش رو دارید متدی با نام ParentWindow نداره ؟ اگر داره اون رو با handle پنجره بیلدر مقدار دهی کنید .
من میخواستم همین کار رو بکنم ولی مشکل اینجاست که متدی با نام ParentWindow نداره. حالا نمیدونم چیکار باید کرد؟:متفکر:

loo30fer
دوشنبه 28 شهریور 1390, 16:20 عصر
من این موضوع رو توی وبسایتشون مطرح کردم و این جواب رو به بنده دادن که :

شما می توانید TTransparentFlashPlayerControl در زمان اجرا به عنوان هر کنترل دیگری ایجاد کنید.اگه درست متوجه شده باشم یعنی یک شی روی اون فرم ایجاد کنم و از کنترل اون شی برای انتقال و نمایش این شی روی اون فرم استفاده کنم. درسته؟ اگه نه ممنون میشم توضیحی رو در این باره برای راهنمایی بنده بدین.

Felony
دوشنبه 28 شهریور 1390, 18:01 عصر
کد زیر رو تست کن :


procedure Create;
begin
with TTransparentFlashPlayerControl.Create(nil) do
begin
Windows.SetParent(Handle, hMMBWindow);
Show;
Movie := 'E:\movie.swf';
Play;
end;
end;

loo30fer
دوشنبه 28 شهریور 1390, 18:22 عصر
ممنون جناب تاجیک ولی این Handle توی کد مربوط به چه هندلی میشه تا اون هندل رو بگیرم و به متغیر Handle بدم؟

Felony
دوشنبه 28 شهریور 1390, 19:15 عصر
هندل شیئی که از کلاس TTransparentFlashPlayerControl نمونه سازی کردیدش .

loo30fer
چهارشنبه 11 آبان 1390, 19:39 عصر
ممنون جناب تاجیک
عذرخواهی میکنم که دیر مشکل رو بیان میکنم.
مشکل این هست که این شی هایی که از کلاس TTransparentFlashPlayerControl ساخته میشه هندل هم نداره.
اگه لازم دونستید کامپوننت رو از طریق پ.خ براتون میفرستم.
تشکر

Felony
جمعه 13 آبان 1390, 16:39 عصر
تنها راهی که در خصوص این کامپوننت دارید این هست که در مکان مورد نیاز یک فرم یا Panel بسازید و سپس با استفاده از متد Parent این شئ رو روی اون فرم یا Panel قرار بدید .