|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1212 Wohnort: Ruhrpott
|
Verfasst am: 05.09.2017, 10:30 Titel: Übergabe mehrerer Parameter an eine Property |
|
|
Hallo allerseits!
Beim Herumprobieren mit UDTs bin ich auf ein undokumentiertes Feature von FB gestoßen: Die Möglichkeit, mehr als einen Parameter an eine Property zu übergeben. So kann ein Wert z.B. nicht nur gesetzt, sondern auch gleichzeitig in eine Log- oder .ini - Datei geschrieben werden, deren Name als 2. Parameter übergeben wird: Code: | Type tTest
As Integer value
Declare Property write(v As Integer) '<<<<< MUSS deklariert werden, auch wenn es keinen Code dazu gibt
Declare Property write(v As Integer, file As String)
Declare Property readValue As Integer
End Type
Property tTest.write(v As Integer, file As String)
value = v
Dim As Integer ff = FreeFile
Open ExePath + "/" + file For Append As #ff
Print #ff, v
Close #ff
End Property
Property tTest.readValue As Integer
Return value
End Property
Dim As tTest test
Dim As Integer x
With test
.write = (15, "logfile1.txt")
Print .readValue
.write = (20, "logfile1.txt")
Print .readValue
.write = (25, "logfile1.txt")
Print .readValue
.write = (500, "logfile2.txt")
Print .readValue
.write = (301, "logfile2.txt")
Print .readValue
End With
Print
Print "logfile 1:"
Open ExePath + "/logfile1.txt" For Input As #1
Do
Input #1, x
Print x
Loop Until Eof(1)
Close 1
Print
Print "logfile 2:"
Open ExePath + "/logfile2.txt" For Input As #1
Do
Input #1, x
Print x
Loop Until Eof(1)
Close 1
Sleep |
Ich finde, das wäre einer Erwähnung in der Befehlsreferenz wert.
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4599 Wohnort: ~/
|
Verfasst am: 06.09.2017, 00:28 Titel: |
|
|
Hmm, ich bin mir nicht ganz sicher, ob du da nicht ein dokumentiertes Feature zweckentfremdest. Die Version mit den zwei Parametern ist eigentlich dazu gedacht, um einen Index anzusprechen.
Befehlsreferenz hat Folgendes geschrieben: | 'Index' wird z. B. verwendet, wenn der über die Property geänderte Record ein Array ist. Über diesen Parameter kann der Index des Feldelements angegeben werden. Es ist auch möglich, hier andere Parameter zu übergeben, z. B. einen Pointer auf eine ganze Struktur von Parametern. |
Allerdings, ein Anwendungsbeispiel dazu haben wir in der deutschsprachigen Referenz noch nicht
(vgl https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgProperty, letztes Beispiel). _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1212 Wohnort: Ruhrpott
|
Verfasst am: 06.09.2017, 08:10 Titel: |
|
|
Upps, da war ich in meinem Enthusiasmus wohl etwas voreilig.
Denn
1. ist die Übergabe von zwei Parametern tatsächlich dokumentiert (jaja, ich weiß: Wer lesen kann, ist klar im Vorteil ) und
2. gibt der Compiler -wie ich inzwischen festgestellt habe- bei mehr als 2 Parametern eine Fehlermeldung aus.
Aber bei Bedarf kann man ja einen passenden UDT als Parametercontainer erstellen und den dann übergeben.
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|