Anfängerproblem: Zeiger aufView
-
Das Problem ist doch das das RichEditCtrl bei Eingabe eines einzigen Zeichens
sein eigenes modified flag setzt. ich kann doch nicht jeden tastenschlag
mit einem setmodified im document bestätigen.
-
ich kann doch nicht jeden tastenschlag mit einem setmodified im document bestätigen
Wieso nicht?
-
1. wüsste ich nicht wie das geht
2. ist das nicht performance lastig?würde mich freuen über eine Antwort zu 1.
-
Also die Ursprüngliche Frage war ja hier, wie man aus dem Doc an einen View-Zeiger kommt, und das ist recht einfach:
POSITION pos = GetFirstViewPos(); CView* pView = GetNextView(pos);
So haste die erste View z.B. schon mal. Und übrigens gibt es durchaus Situationen, wo das nötig ist, obwohl das hier abgestritten wurde. Siehe z.B. "VC++ in 21 Tagen", Kap 12.
-
Und übrigens gibt es durchaus Situationen, wo das nötig ist, obwohl das hier abgestritten wurde
Für kleine Projekte, in denen es programmtechnisch einfacher ist, einfach einen View-Zeiger im Dokument anzusprechen, kann man es durchaus stehenlassen.
Aber:
Document/View heisst nicht umsonst Document->View-Architektur. D.h. Daten werden aus dem Doc geholt und im View dargestellt. Ja jedes View, welches zu einem Dokument gehört, verschiedene Funktionen/Members (ausser den virtuellen) haben kann, ist das ja auch verständlich!ist das nicht performance lastig?
Ein Funktionsaufruf, der einfach nur eine Variable auf TRUE setzt, ist alles andere als performancelastig.
-
int* memory = new int[1000000]; // Beispiel einer performancelastigen Schleife for( int i=0; i<100; i++) for( int j=i; j<1000000; j+=100) memory[j] = f( i, j); // Beispiel für eine bessere Schleife for( int i=0; i<1000000; i+=100) for( int j=i; j<i+100; j++) memory[j] = f( i, j);
Editiert nach Einwand ... hab ich in der Eile übersehen
[ Dieser Beitrag wurde am 18.12.2002 um 13:26 Uhr von RenéG editiert. ]
-
Was soll dieses Beispiel den Beweisen????
Es kommt doch in beiden Fällen ein anderes Ergebis raus.
-
Es ging doch gar nicht ums Ergebnis, hab ich da was davon geschrieben?
Es geht nur darum, dass die ausgeführte Funktion f( i, j) immer die gleiche Ausführungsgeschwindigkeit besitzt, egal, welche Werte in i oder j stehen!Teste doch einfach die Geschwindigkeit, du wirst den Unterschied schon feststellen!
Eigentlich ging es nur darum, zu zeigen, dass sich heutzutage kaum noch jemand für die Optimierung von Schleifen (Code) interessiert, da ich selbst die performance-lastige Schleife schon sehr häufig gesehen habe.
[ Dieser Beitrag wurde am 18.12.2002 um 09:50 Uhr von RenéG editiert. ]
-
Ich glaube dir das f() immer die Gleiche zeit braucht aber in deinen beispiel wird f() im 1. Beisiel ca. 1.000.000 mal aufgerufen wir und beim 2. mal nur ca. 100 mal.
Das meine ich mit:
Es kommt doch in beiden Fällen ein anderes Ergebis raus.Allerdings gebe ich dir recht:
Ein Funktionsaufruf, der einfach nur eine Variable auf TRUE setzt, ist alles andere als performancelastig
-
Obiger Beitrage editier