Recourceneditor Reihenfolge ändern - Membervariable - Automatisierung



  • Hallo,

    ich habe vor langer Zeit schon was zu dem Problem gelesen, aber nix mehr wiedergefunden.
    Vielleicht kann mir da einer helfen, es geht um folgendes, ich bearbeite ein
    ocx Element:

    VC++ 6 Compiler im Recourceneditor -> Klassenassistent -> Automatisierung

    da hab ich mehrere Variablen in der Liste Externe Namen
    jetzt brauch ich da eine andere Reihenfolge, ohne das ich die rauslösche und
    neu reintue, weil das ändert sich ja während der Entwicklung ständig, weiß da jemand eine elegante Lösung ?

    thx

    Micha


  • Mod

    Und was hindert es Dich, dass ganze einfach im Code zu ändern, so ganz per Hand ohne einen Wizard?

    Wenn Du die MFC allerdings verwendest, dann kan das problematisch werden, denn die IDispatch Ids ändern sich. Solltest Du also Wrapper haben, die die Id für den Invoke direkt verwenden, dann würden diese nicht mehr funktionieren. Sofern Du Late-Binding verwendest ist das natürlich kein Problem.



  • das dachte ich auch erst wäre doch einfach...

    hier z.B. wollte ich dran:

    // Dispatch-Tabellen
    	//{{AFX_DISPATCH(CCaptureZ_ButtonCtrl)
    	CString m_ButtonText;
    	afx_msg void OnButtonTextChanged();
    	OLE_COLOR m_TextColor;
    	afx_msg void OnTextColorChanged();
    	OLE_COLOR m_shadowColor;
    	afx_msg void OnShadowColorChanged();
    	OLE_COLOR m_bigShadowColor;
    	afx_msg void OnBigShadowColorChanged();
    	BOOL m_textShadow;
    	afx_msg void OnTextShadowChanged();
    	long m_ControlID;
    	afx_msg void OnControlIDChanged();
    	OLE_COLOR m_ButtonColor;
    	afx_msg void OnButtonColorChanged();
    	//}}AFX_DISPATCH
    	DECLARE_DISPATCH_MAP()
    
    ...
    
    // Dispatch- und Ereignis-IDs
    public:
    	enum {
    	//{{AFX_DISP_ID(CCaptureZ_ButtonCtrl)
    	dispidButtonText = 1L,
    	dispidTextColor = 2L,
    	dispidShadowColor = 3L,
    	dispidBigShadowColor = 4L,
    	dispidTextShadow = 5L,
    	dispidControlID = 6L,
    	dispidButtonColor = 7L,
    	//}}AFX_DISP_ID
    	};
    

    aber da kann ich umstellen wie ich will, das ändert nix

    in der .odl Datei da steht nochmal was:

    properties:
    			// HINWEIS - Der Klassen-Assistent verwaltet hier Informationen über die Eigenschaften.
    			//    Lassen Sie äußerste Vorsicht walten, falls Sie diesen Abschnitt bearbeiten.
    			//{{AFX_ODL_PROP(CCaptureZ_ButtonCtrl)
    			[id(DISPID_FONT), bindable] IFontDisp* Font;
    			[id(1)] BSTR ButtonText;
    			[id(2)] OLE_COLOR TextColor;
    			[id(3)] OLE_COLOR ShadowColor;
    			[id(4)] OLE_COLOR BigShadowColor;
    			[id(5)] boolean TextShadow;
    			[id(6)] long ControlID;
    			[id(7)] OLE_COLOR ButtonColor;
    			//}}AFX_ODL_PROP
    

    wenn ich da was ändere dann geht es Begrenzt, danach weiß die Automatisierung nämlich von nix mehr und ab dann müßte ich alles von Hand übernehmen, das muß doch eleganter gehen ?

    schon jetzt ist die Reihenfloge anders als im Automatisierungsdialog:

    da ist ShadowColor, TextColor, ButtonText...


  • Mod

    Du kannst mit Sicherheit die Einträge ändern, nur müssen die Ids und die entsprechenden Variablen eben übereinstimmen. Ich habe das schon mehrfach und mit erfolg gemacht.
    Allerdings muss ich gestehen, dass ich in 90% aller Fälle auf die Wizzards komplett verzichte.



  • Danke erstmal,
    ich versuchs nochmal per Hand,ich würde auch liebend gerne auf
    die Wizzards verzichten nur ist das als,ich sag mal noch Anfänger, recht schwierig da an den richtigen Stellen zu editieren.

    Diese Einträge tauchen im fertigen ocx Button ja in den Eigenschaften auf, unter "Alle" ich hätte die gern in einem eigenen Eigenschaften Dialog aber da fehlt mir ne Menge Erfahrung.

    Na ich versuchs nochmal so per Hand, mal sehen wie es wird 🙂

    Micha



  • das ist ja ein Mist,

    die Reihenfolge der Einträge in der odl Datei:

    [id(DISPID_FONT), bindable] IFontDisp* Font;
    			[id(1)] BSTR ButtonText;
    			[id(2)] long ControlID;
    			[id(3)] OLE_COLOR ButtonColor;
    			[id(4)] OLE_COLOR TextColor;
    

    im Klassen Assistent / Automatisierung ganz anders:

    ButtonColor
    ButtonText
    ControlID
    Font
    TextColor

    aber stimmt mit der Eigenschaftskarte im Editor überein, da ist die Reihenfolge wie im Klassenassistenten.

    im odl file ändern bringt garnichts und im Klassenassistenten eine Eigenschaft löschen und die gleiche wieder hinzu setzt die nicht etwa ans ende oder den anfang, nein genau da wieder hin????

    da muß es doch was geben diese blöde Reihenfolge zu ändern....

    erst dachte ich, ich mach mir das leben einfacher und mache einen eigenen dialog aber das ist ja noch schwieriger !!!


Anmelden zum Antworten