Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Visual Basic 6.0 / VBA » Maximale Projektgröße für VB6.0?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
28.10.2005, 23:13 Uhr
Cassandra_Komplex



Hallo!

Das VB-Projekt an dem ich gerade arbeite ist inzwischen ziemlich gewachsen.
Es enthält unter anderem viele Ole-Objekte die mit Word Dokumenten verknüpft sind.
Leider kann ich jetzt keine solche Ole-Verknüpfungen mehr hinzufügen, denn wenn ich das Projekt dann speichern will, erhalte ich die Fehlermeldung:

"Nicht genügend Speicher"

Die Festplatte ist nicht voll, das habe ich als erstes geprüft.
Am Arbeitsspeicher kann es auch nicht liegen, als ich die Meldung zum ersten Mal bekam, habe ich den Rechner neu gebootet.
Wenn ich die letzte Ole-Verknüpfung rausnehme kann ich das Projekt wieder speichern, nehm ich sie wieder rein, kommt wieder besagte Fehlermeldung.

Meine Frage ist jetzt, gibt es eine maximale Projektgröße unter VB6.0?
Wie kann ich das Problem umgehen?
Leider benötige ich für mein Projekt noch einige solcher Verknüpfungen.
Gibt es vielleicht eine andere Möglichkeit, den Inhalt eines Word-Dokuments darzustellen, die nicht so speicherintensiv ist?

Ich hoffe Ihr könnt mir helfen, dieses Projekt ist mir wirklich sehr wichtig!

LG
Cassandra

PS: Sorry, irgendwie hab ich wohl aus Versehen den Thread gleich zweimal reingesetzt.
War keine Absicht.

Dieser Post wurde am 28.10.2005 um 23:22 Uhr von Cassandra_Komplex editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
29.10.2005, 12:50 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
dann peil doch mal welche Objekte Du wann brauchst und wann nicht. Wenn Du sie nicht mehr benötigst setzt Du sie NULL (nothing). Bei Bedarf initialisierst Du sie eben wieder.

Bearbeitung von Uwe:

Eine genaue Bestimmung des Resourcenverbrauchs ist bei VB 6 nicht ganz einfach. Kommt auch darauf an wie Du z.B. mit den Variablen umgehst. Wenn z.B die Variablen ohne Datentyp angegeben werden, castet VB alles auf den Typ Variant oder Object und das verballert Resourcen.



P.S Hab den zweiten Thread geschlöscht...
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 29.10.2005 um 12:56 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
29.10.2005, 17:05 Uhr
Cassandra_Komplex



Hallo Uwe und danke für Deine Antwort.
Ich glaube aber, dass Du mich ein bisschen falsch verstanden hast. Mit Deinem Tip kann ich ja höchstens den Speicherbedarf zur Laufzeit beeinflussen.
Mein Problem ist, dass ich das Projekt (während der Entwicklung) nicht mehr speichern kann, wenn eine bestimmte Größe überschritten ist.
Auch wüßte ich gar nicht, wie man in VB irgendwelche Objekte auf Null setzen kann, in C vielleicht, aber in VB kenn ich mich nicht so aus.
Ich hab sowieso kaum Quellcode, das Programm besteht hauptsächlich aus verschiedenen Formularen, in denen die Ole-Verknüpfungen eingebettet sind.
Per Knopfdruck kann man die verschiedenen Formulare aufrufen.
Es geht nur darum, verschiedene Dinge anzuzeigen, deshalb bin ich bisher komplett ohne Variablen ausgekommen. Ich brauche bisher nur Code in der Form "form.show" oder "form.hide".
Ich hoffe, Dir oder jemand anders fällt trotzdem noch was hilfreiches ein, danke jedenfalls für die Antwort.

LG
Cassandra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
29.10.2005, 17:14 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo Cassandra,

Zitat von Cassandra_Komplex:
Hallo Uwe und danke für Deine Antwort.
Ich glaube aber, dass Du mich ein bisschen falsch verstanden hast.

Ja das hab ich dann wirklich. Hmm... speichern sollte sich's schon lassen, egal was da auf den einzelnen Formen liegt. Sorry, im Moment muss ich da passen... Aber ich denk nochmal darüber nach.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
29.10.2005, 22:51 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
das hab ich noch zu diesem Thema in meiner Sammlung gefunden (denke das stammt aus einem KB Artikel)

Zitat:

