PDA

View Full Version : چگونگي افزودن كد داخل متد در زمان طراحي



مصطفی ساتکی
پنج شنبه 30 مهر 1388, 17:52 عصر
با سلام خدمت دوستان
من در Designtime يه متد به كلاس فرم اضافه كردم و لي نتونستم داخل متد اضافه شده كدي قرار بدم. كسي راه حلو مي دونه؟

hadisalahi2
جمعه 01 آبان 1388, 11:34 صبح
خوب توضیحاتتون فکر کنم خیلی کامله!!!!!!!!!!!!!!!!!
کاملا همه منظورتون رو متوجه شدند.
کدی ، نحوه تعریف متدی ، لااقل یه چیزی اینجا بگذارید تا بقیه بفهمند اصلا شما چی کار کردید!!!!!!

مصطفی ساتکی
جمعه 01 آبان 1388, 19:24 عصر
من كامپوننتي طراحي كردم كه تو DesignTime به اديتور دلفي كد اضافه مي كنه مشكل اينجاست
كه كل قالب متد به همراه begin و End اضافه مي شه ولي نمي تونم مابين begin و end كدي بنويسم


const
cSender: String[6] = 'Sender';
cObject: String[7] = 'TObject';

ParamCount=1;
type
PParamData = ^TParamData;

TParamData = record
Flags: TParamFlags;
ParamName: String[6];
TypeName: String[7];
end;


IFormDesigner = DesignIntf.IDesigner;

var Act:TAction;
Method: TMethod;
TypeData: PTypeData;
ParamData: PParamData;
MethodName :String;
begin
Act:=TAction.Create(TCustomForm(Designer.Root));
Act.Name:=Designer.UniqueName(Act.ClassName);
Act.Caption:='_'+Act.Name;
Act.Category:=FTest.Name+'.SQLDBActions';
FTest.AddActioninColletion(Act);

MethodName:=act.Name+'Execute';
TypeData := AllocMem(SizeOf(TTypeData));
try
TypeData^.MethodKind := mkProcedure;
TypeData^.ParamCount := 1;

ParamData := PParamData(@TypeData^.ParamList);

with ParamData^ do
begin
Flags := [];//[pfConst];
ParamName:=cSender;
TypeName:=cObject;

end;

Method := IFormDesigner(Designer).CreateMethod(MethodName, TypeData);
Method.Data :=Pointer(TCustomForm(Designer.Root));
finally
FreeMem(TypeData, SizeOf(TTypeData));
end;
Act.OnExecute:=TNotifyEvent(Method);
FTest.AddDesignerAction(Act);
Designer.Modified;
Designer.ShowMethod(MethodName);

مصطفی ساتکی
سه شنبه 05 آبان 1388, 14:37 عصر
آقاي hadisalahi2 (http://barnamenevis.org/forum/member.php?u=54383) توضيحات بيشتري گذاشتم.شما بايستي ياد بگيري به مقوله هايي كه اطلاعاتي در موردشون نداري وارد نشي و بي خودي تاپيك نزني.