vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

In diesem Forum haben Sie die Möglichkeit Kommentare, Fragen und Verbesserungsvorschläge zu den im vb@rchiv gelisteten Tipps und Workshops zu posten.

Hinweis:
Ein neues Thema kann immer nur über die jeweilige Tipps & Tricks bzw. Workshop Seite eröffnet werden!

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fragen zu Tipps & Tricks und Workshops im vb@rchiv
Workshop 39: OOP - Objektorientierte Programmierung 
Autor: kora
 Workshop anzeigenDatum: 05.02.11 07:11

Guten Morgen
An einem Beispiel von Personaldaten wird der Einsatz von Klassen sehr anschaulich erklärt.

Als Public deklarierte Variablen belasten den Speicher. Der Versuch ein gößeres Programm in VB zu programmieren quittierte das System mit der Meldung es sei nicht genug Speicher vorhanden. Die Hilfe besagt, man solle Platz schaffen durch reduzieren der Anzahl der Public-Variablen. Um die Grenze von 64KB nicht zu überschreiten solle man viele kleine Subs / Functions schaffen.

Alle Public - Variablen waren in e i n e m Standardmodul "Basis" getrennt von den Formen deklariert.
Was bedeutet die 64KB Grenze?
Wie umgeht man mit dem beschriebenen Beispiel der Klassenbildung diese Limits?
Soll man eventuell mehrere Standardmodule schaffen, um die 64KB Grenze zu vermeiden?
Wozu benötigt man die Klassen , wenn sich z.B. im dargestellten Beispiel eine SQL-Datenbank einsetzen läßt, die gezielte Abfragen der Eigenschaften ermöglicht ? (Setzt man die Klasse vielleicht nur ein, wenn keine Datenbank vorhanden ist?

Für eine Klärung wäre ich dankbar.
Gruß
Kora
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: OOP - Objektorientierte Programmierung 
Autor: ModeratorRalfE (Moderator)
Datum: 05.02.11 20:38

Abend Kora,

steigst du neu in der Programmierung ein? Wenn ja, würde ich nicht mehr VB6 lernen (außer es gibt trifftige Gründe) und direkt VB.NET (aktuelle Version VB 2010 - seit 2005 haben die Versionen das Kürzel .NET nicht mehr im Namen) verwenden. Dort gibt es soweit keine Speicherlimits (abgesehen von den Grenzen von Windows).
Im Ein-/Umsteiger-Forum von VB.NET sind einige kostenlose Bücher verlinkt, die auch auf OOP-Grundlagen eingehen.

Ralf

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: OOP - Objektorientierte Programmierung 
Autor: Dirk
Datum: 08.02.11 14:10

Grundsätzlich belegen alle Variablen Speicher. Manche belegen den Heap und manche den Stack. Global deklarierte, sowie Static Variablen belegen den Heap und nehmen von deinem Hauptspeicher. Variablen, die dynamisch instanziiert (e.g. Set o = New CMyObject) werden, kosten ebenfalls Heap.

Variablen die (nicht Static) in einer Prozedur/Funktion deklariert werden belegen Stack. Dies trifft ebenfalls für Übergabeparameter zu.

Ich denke String-Variablen die nicht Größen limitiert sind (e.g. Dim s As String * 20) belegen sicherlich den Heap.

Die 64K Segementgröße beruht auf der Prozessorarchitektur.

Dein Problem wird sicherlich eher durch zu viel Code in einem Modul beruhen.

Außer du deklarierst Variablen wie z.B. Public gl_L(1 to 65535, 1 to 65535) As Long ...

Gruß
Dirk

--
?Get it right the first time

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: OOP - Objektorientierte Programmierung 
Autor: elvisxx
Datum: 02.03.13 12:44

Hallo,
ich habe das Klassenkonzpt versucht in meine Herausfordrung umzusetzten.
Ich habe folgende Verständnisschwierigkeit.

Bei der intellisence in der form sehe ich jetz beispielsweise:
.position_x
.position_y

wenn ich jedoch im Überwachungsfenster schaue finde ich auch die Properties:
angle_x
angle_y
"dbl_angle_x"
"dbl_angle_y"

die VAriablen dbl_... habe ich im Kopf der Klasse gesetzt.
Private dbl_angle_x As Double
Private dbl_angle_y As Double
Private dbl_angle_z As Double

sowie auch die Prperties
'### angle_x:
'Schreibzugriff
Public Property Let angle_x(ByVal vData As Double)
dbl_angle_x = vData
End Property
'Lesezugriff
Public Property Get angle_x() As Double
angle_x = dbl_angle_x
End Property

wie bekomme ich es hin, dasss ich die Variablen:
"dbl_angle_x"
"dbl_angle_y"
nicht mehr im Überwachungsfenster sehen muss?
Bei 20 Properties würde das sehr unübersichrlich.

###
man muss halt alles optimistisch sehen !

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um einen neuen Beitrag schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel