![]() |
Sourcecode für zur Designtime erzeugten Methode per designer.createmethod
Hallo
Ich möchte für mich das Handling von actions etwas vereinfachen und mir eine kleine Designtime-Hilfskomponente schreiben, mit der ich actions zusätzlich zum actionmanager besser verwalten und vorallem schneller anlegen kann. Speziell nervt mich das ständige hin und hergeklicke und das Erzeugen des onexecutes-Ereignisses. Erste vorsichtige Versuchsschritte sind:
Delphi-Quellcode:
Macht das, was ich will: legt eine neue action+dazugehöriges Ereignis an.
Procedure Proc_NeueAktionErstellen(AMH:TActionManagerHelper);
Var Action:TAction; //quelle: http://www.gexperts.org/open-tools-api-faq/ procedure DoCreateMethod(Persistent: TPersistent; MethodShortName, MethodSourceName: string); var Method: TMethod; PropInfo: PPropInfo; TypeInfo: PTypeInfo; begin TypeInfo := PTypeInfo(Persistent.ClassInfo); PropInfo := GetPropInfo(TypeInfo, 'On' + MethodShortName); Method := Designer.CreateMethod(MethodSourceName, GetTypeData(PropInfo^.PropType^)); SetMethodProp(Persistent, PropInfo, Method); end; begin Action := TAction(Designer.CreateComponent(TAction, AMH.ActionManager.Owner, 0,0,0,0)); Action.Name := Designer.UniqueName('Action_test'); Action.caption := 'test'; Action.Category := 'TestCategory'; Action.ActionList:= AMH.ActionManager; DoCreateMethod(Action, 'Execute', Action.Name+'Execute'); Designer.ShowMethod(Action.Name+'Execute'); Designer.Modified; end; Frage: Wie bekomme ich aber sourcecode in die erzeugte EreignisMethode reingeschrieben? Hat da einer eine Idee :)? Danke & Gruß Frank |
AW: Sourcecode für zur Designtime erzeugten Methode per designer.createmethod
Aus der
![]() Zitat:
|
AW: Sourcecode für zur Designtime erzeugten Methode per designer.createmethod
Danke, aber nicht so richtig :oops:. Zu createmethod hatte ich in der DP gar nix für mich gefunden
die dahingehend angeschauten Beispiele hatte ich immer so verstanden, dass damit zur Laufzeit was umgebogen werden kann. Das will ich ja nicht, ich möchte ja gerne, dass der Code zur Designtime erstellt wird und dann im quelltext des erzeugten events steht. bei PPropInfo hatte ich auch nix gefunden, was auf eine Übergabe von Text schliessen lässt. |
AW: Sourcecode für zur Designtime erzeugten Methode per designer.createmethod
Oh, da habe ich Dich komplett missverstanden, sorry.
|
AW: Sourcecode für zur Designtime erzeugten Methode per designer.createmethod
kein Problem.
habe nun eine andere Alternative gesucht und schreibe nun den gewünschten Code ganz normal nach showmethod in den Editor per
Delphi-Quellcode:
macht erstmal das, was ich erreichen wollte.
procedure Proc_SetEditblock(const AText: string);
var EditorServices: IOTAEditorServices; EditView: IOTAEditView; begin EditorServices := BorlandIDEServices as IOTAEditorServices; EditView := EditorServices.TopView; if Assigned(EditView) then begin EditView.Buffer.EditPosition.InsertText(aText); EditView.Paint; end; end; Falls noch jemand eine andere Idee hat, gerne. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz