Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
NTUI: Textbox
#1
Wieder ein kleines Example für die Textbox...

Auch hier verblüfft mich die Tatsache das die Fehler die ich dir berichtet habe nicht vorhanden sind.

Der Cursor passt, das löschen passt rückwärts wie vorwärts, das positionieren des Cursors ebenso...

Es ist alles wie es sein soll.

Auch hier wieder die frage was dann schief laufen kann bei meinen eigenen und bei deinem Programm.

so langsam habe ich den Verdacht das es an den Callbackhooks liegen kann, oder am Highlighten.
Zitieren
#2
Ich habe nun im NtuiCreator das Highlighten mal ausgeschaltet, und siehe da wie vermutet passen dann nun die Cursorpositionen beim löschen usw...

Da scheint dann was bei der Berechnung der Breite des Fonts nicht zu passen. Da beim Highlighten die Schrift "dicker" wird aber das nicht berücksichtigt wird, stimmen dann auch die positionen nicht mehr.
Das erkennt man ganz deutlich wenn man den Cursor auf Block umstellt.

Korrigier mich wenn ich falsch liege........
Zitieren
#3
Eigentlich habe ich drauf geachtet, aber da OS3.x identische breite hat, egal, ob bold oder nicht bold, fällt das nicht auf. Muss ich simulieren und dann testen.
Guter Fang!
Zitieren
#4
Der Wanderer schrieb:Eigentlich habe ich drauf geachtet, aber da OS3.x identische breite hat, egal, ob bold oder nicht bold, fällt das nicht auf. Muss ich simulieren und dann testen.

Kann sein das MorphOs und OS4 das nicht hinbekommen, evtl. liegts am verwendeten Befehl

Zitat:Guter Fang!

Jo, was ein guter Sportfischer ist Big Grin
Zitieren
#5
Nächste Frage Wink

Ich habe keinen Befehl gefunden um in bestehen Text neuen einzufügen ohne ihn eintippen zu müßen...
Befehle mit Underscore darf man ja nicht nehmen... Cry

Wie ist das dann gedacht. LoadTextBox läd ja einen kompletten Text
Zitieren
#6
Also alle wegschauen bevor mir der Wanderer nun wieder den Kopf abreisst und damit Fussball spielt :o

das hier ist pöse pöse und zur Nachahmung wird nicht geraten, Eltern verhaften ihre Kinder...!

Code:
*TextBox.tuiTextBox = (.tuiTextBox)ntui_GetObjectByID{*engine,"SourceBox"} ; Textboxadresse holen
  If *TextBox
    Textlaenge.l = Len (Objekt) ; Laenge des Strings ermitteln
    ntui_GetAttrByID{*engine,"SourceBox",#TUITBA_CURSORLINE,&CursorLine.l} ; Cursorline finden
    ntui_GetAttrByID{*engine,"SourceBox",#TUITBA_CURSORCHAR,&CursorChar.l} ; Cursorchar finden
    _tb_InsertInLine{*TextBox,CursorLine,CursorChar,&Objekt,Textlaenge} ; text an Cursorposition einfuegen
    ntui_SetFocus{*TextBox} ; Fokus auf textbox setzen
  Else
    message{"Konnte TextBoxadresse nicht ermitteln"}
  EndIf

funktioniert soweit

Ps:Objekt kommt mit dem Statement
Zitieren
#7
[ab3]*TextBox.tuiTextBox = (.tuiTextBox)ntui_GetObjectByID{*engine,"SourceBox"} ; Textboxadresse holen
If *TextBox
ntui_GetAttrByID{*engine,"SourceBox",#TUITBA_CURSORLINE,&CursorLine.l} ; Cursorline finden
ntui_GetAttrByID{*engine,"SourceBox",#TUITBA_CURSORCHAR,&CursorChar.l} ; Cursorchar finden
ntui_SetTextBoxSelection{*TextBox, Null, CursorLine, CursorChar, CursorLine, CursorChar}
ntui_ReplaceTextBoxSelection{*TextBox, Objekt, Flen(Object)}
ntui_SetFocus{*TextBox} ; Fokus auf textbox setzen
Else
message{"Konnte TextBoxadresse nicht ermitteln"}
EndIf[/ab3]

Die API ist aber nicht nicht ganz ausgereift.
Zitieren
#8
Auf die beiden Befehle wäre ich nun nicht gekommen, sie sugerieren mir etwas völlig anderes per Namensgebung...
Ich hätte darauf getippt das etwas Slektiert ist und das dann gesetzt bzw geändert wird...
Zitieren
#9
hm, du hast doch genau geschrieben was es macht. Etwas selectieren und dann ersetzen. "Insert" ist lediglich ein Spezialfall davon.
Ich kann aber auch ein Insert als Shortcut als API zur Verfügung stellen.
Zitieren
#10
Ja mach mal ein Insert, sicher ist sicher...

Wie ist das bei dazugeladenen Fragmenten, funktioniert das dann genauso ?
Zitieren


Gehe zu:


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