Hallo, hab gerade folgendes Problem in Bascom:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
Wer weiß da mehr? Danke
|
Anzeige
|
Bascom - Overload bei FunktionenHallo, hab gerade folgendes Problem in Bascom:
Wer weiß da mehr? Danke
Gast
#2345811
Overlay kannst du in der Sub nicht nutzen. Aber du kannst das Array übergeben anstelle der Long Variablen. Hab ich so befürchtet... ist aber "traurig", dass das nicht anders geht oder gibts doch eine andere Idee dim lngReadPointer as long dim lngWritePointer as long dim lngReadPointerBytes(4) as byte at lngreadPointer overlay dim lngWritePointerBytes(4) as byte at lngWritePointer overlay declare sub Test(byref arrBytes as byte) do ... call test(lngReadPointerBytes(1)) ... call test(lngWritePointerBytes(1)) ... loop sub Test(byref arrBytes as byte) print arrBytes(1) print arrBytes(2) .. 'hier möchte ich auf Byte 1-4 zugreifen 'wie kann ich hier eine Overlay-Variable definieren? 'es kann ja Read- oder Writepointer sein end sub
Gast
#2345828
Warum gefällt dir das nicht? Du willst auf die Bytes zugreifen und übergibst dazu die Bytes. Das Overlay hast du global.
Gast
#2346271
hi, das ist es ja was mich so stoert, wenn ich global 100 Variablen habe, muss ich 100mal die overlays deklarieren, sinnvoller wäre es, wenn ich in der Subroutine den Overlay auf die Variable definiere, vielleicht geht es Irgendwie mit varptr und Zugriff auf den Speicherbereich xfred343 schrieb: > hi, > > das ist es ja was mich so stoert, wenn ich global 100 Variablen habe, > muss ich 100mal die overlays deklarieren, sinnvoller wäre es, wenn ich > in der Subroutine den Overlay auf die Variable definiere, vielleicht > geht es Irgendwie mit varptr und Zugriff auf den Speicherbereich Na ja. Du brauchst nicht unbedingt 100 Overlays, sondern nur eines. Dem weist du den fraglichen Wert zu und holst ihn dir Byteweise wieder ab. BASCOM hat eben auch seine Grenzen. Bei eigenen Datentypen ist Ende der Fahnenstange. Danke für die Antworten, jetzt dachte ich mir, vielleicht die Overlay in die Funktionen zu verlegen - das wird aber recht gemein... Folgendes ist syntaktisch korrekt und kann problemlos im Bascom-Emulator gestartet werden.
Die Overlays beziehen sich jetzt (klarerweise?!) auf die Speicherplätze der globalen Variablen LNG und LNG2 des Hauptprogrammes. Ganz zufrieden bin ich mit solchen Ergebnissen vor allem punkto strukturierter Programmierung nicht ... werd wohl auf die Byteslösung ausweichen oder eine globale Hilfsvariable mit Byte-Overlay verwenden. So funktionierts meines Erachtens am Klarsten (mit globaler Hilfsvariable x):
Bascom ist halt so schön zu programmieren, weil es so total ähnlich zu VBA und .NET ist, allerdings bei der durchstrukturierten Programmierung muss man sich umstellen und Abstriche in Kauf nehmen.. sonst wärs ja C Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|