Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 25.05.2008, 15:37 Titel: Nochmal zu Type.... |
|
|
Folgendes funktioniert:
Code: |
type rechteck
x as integer
y as integer
dx as integer
dy as integer
end type
dim box as rechteck
dim X1 as integer ptr, Y1 as integer ptr
dim X2 as integer ptr, Y2 as integer ptr
box.x = 100
box.y = 100
box.dx = 75
box.dy = 40
X1 = @box.x
Y1 = @box.y
X2 = @box.dx
Y2 = @box.dy
print *X1,*Y1,*X2,*Y2
|
Also da sind die zeiger X1 ...Y2 die auf die Elemente der Type Rechteck zeigen.
Folgendes funktioniert nicht, obwohls selbe systemmatik sein müsste:
Code: |
type rechteck
x as integer
y as integer
dx as integer
dy as integer
declare sub zeichnen
end type
sub rechteck.zeichnen
print "Zeichne Rechteck von " & x & "." & y & " bis " & x+dx & "." & y+dy
print "Tolles Rechteck ;-)"
end sub
dim box as rechteck
dim X1 as integer ptr, Y1 as integer ptr
dim X2 as integer ptr, Y2 as integer ptr
dim ZeigMal as sub
box.x = 100
box.y = 100
box.dx = 75
box.dy = 40
X1 = @box.x
Y1 = @box.y
X2 = @box.dx
Y2 = @box.dy
ZeigMal = @box.zeichnen
print *X1,*Y1,*X2,*Y2
print ""
Zeigmal()
|
Warum kann ich nicht auf Subs/Funktionen einer Type zeigen?
(Vor allem während das Zeigen auf "normale" Subs/Funktionen super klappt)
Eigentlich dachte ich das man auf jeden abschnitt eines Programmes Zeigen kann. Sei es ein Code oder eine Variable.... |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 25.05.2008, 15:38 Titel: |
|
|
du kannst nur auf static-UDT-Funktionen "zeigen":
Code: | type rechteck
x as integer
y as integer
dx as integer
dy as integer
declare static sub zeichnen
end type
sub rechteck.zeichnen
print "Zeichne Rechteck von " & x & "." & y & " bis " & x+dx & "." & y+dy
print "Tolles Rechteck ;-)"
end sub
dim box as rechteck
dim X1 as integer ptr, Y1 as integer ptr
dim X2 as integer ptr, Y2 as integer ptr
dim ZeigMal as sub
box.x = 100
box.y = 100
box.dx = 75
box.dy = 40
X1 = @box.x
Y1 = @box.y
X2 = @box.dx
Y2 = @box.dy
ZeigMal = @box.zeichnen
print *X1,*Y1,*X2,*Y2
print ""
Zeigmal() |
|
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 25.05.2008, 15:43 Titel: |
|
|
Irgendwas funktioniert daran aber immer noch nicht.. bei mir sagt der compiler:
test.bas(10) error 183: Only static members can be accessed from static functions, found 'x' in 'PRINT "Zeichne Rechteck von " & x & "." & y & " bis " & x+dx & "." & y+dy'
test.bas(10) warning 12(0): Implicit variable allocation, x
test.bas(10) warning 12(0): Implicit variable allocation, y
test.bas(10) warning 12(0): Implicit variable allocation, dx
test.bas(10) warning 12(0): Implicit variable allocation, dy
test.bas(2 error 18: Syntax error in 'ZeigMal = @box.zeichnen' |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 25.05.2008, 16:06 Titel: |
|
|
Ja, vollkommen richtig.
Deswegen ist dieses UNterfangen so sinnlos
Du kannst zwar auf eine statische Prozedur zeigen, aber die kann nicht mehr auf die anderen Records des UDTs zugreifen - ziemlich sinnlos also  |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 25.05.2008, 16:11 Titel: |
|
|
 |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 26.05.2008, 14:05 Titel: |
|
|
Hoffen wir auf 0.19b & CLASS  |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 26.05.2008, 14:22 Titel: |
|
|
da kannst du lange hoffen. FB 0.19 wird nämlich nie erscheinen.
dafür erscheint direkt fb0.20  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 26.05.2008, 14:52 Titel: |
|
|
Jojo hat Folgendes geschrieben: | da kannst du lange hoffen. FB 0.19 wird nämlich nie erscheinen.
dafür erscheint direkt fb0.20  |
Wie jetzt? Habe ich irgendwas verpasst?
EDIT/
Argh.
Ich hasse dich
dafür erscheint direkt fb0.20  |
|
Nach oben |
|
 |
|