Each nongraphical control (all the controls except shape, line, image, and label) uses a window. Each window uses system resources, limiting the total number of windows that can exist at one time. The exact limit depends on the available system resources and the type of controls used. To reduce consumption of system resources, use the shape, line, label, and image controls instead of picture box controls to create or display graphics.
Total Number of Controls.
The maximum number of controls allowed on a single form depends on the type of controls used and available system resources. However, there is a fixed limit of 254 control names per form. A control array counts only once toward this limit because all the controls in the array share a single control name. The limit on control array indexes is 0 to 32,767 on all versions. If you layer controls on top of each other, such as using several frame controls within other frames, Visual Basic will generally accept no more than 25 levels of nested controls.
Limitations for Particular Controls
The following table lists property limitations that apply to particular controls in Visual Basic.
Property Applies to Limitation
List and ListCount List box and combo box controls Maximum number of items is 32K; the limit on the size of each item is 1K (1024 bytes).

Text Text box control Limited to 64K.

Caption Label control Limited to 1024 bytes.

Command button, check box, frame, and option button controls Limited to 255 characters. Any caption over these limits is truncated. Captions on custom control properties are limited to 32K.
Menu control Limited to 235 characters.
Tag All controls Limited only by available memory.
Name All controls Limited to 40 characters.


--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
30.10.2005, 10:23 Uhr
Cassandra_Komplex



Hallo Uwe und danke fürs Suchen!
Das ist wirklich interessant und démnach könnte es vielleicht wirklich an so einer Beschränkung liegen.
Der Text trifft zwar nicht wirklich auf mein Problem zu, ich habe nämlich nie mehr als drei- vier OLE-Verknüpfungen pro Form und über OLE-Verknüpfungen steht da gar nichts drin, aber wahrscheinlich hat mein Problem trotzdem was damit zu tun.



Zitat von Verfasser:


The maximum number of controls allowed on a single form depends on the type of controls used and available system resources.





Vielleicht bezieht sich nur das nicht nur auf die Anzahl der Objekte auf einer Form, sondern auch auf die Anzahl der Formen und Objekte gesamt.
Ich habe 20 Formen, auf jeder Form 1 - vier OLE-Verknüpfungen, Bilder und Schaltflächen.
Das Projekt hat eine Gesamtgröße von 256 MB erreicht, anscheinend gibt es da doch eine Beschränkung.
Das sagt Dein Text zwar nicht ausdrücklich, aber sonst kann ich mir das auch nicht erklären.

Jetzt bin ich allerings ratlos, wie ich mein Projekt weiter umsetzen soll.
Wenn ich eine Möglichkeit hätte, den Inhalt einer OLE-Verknüpfung zur Laufzeit zu ändern könnte mir das weiterhelfen.
Ich hab das versucht über die Eigenschaft "SourceDoc", über die man auch zur Entwurfszeit den Inhalt angeben kann.
Leider kann man zur Entwrufszeit auch noch angeben, das der Inhalt des Dokuments, mit dem das OLE-Objekt verknüpft werden soll, in dieses Objekt gelinkt werden soll.
Das führt dazu, das der Dokumnetinhalt im OLE-Objekt angezeigt wird.
Ohne diese Link-Option funktioniert das nicht und ich weiss nicht, wie man die zur Laufzeit angeben kann.

Hat damit vielleicht schonmal jemand Erfahrungen gemacht, oder kennt jemand noch einen anderen Weg, den Inhalt eines Word-Dokuments auf einem Formular anzuzeigen?

LG
Cassandra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
30.10.2005, 22:30 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,

Zitat von Cassandra_Komplex:
Das Projekt hat eine Gesamtgröße von 256 MB erreicht

uff... wie gross ist denn da die Exe? Schon einmal darüber nachgedacht das teil in dll's zu zerlegen?

Kann mir auch nicht vorstellen, dass eine Laufzeitzuweisung nicht funzen soll.
Hab bei mir zwar kein 6.0 installiert, aber wenn ich mich recht entsinne, sollte das etwa so funzen:

Visual Basic:
OLE1.OLETypeAllowed = acOLEEmbedded
OLE1 .SourceDoc = "C:\DeineDatei.doc" // oder war es OLE1.CreateLink ... ??
OLE1 .Action = acOLECreateEmbed


--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 30.10.2005 um 22:31 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Visual Basic 6.0 / VBA ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: