View Full Version : مشکل در نسبت دادن parent یک عکس به یک پنل
farhaj
سه شنبه 01 اسفند 1385, 16:47 عصر
من یک مشکل داشتم
من در یک فرم تعدادی پنل را create نموده ام. حال می خواهم که با کلیک بر روی یک کلید که در فرم وجود دارد یک عکس در آن پنل بیافتد. مشکل اینجا است که چون پنا در لحظه اجرای برنامه ساخته می شود من نمی توانم parent عکس ساخته شده را مساوی با پنل قرار دهم.
خواهشمند است راه حلی به من بدهید.
ممنون می شوم
dkhatibi
سه شنبه 01 اسفند 1385, 20:28 عصر
مگه در حالتیکه پنل به شکل دینامیک ساخته نمی شه می تونیم با مساوی قرار دادن Parent ها این کار رو انجام بدیم؟
Touska
چهارشنبه 02 اسفند 1385, 09:22 صبح
Var
Img : TImage;
Panel : TPanel;
begin
Panel := TPanel.Create(Self);
Panel.Parent := Form1;
Panel.Name := 'Panel1';
Img := TImage.Create(Self);
Img.Parent := TWinControl(FindComponent('Panel1'));
Img.Name := 'Image1';
Img.Picture.Bitmap.LoadFromFile('Test.bmp');
farhaj
پنج شنبه 03 اسفند 1385, 10:58 صبح
این مثالی که آقای توسکا نوشته اند درست است.
ولی وقتی که پنلها را در یک تابع تعریف می نمائیم و عکسها را نیز در یک تابع دیگر این وضعیت بهم می ریزد.
Var
Img : TImage;
Panel : TPanel;
begin
Panel := TPanel.Create(Self);
Panel.Parent := Form1;
Panel.Name := 'Panel1';
Img := TImage.Create(Self);
Img.Parent := TWinControl(FindComponent('Panel1'));
Img.Name := 'Image1';
Img.Picture.Bitmap.LoadFromFile('Test.bmp');
vcldeveloper
جمعه 04 اسفند 1385, 08:17 صبح
ولی وقتی که پنلها را در یک تابع تعریف می نمائیم و عکسها را نیز در یک تابع دیگر این وضعیت بهم می ریزد.
مسلما اگر Panel را در یک تابع به عنوان یک متغیر محلی (Local) تعریف کنید، با خروج از تابع متغیر مربوطه نامعتبر میشه و نمیشه به شی مربوطه ارجاع داد. نتیجه این کار هم نشت حافظه است!
Sohrab_Tapar
جمعه 04 اسفند 1385, 12:11 عصر
احتمالا قسمت ایجاد پنل ها و قسمت ایجاد image ها را در دو unit قرار داده اید و در نتیجه مقدار self ( که به عنوان owner پنلهایتان انتخاب کرده اید) در دو فرم فرق میکند و برنامه قادر به پیدا کردن پنلها در تابع مربوط به ایجاد تصاویر نیست
farhaj
شنبه 05 اسفند 1385, 09:04 صبح
متغیرهایی از نوع پنل و عکس در قسمت تعریف داده ها در اول یونیت در قسمت private نیز تعریف نموده ام ولی باز هم همچین مشکلی وجود دارد.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.