Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
NTUI : Listview
#11
hmm,

mal ganz davon ab warum ich einen gültigen String(label) mit einem genauso gültigen neu erzeugten String (templabel)ersetzen
und sich dann was ändern soll nicht verstehe, habe ich beide Varianten mal ausprobiert und muß erstaunt feststellen das sich
dadurch gar nix ändert............ :o :lol: 8-)
Zitieren
#12
Wenn ich !str_Free{} deaktiviere kommt zumindest schonmal kein Hit mehr.
Allerdings passiert dann auch in Copakabana nix mehr Cry :? Wink
Zitieren
#13
Nein bitte ändert da nichts dran, das ist nur stochern im Dunkeln und bringt gar nichts.
Wie ich schon gesagt habe, liegt das nicht an der strptr.inlcude, die wird überall benutzt und dort kracht es nicht.
Der Grund warum es kracht liegt ganz wonaders. Es sieht so aus als ob der Pointer getrashed wird, logischerweise kracht es dann beim free().
Der Memtrash passiert aber vermutlich ganz woanders.

Hast du Double Buffering deaktiviert, d.h. keine Refresh Probleme mit Icons?
Wenn es dann klappt, dann kommt der Memtrash wohl vom Double Buffering.
Wenn es immer noch crashed, dann ist das woanders. Ich vermute es liegt schon irgendwo im ListView, aber sicher nicht an der Strings selbst.
Zitieren
#14
Der Wanderer schrieb:Nein bitte ändert da nichts dran, das ist nur stochern im Dunkeln und bringt gar nichts.

Doch, bringt was, dich in Schwung Wink

Der Wanderer schrieb:Wie ich schon gesagt habe, liegt das nicht an der strptr.inlcude, die wird überall benutzt und dort kracht es nicht.
Der Grund warum es kracht liegt ganz wonaders. Es sieht so aus als ob der Pointer getrashed wird,


welcher Pointer ? ntptr ????

Der Wanderer schrieb:logischerweise kracht es dann beim free().
Der Memtrash passiert aber vermutlich ganz woanders.

Hast du Double Buffering deaktiviert, d.h. keine Refresh Probleme mit Icons?

das macht keinen Unterschied, habe beide Varianten ausprobiert...

Der Wandere schrieb:Wenn es dann klappt, dann kommt der Memtrash wohl vom Double Buffering.
Wenn es immer noch crashed, dann ist das woanders. Ich vermute es liegt schon irgendwo im ListView, aber sicher nicht an der Strings selbst.

Hmmm,
Listview wäre gut. hast du einen Ansatzpunkt was ich mal probiren könnte ?
Zitieren
#15
Hab jetzt ein wenig weiter geforscht.

Im Source hast du bei ntui_addListItem davor stehen

*listItem\rawLabel = Null

Wenn ich mir das im Debugger anschaue im Singelstep, dann ist rawLabel auch immer schön brav 0

nun habe ich mir das Label und eben auch rawLabel mal mit !cout ausgeben lassen und da steht dann immer ! :

ListItem\rawLabel = 269610212

Nun hatte ich gedacht es liegt an NULL und hatte es gegen 0 ersetzt, aber leider keine Änderung (???)

der Label passst allerdings
Zitieren
#16
Lustige Ausgaben oder ?

Aus ntui_addListitem{}
Originalsource:
Code:
*listItem\itemID   = itemID
    *listItem\addFlags = flags|#TUIF_DIRTY
    *listItem\cellA    = Null
    *listItem\cellSize = 0
    *listItem\colN     = 0
    *listItem\userData = userData
    *listItem\rawLabel = Null

Das gibt !cout{} unter MOS aus:

listItem\itemID = 269610196
listItem\addFlags = 269610204
listItem\cellA = 269610172
listItem\cellSize = 269610180
listItem\colN = 269610164
listItem\userData = 269610188
listItem\rawLabel = 269610212


und das mit laufenden Debugger:
listItem\rawLabel = 0
listItem\itemID = 0
listItem\addFlags = 234881024
listItem\cellA = 0
listItem\cellSize = 0
listItem\colN = 0
listItem\userData = 1234
listItem\rawLabel = 0

was da bei OS4 steht weis ich nicht kann da evtl. jemand anderes was sagen ?

wie siehts bei WinUAE aus ?
Zitieren
#17
Blackbird schrieb:Lustige Ausgaben oder ?

Das gibt !cout{} unter MOS aus:

listItem\itemID = 269610196
listItem\addFlags = 269610204
listItem\cellA = 269610172
listItem\cellSize = 269610180
listItem\colN = 269610164
listItem\userData = 269610188
listItem\rawLabel = 269610212

Das sieht für mich aus als würden bei !cout() nur die Speicheradressen ausgegeben an denen der Value liegt. Kann es sein das da noch ein Peek.() auf den Inhalt fehlt, den es handelt sich da ja teilweise auch um Pointer ?
Zitieren
#18
Glaube ich nicht, denn mit laufendem Debugger stimmen die Werte doch dann....
Oder macht das der Debugger automatisch ?
Zitieren
#19
Kläre mich bitte auf damit ich es jetzt richtig verstehe .Ist es so das wenn du das Programm mit Debugger laufen lässt das dann die !cout() werte stimmen oder meinst du das der Debugger den Inhalt der Variable wenn du sie anzeigen lässt richtig anzeigt?

Ich nehme jetzt mal letzteres an und ja der Debugger zeigt es dann richtig an da er mit dem Kompiler verbunden ist und daher der Aufbau des Newtype bekannt ist.

Schick mir mal bitte das exe und den Sourcecode wo du !cout() eingefügt hast damit ich das mal testen kann.
Zitieren
#20
tomsmart1 schrieb:Kläre mich bitte auf damit ich es jetzt richtig verstehe .Ist es so das wenn du das Programm mit Debugger laufen lässt das dann die !cout() werte stimmen.

genau so ist es !

und genau das was ich gepostet habe, habe ich in den code vom ntui_obj.Listview geschrieben.
Da brauchst du nix testen (ausser du hast nun OS4 oder Mos)
Zitieren


Gehe zu:


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