ايران ويج

نسخه‌ی کامل: ساخت شی از روی نمونه؟؟
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام و وقت بخیر
   من چون نمی دونم این کاری که می خوام انجام بدم اسمش چیه یا چطوریه ، در نتیجه هیچ جستجوی نکردم.
   لطفن اگه امکان داره اولش رو بگید ، من بقیش رو سرچ می کنم
   شرمنده


   من می خوام از یه المان الگو مثلن : Button یا Shape یا Memo و یا ..... که ویژگیهاش رو تغیر دادم ، در زمان اجرا یهکی دیگه ازش بسازم؟؟
   فرض کنید که یه Shape ساختم و چندتا رویداد بهش اختصاص دادم.مثلن وقتی موس وارد شد ، رنگش سبز بشه ویا هر وقت روش کلیک شد ، شکلش عوض بشه و.....
   حالا در زمان اجرا می خوام عین همین رو بسازم؟؟؟

   من چون بلد نیستم ، فقط یه راه به ذهنم رسید و اون این بود که بعد از ساختن شی ، تک تک خصوصیاتش رو برابر با شی الگو قرار می دم؟
  
   
کد:
  Shape_Olgo_IF_1_Create := TShape.Create(Form_Main);
          with Shape_Olgo_IF_1_Create do  begin
              Name := str_Name ;
              Name_Temp := str_Name ;
              Caption:= str_Caption;
              Parent := Form_Main.ScrollBox1;
              Left := Left_Click;
              Top := Top_Click;
              Width := Element_Width;
              ShowHint:= True;
              Hint:= 'Empty';
              Brush.Style := Style_Leave_Element ;
              //Pen.Color:= Brush.Color ;
              Bool_New_Old_Element:= True;



   مثلن اینجا دارم رویداد ها رو بهش اختصاص می دم
   
کد:
    OnMouseDown := Form_Main.Shape_Olgo.onMouseDown;
    OnMouseEnter:= Form_Main.Shape_Olgo.onMouseEnter;
    OnMouseLeave:= Form_Main.Shape_Olgo.onMouseLeave;
    OnPaint:= Form_Main.Shape_Olgo.OnPaint;
    if Bool_Draw_Popup then Target_Componnet_2 := Shape_Olgo_IF_1_Create;
  end; // with  .... do



   و در حالت بعدی می خوام از یه Frame که توش چندتا شی هست ، در زمان اجرا ازش بسازم

   ممنون
چون دلفی شیی گرا هست شما باید یک کامپوننت از TShape مشتق کنین و این قابلیتها رو بهش اضافه کنید بعد از نصب کامپوننت میتونین هر تعداد خواستین ازش مشتق کنین

راه راحتش اینه یه تابع بنویسین که خروجی اون از tshape باشه بعد بیاد این عملیاتها رو روی اون shape انجام بده و بده به خروجی

کد:
function create_shape(Bool_Draw_Popup then Target_Componnet_2:tshape):tshabe;
var
Shape_Olgo_IF_1_Create : tshape;
begin

 Shape_Olgo_IF_1_Create := TShape.Create(Form_Main);
         with Shape_Olgo_IF_1_Create do  begin
             Name := str_Name ;
             Name_Temp := str_Name ;
             Caption:= str_Caption;
             Parent := Form_Main.ScrollBox1;
             Left := Left_Click;
             Top := Top_Click;
             Width := Element_Width;
             ShowHint:= True;
             Hint:= 'Empty';
             Brush.Style := Style_Leave_Element ;
             //Pen.Color:= Brush.Color ;
             Bool_New_Old_Element:= True;

   OnMouseDown := Form_Main.Shape_Olgo.onMouseDown;
   OnMouseEnter:= Form_Main.Shape_Olgo.onMouseEnter;
   OnMouseLeave:= Form_Main.Shape_Olgo.onMouseLeave;
   OnPaint:= Form_Main.Shape_Olgo.OnPaint;
   Bool_Draw_Popup then Target_Componnet_2 := Shape_Olgo_IF_1_Create;
 end; // with  .... do
end;
ممنون
خیلی جالب بود
حتمن تست می کنم