Author | Topic: XbpApplication() ... und wie erweitern ? | |
---|---|---|
![]() | Hubert Brandel | XbpApplication() ... und wie erweitern ? on Tue, 09 Dec 2014 09:39:37 +0100 Mit dem Applikationsobjekt soll man ja das ganze Programm verwalten ... und ich habe Infos die ich bisher an das Main-Window gehängt habe: (iVars cUserID, cDrucker etc.) -------------------------------------------------------------------- XbpApplication() - Klassenfunktion der XbpApplication-Klasse: XbpApplikation ist eine spezielle Klasse für GUI- und Hybrid Modus-Anwendungen. Pro Anwendung existiert jeweils ein solches Anwendungsobjekt. Von der Klasse XbpApplication werden normalerweise keine Instanzen erzeugt. ------------------------------------------------------------------- Wenn ich aber davon keine Klasse ableiten kann, aus der ich dann mein eigenes Objekt erzeuge, wie kann ich dann das Anwendungsobjekt um Methoden und iVars erweitern ? Ich meine schon mal so einen Funktion gesehen zu haben, kann aber nichts finden ... Selbst wenn ich eine Ableitung davon mache, wird mir GetApplication() --> oApp aber immer das Original liefern oder ? Hat jemand damit schon Erfahrungen gemacht ? Gruß Hubert |
![]() | Thomas Braun | Re: XbpApplication() ... und wie erweitern ? on Wed, 10 Dec 2014 10:04:11 +0100 Hubert Brandel wrote: > Von der Klasse XbpApplication werden normalerweise keine Instanzen erzeugt. > ------------------------------------------------------------------- > Wenn ich aber davon keine Klasse ableiten kann Falsch - du kannst eine eigene Klasse erzeugen, das nützt dir aber nichts... > aus der ich dann mein > eigenes Objekt erzeuge, wie kann ich dann das Anwendungsobjekt um > Methoden und iVars erweitern ? ...denn es wird von der Runtime ohnehin keine Instanz dieser Klasse erzeugt. > Selbst wenn ich eine Ableitung davon mache, wird mir GetApplication() > --> oApp aber immer das Original liefern oder ? GetApplication gibt dir das Klassenobjekt zurück, keine Instanz der Klasse. Am besten erzeugst du eine eigene Klasse, die du in einer eigenen INIT prozedur entpsrechend initialisierst. grüße Thomas |
![]() | Hubert Brandel | Re: XbpApplication() ... und wie erweitern ? on Wed, 10 Dec 2014 13:53:07 +0100 Die Möglichkeit eine bestehende Klasse abzuleiten und zu erweitern ist doch ein elementarer Bestandteil von Xbase++, das habe ich probiert: ----------------------------- CLASS MyApp FROM XppApplication EXPORTED CLASS VAR Info ENDCLASS ... PROCEDURE Main ... GetApplication( MyApp() ) ist laut Doku nicht vorgesehen bis jetzt wurde noch kein Fehler erzeugt MyApp():info := "Test" auch das geht. msgbox(MyApp():info,"1") OK msgbox(GetApplication():info,"2") OK, :info ist bekannt. soweit so gut ... aber oDlg := XbpDialog():new( AppDesktop(), , {636,703} , aSize, , .F.) => XppError-Meldung: VALTYPE: O CLASS: MyApp oError:description : Member-Variable ist fr dieses Objekt unbekannt oError:operation : MainForm Aufgerufen von XBPDIALOG:CREATE(508) Aufgerufen von MAIN(48) ---------------------------------------------------- Also werden wie bisher die iVars der Anwendung ins Hauptfenster gesteckt und das kann man über GetApplication():mainForm abfragen, statt wie bisher mit der eigenen Funktion RootWindow() ... Ich wollte nur sichergehen, dass ich nichts übersehen habe. |
![]() | Thomas Braun | Re: XbpApplication() ... und wie erweitern ? on Thu, 11 Dec 2014 08:52:42 +0100 Hubert Brandel wrote: > CLASS MyApp FROM XppApplication [...] > Ich wollte nur sichergehen, dass ich nichts übersehen habe. Du hast was übersehen... bitte lese nochmal GANZ GENAU was oben hinter FROM steht, es ist nur ein einziger Buchstabe falsch |
![]() | Hubert Brandel | Re: XbpApplication() ... und wie erweitern ? on Thu, 11 Dec 2014 10:43:26 +0100 Am 11.12.2014 08:52, schrieb Thomas Braun: > Hubert Brandel wrote: > >> CLASS MyApp FROM XppApplication > > [...] > >> Ich wollte nur sichergehen, dass ich nichts übersehen habe. > > Du hast was übersehen... bitte lese nochmal GANZ GENAU was oben hinter > FROM steht, es ist nur ein einziger Buchstabe falsch |
![]() | Thomas Braun | Re: XbpApplication() ... und wie erweitern ? on Thu, 11 Dec 2014 11:43:15 +0100 Hubert Brandel wrote: > und so funktioniert es wie gewünscht, auch wenn das so nicht in der Doku > steht. Danke für den Stupser ... Gern geschehen |