Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Buttons hoch 3

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1048
Wohnort: Niederbayern

BeitragVerfasst am: 31.10.2011, 23:13    Titel: Buttons hoch 3 Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 31.10.2011, 23:17    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1048
Wohnort: Niederbayern

BeitragVerfasst am: 01.11.2011, 22:47    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 01.11.2011, 23:20    Titel: Antworten mit 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:
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
Benutzer-Profile anzeigen Private Nachricht senden
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1048
Wohnort: Niederbayern

BeitragVerfasst am: 01.11.2011, 23:39    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz