 |
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 |
ALWIM

Anmeldungsdatum: 08.08.2006 Beiträge: 1048 Wohnort: Niederbayern
|
Verfasst am: 31.10.2011, 23:13 Titel: Buttons hoch 3 |
|
|
Ich habe ca. 50 Buttons. Wenn ich ein Programm schreibe wo jeder Button eine Funktion hat, muss ich im Programm 50 mal die Koordinaten X1, X2, Y1, Y2 angeben. Geht das irgendwie einfacher?
Im Moment fällt mir keine bessere Lösung ein!?
Die Buttons haben unterschiedliche Größe und sind unterschiedlich am Bildschirm platziert.
Das muss doch irgendwie einfacher gehen.
Gruß
ALWIM _________________ SHELL SHUTDOWN -s -t 05 |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 31.10.2011, 23:17 Titel: |
|
|
Hallo,
wenn die Buttons nach einem Muster angeordnet sind (z.B. als Tabelle/Gitter oder alle nebeneinander, ...), könntest du ihre Koordinaten recht einfach berechnen. Das würde dir die vielen Zahlen im Code ersparen.
Ansonsten könntest du die Koordinaten in einer Datei speichern und diese dann zur Laufzeit auslesen:
Button.conf
Code: | 100,100,200,120
300,300,420,160
... |
Die Datei könntest du in einer Schleife einlesen lassen und dementsprechend die Buttons erstellen. Der ButtonErzeug-Befehl käme dann nur 1x in der Schleife vor => kein redundanter Code.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
ALWIM

Anmeldungsdatum: 08.08.2006 Beiträge: 1048 Wohnort: Niederbayern
|
Verfasst am: 01.11.2011, 22:47 Titel: |
|
|
Sebastian hat Folgendes geschrieben: | Hallo,
wenn die Buttons nach einem Muster angeordnet sind (z.B. als Tabelle/Gitter oder alle nebeneinander, ...), könntest du ihre Koordinaten recht einfach berechnen. Das würde dir die vielen Zahlen im Code ersparen.
Ansonsten könntest du die Koordinaten in einer Datei speichern und diese dann zur Laufzeit auslesen:
Button.conf
Code: | 100,100,200,120
300,300,420,160
... |
Die Datei könntest du in einer Schleife einlesen lassen und dementsprechend die Buttons erstellen. Der ButtonErzeug-Befehl käme dann nur 1x in der Schleife vor => kein redundanter Code.
Viele Grüße!
Sebastian |
Ich glaube ich werde es mit der Datei machen. Dazu meine Überlegung zum einlesen:
Code: |
150, 100, 44, 68, 1
|
Code: | Screen 12
Dim As String X(A), XX(A), Y(A), YY(A), Zahl(A)
Dim f As Integer = FreeFile
' *********************************************
' Dim Shared As Integer A from 0 To 55
' *********************************************
OPEN "Button.txt" For INPUT AS #f
A = 0
Do UNTIL EOF(f)
INPUT #f, X(A), XX(A), Y(A), YY(A), Zahl(A)
PRINT X(A), XX(A), Y(A), YY(A), Zahl(A)
A = A +1
LOOP
CLOSE #f
Sleep
End |
Leider gibt es eine Fehlermeldung.
Ich finde leider meinen alten Quellcode nicht mehr, wo ich sowas ähnliches schon mal programmiert habe.
Bis auf ein paar Buttons sind alle in einem bestimmten Abstand bzw Muster angeordnet. _________________ SHELL SHUTDOWN -s -t 05 |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 01.11.2011, 23:20 Titel: |
|
|
Ein solches Konstrukt hat auch in QB nicht existiert und zudem musst du die Variable ja VOR der ersten Verwendung deklarieren.
Einrückungen erhöhen die Lesbarkeit.
Ansonsten compiliert der Code so, ob er das macht, was du willst, musst du selbst entscheiden:
Code: | Screen 12
Dim As Integer A = 55 + 1
Dim As String X(A), XX(A), Y(A), YY(A), Zahl(A)
Dim f As Integer = FreeFile
Open "Button.txt" For Input As #f
A = 0
Do Until Eof(f)
Input #f, X(A), XX(A), Y(A), YY(A), Zahl(A)
Print X(A), XX(A), Y(A), YY(A), Zahl(A)
A = A + 1
If A > 55 Then
Exit Do
EndIf
Loop
Close #f
Sleep |
|
|
Nach oben |
|
 |
ALWIM

Anmeldungsdatum: 08.08.2006 Beiträge: 1048 Wohnort: Niederbayern
|
Verfasst am: 01.11.2011, 23:39 Titel: |
|
|
Vielen herzlichen Dank MOD!
Code funktioniert! Er macht genau das was ich will.
Zitat: | Ein solches Konstrukt hat auch in QB nicht existiert und zudem musst du die Variable ja VOR der ersten Verwendung deklarieren.
Einrückungen erhöhen die Lesbarkeit.
Ansonsten compiliert der Code so, ob er das macht, was du willst, musst du selbst entscheiden: |
Einrückungen sind in meiner original Basicdatei ja drin.
Da ich die Variable nicht vor der ersten Verwendung deklariert habe, kam warscheinlich auch die Fehlermeldung. Ich denke da immer nicht dran. _________________ SHELL SHUTDOWN -s -t 05 |
|
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.
|
|