Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Ntui : Customview Rev 429
#11
das ist ja priiiiimaaaa Big Grin

Ich dachte nur, weil du vor geraumer Zeit schonmal meine Mail nicht hattest...
Dann ist ja soweit alles in Butter...
bis auf den Source zum vergleichen des Highlighten...
Ich denke, da mach ich jede Menge falsch Wink
Hab doch nochmal Kommentare geschaut, die gehen tatsächlich auch nicht, das "Prinzip" habe ich noch nicht so verinnerlicht..... :oops:
Zitieren
#12
Noch eine kurze Frage wegen dem Customview.
Da du in einem anderen Faden erwähnt hast das das View evtl. das bind noch nicht mitbekommt...
Kann ich das daran sehen das die "gebundenen" Scroller nicht mitziehen wenn ich zoome ?
Zitieren
#13
Da du die ganzen Attribute wie OnMove usw entfernt hast, wie bekomme ich den nun die Mauscoords wieder ans funktionieren ?
Zitieren
#14
Da der CustomView wirklich "custom" sein soll, unterstützt er per Default erstmal gar nichts.

Das musst du selbst implementieren, indem du deinen eigenen Event Dispatcher schreibst. Dann hast du vollen Zugriff auf alles, was im CustomView passiert.

Das ist einfacher als es sich anhört:

[ab3]myDispatchEvent:
Function.l myDispatchEvent{*customView.tuiCustomView,*ev.tuiEvent}

done.l = False

Select *ev\id
Case #TUIEV_MOUSEDOWN : ...
Case #TUIEV_MOUSEUP : ...
Case #TUIEV_MOUSEMOVE : ...
Case #TUIEV_KEYDOWN : ...
Case #TUIEV_KEYUP : ...
Case #TUIEV_TICK : done=True ; this event is done!

End Select

; call the super-class function if not done
If done=False Then done = _ntui_DispatchCustomViewEvent{*customView,*ev}

Function Return done

End Function
!_MakeGlobalFuncPointer{myDispatchEvent,{Null,Null}}
...

ntui_SetAttr{*myCustomView,#TUIA_MD_DISPATCHEVENT,*myDispatchEvent}[/ab3]
Zitieren
#15
Ahh ja, das funktioniert also genau wie bei der Textbox... ok danke
Zitieren
#16
Das funktioniert bei jedem NTUI Object so.
Der CustomView bringt von selbst kaum Funktionalität mit sich. Ich hatte das zwar versucht, aber das würde bereits zu viel vom der späteren Benutzung vorschreiben un das ist ja nicht der Sinn eines "Custom" Views. Wenn man bereits funktionalität haben will, kann man ja ein existierendes Widgetr benutzen, z.B. ImageView etc. und das customizen. Custom View ist quasi ein Rohling, der nix tut auser auf dem Fenster rumhocken...

ACHTUNG: Das will ich aber auch nochmal etwas verändern. Wie du siehst ist hier eine private Funktion notwendig, was nicht sein soll. D.h. es wird noch ein paar kleinere Anpassungen geben, wenn du das jetzt schon benutzt. Es wäre ideal für mich, wenn ich das am Lebenden Objekt gleich ausprobieren könnte. Ich will jetzt aber nicht mein eigenes Grafikprogram schreiben, nur um den CustomView zu testen ;-)
Zitieren
#17
Ja das mit dem Customview habe ich gestern erst nochmal im alten Amiforceforum nachgelesen, da hattest du das schonmal erwähnt das es eben "custom" bleiben soll.
Außer den Scrollern wolltest du nix weiteres drin haben....verständlich....

Ich bau nun noch die Mauskoordinaten ein und dann schick ich dir Tincture mal komplett zu...
Zitieren
#18
uff, es reapert...

Den Dispatcher einhängen klappt schonmal Big Grin

Ich bräuchte doch eigentlich nur die Mauspositionen so im Dispatcher abrufen:
[ab3]ntui_GetNotifyAttr{*notify,#TUINA_CXPOS ,mx.l} ; x Mausposition im View
ntui_GetNotifyAttr{*notify,#TUINA_CYPOS ,my.l} ; y[/ab3]

deswegen habe ich den Notify auch im Funktionsaufruf eingefügt aber das reapert...

Auch das:
[ab3]ntui_GetEventAttr{*ev,#TUIEVA_XPOS ,mx.l} ; x Mausposition im View
ntui_GetEventAttr{*ev,#TUIEVA_YPOS ,my.l} ; y[/ab3]

reapert, klar ist ja eigentlich nur die Position ohne berücksichtigung des views
was mach ich den nun schon wieder falsch ?
Zitieren
#19
Also erstmal hast du ein Event, kein Notify. Deshalb ntui_GetEventAttr{}. Der Compiler sollte dir eigentlich ntui_GetNotifyAttr schon verbieten, da *ev vom Typ .tuiEvent ist und nicht .tuiNotify.

Der Grund warum es bei dir Reapert ist, dass Amiblitz3 keine "implizite Referenzübergabe" unterstützt, oder besser gesagt, du hast vergessen "&" vor mx und my zu schreiben.
Hätte Amiblitz richtiges Type Checking, dann hätte auch das der Compiler dir gesagt und der Post hier wäre überflüssig. ;-)
Zitieren
#20
Ich hatte aber extra geschrieben das ich den Notify in den Functionsaufruf eingefügt hatte...

Na ja ok, es lag am fehlenden &...
Schade das ich nicht gleich an die Cboxwerte des Customviews rankomme wie beim Notify, jetzt geht die rumrechnerei los
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 3 Gast/Gäste