eigener CallBack Slot ?

Klassen, Objekte, Methoden, Instanzen

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

eigener CallBack Slot ?

Beitrag von AUGE_OHR »

moin,

ich bin am testen wie ich auf eine Class "von aussen" Einfluss nehmen kann.

Nun kann ich meine eigenen Methoden schreiben und die Property von iVARs ändern,
aber wie ist das mit Events ? Dafür bräuchte ich doch wohl einen CallBack Slot ?

Ich habe hier ein Beispiel aus der Splitbar Class :

Code: Alles auswählen

PROCEDURE MAIN()
...
   ::XbpDialog:init( oParent, oOwner, aPos, aSize, aPP, lVisible )
   ::XbpDialog:drawingArea:resize := { |aOldSize,aNewSize,oSelf| ::MainReSize(
...
   ::oSplit := XbpSplitbar():new( ::drawingArea, , {204,0}, {8,372} )
   ::oSplit:SplitterMoved := { || _Resize( ::oDlg , ::oSplit, ::oStatLWl , ::oStatLWr ...}
...
Static Function  _Resize( poDlg , poSplitBar , poBox1 , poBox2 , poMLE1 , poMLE2...)
...
CLASS XbpSplitbar FROM XbpStatic
   INLINE METHOD SplitterMoved()
   VAR    SplitterMoved
soweit sogut, aber wenn ich nun den Main Dialog :resize

Code: Alles auswählen

METHOD XCMForm:MainReSize(aOldSize, aNewSize, oSelf)
   ...
   ::oSplit:setPosAndSize(...)
   ::oStatLWl:setPosAndSize(...)
   ::oStatLWr:setPosAndSize(...)
   ...
   PostAppEvent(xbeP_Resize,,,::oSplit)
dann wird die _Resize() Function nicht ausgeführt ... :-k

... wenn ich "manuell" mit der Maus das mache wird ja die Position wo ich LbDown/LbUp mache
ermittelt ... aber die habe ich beim :Resize nicht ...

was fehlt mir da ?
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: eigener CallBack Slot ?

Beitrag von AUGE_OHR »

hi,
AUGE_OHR hat geschrieben:

Code: Alles auswählen

   PostAppEvent(xbeP_Resize,,,::oSplit)
dann wird die _Resize() Function nicht ausgeführt ... :-k
was fehlt mir da ?
naja der Splitbar Dialog hat keinen :resize Slot, aber einen :SplitterMoved Slot

Code: Alles auswählen

::oSplit:SplitterMoved := { || _Resize( ::XbpDialog , ::oSplit, ::oStatLW ...}
also braucht man nur ein

Code: Alles auswählen

EVAL(::oSplit:SplitterMoved)
gruss by OHR
Jimmy
Antworten