hadisalahi2
یک شنبه 24 آذر 1392, 17:11 عصر
سلام بچه ها
من یک یونیت دارم که توش چند تا پروسیجر برای ایجاد کنترل ها در حالت ران تایم داره.
مثلا مثل این کدها
unit CreatObjectUnit;
interface
uses StdCtrls,SysUtils,Forms,Controls,AdvSmoothPageSlid er
,AdvStyleIF,Graphics;
//|QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
Procedure CreatPage(Parent:TWinControl;ObjName:String);
Procedure CreatLable(PParent:TWinControl;ObjName,PCaption,PF ontName:String;
PTop,PLeft,FontSize:Integer);
implementation
uses
DBUnit;
//|QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
Procedure CreatPage(Parent:TWinControl;ObjName:String);
Var NewPage:TAdvSmoothPage;
Begin
Try
NewPage:=TAdvSmoothPage.Create(Parent);
NewPage.SetComponentStyle(tsOffice2010Blue);
NewPage.Name:=ObjName;
NewPage.Header:='';NewPage.Footer:='';
NewPage.HeaderHeight:=70;NewPage.FooterHeight:=30;
NewPage.MinimumWidth:=50;
(Parent as TAdvSmoothPageSlider).AddPage(NewPage);
CreatLable(NewPage,'LBL1','کد رایانه :','Mitra',10,845,10);
except on E: Exception do
DBForm.InsertToException('CreatObjectUnit','CreatP age',e.Message);
end;
End;
//|QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
Procedure CreatLable(PParent:TWinControl;ObjName,PCaption,PF ontName:String;
PTop,PLeft,FontSize:Integer);
Var NewLable:TLabel;
Begin
Try
NewLable:=TLabel.Create(PParent);
NewLable.Parent:=PParent;
with NewLable Do Begin
Name:=ObjName;
Top:=PTop;Left:=PLeft;
Caption:=PCaption;
Font.Name:=PFontName;
Font.Size:=FontSize;
Font.Style:=[fsBold];
End;
except on E: Exception do
DBForm.InsertToException('CreatObjectUnit','CreatL able',e.Message);
end;
End;
//|QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
end.
حالا من با متد زیر یک Page ایجاد میکنم
CreatPage(ReportPages,'Page'+IntToStr(ReportPages. PageCount+1));
حالا میخوام ، یک لیبل ایجاد کنم که روی همین صفحه ایجاد شده من قرار بگیره
با این کد :
CreatLable((FindComponent('Page'+IntToStr(ReportPa ges.PageCount))as TAdvSmoothPage)
,'LBL1','کد رایانه :','Mitra',10,845,10);
اما مشکل اینجاست که ، لیبل نشون داده نمیشه
اینجا چطوری باید این کنترل Page رو به عنوان Parent لیبل مشخص کنم؟
من یک یونیت دارم که توش چند تا پروسیجر برای ایجاد کنترل ها در حالت ران تایم داره.
مثلا مثل این کدها
unit CreatObjectUnit;
interface
uses StdCtrls,SysUtils,Forms,Controls,AdvSmoothPageSlid er
,AdvStyleIF,Graphics;
//|QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
Procedure CreatPage(Parent:TWinControl;ObjName:String);
Procedure CreatLable(PParent:TWinControl;ObjName,PCaption,PF ontName:String;
PTop,PLeft,FontSize:Integer);
implementation
uses
DBUnit;
//|QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
Procedure CreatPage(Parent:TWinControl;ObjName:String);
Var NewPage:TAdvSmoothPage;
Begin
Try
NewPage:=TAdvSmoothPage.Create(Parent);
NewPage.SetComponentStyle(tsOffice2010Blue);
NewPage.Name:=ObjName;
NewPage.Header:='';NewPage.Footer:='';
NewPage.HeaderHeight:=70;NewPage.FooterHeight:=30;
NewPage.MinimumWidth:=50;
(Parent as TAdvSmoothPageSlider).AddPage(NewPage);
CreatLable(NewPage,'LBL1','کد رایانه :','Mitra',10,845,10);
except on E: Exception do
DBForm.InsertToException('CreatObjectUnit','CreatP age',e.Message);
end;
End;
//|QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
Procedure CreatLable(PParent:TWinControl;ObjName,PCaption,PF ontName:String;
PTop,PLeft,FontSize:Integer);
Var NewLable:TLabel;
Begin
Try
NewLable:=TLabel.Create(PParent);
NewLable.Parent:=PParent;
with NewLable Do Begin
Name:=ObjName;
Top:=PTop;Left:=PLeft;
Caption:=PCaption;
Font.Name:=PFontName;
Font.Size:=FontSize;
Font.Style:=[fsBold];
End;
except on E: Exception do
DBForm.InsertToException('CreatObjectUnit','CreatL able',e.Message);
end;
End;
//|QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
end.
حالا من با متد زیر یک Page ایجاد میکنم
CreatPage(ReportPages,'Page'+IntToStr(ReportPages. PageCount+1));
حالا میخوام ، یک لیبل ایجاد کنم که روی همین صفحه ایجاد شده من قرار بگیره
با این کد :
CreatLable((FindComponent('Page'+IntToStr(ReportPa ges.PageCount))as TAdvSmoothPage)
,'LBL1','کد رایانه :','Mitra',10,845,10);
اما مشکل اینجاست که ، لیبل نشون داده نمیشه
اینجا چطوری باید این کنترل Page رو به عنوان Parent لیبل مشخص کنم؟