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:

grafiken: glas befüllen
Gehe zu Seite Zurück  1, 2
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
blümchen88



Anmeldungsdatum: 20.12.2004
Beiträge: 7
Wohnort: monzingen, Rheinland-Pfalz

BeitragVerfasst am: 18.01.2005, 14:54    Titel: Antworten mit Zitat

@ AH8982: kannst du mal en anfänger prog. für windows posten? oder so was? würd mich echt reizen das auch zu können!

@Skilltronic: DANKE!!!! super programm und seht kompakt!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 18.01.2005, 15:16    Titel: Antworten mit Zitat

Hallo.

Wie schwer es ist, Windows-Programme zu entwickeln, hängt von der verwendeten Programmiersprache ab.
AH hat für sein Glas-Animationsprogramm VisualBasic benutzt. Damit ist es kaum schwieriger als das Programmieren in QB. lächeln
Besorg dir einfach VB6 z.B. von ebay und schon kannst du loslegen. lächeln Der Aufbau der Sprache ist QB seeehr ähnlich. VB ist fast wie QB, nur kann es noch viiiiiiel mehr. zwinkern

Code:
MSGBOX "Jetzt machen wir eine Schleife!"
FOR i%= 1 TO 5
 MSGBOX "Das hier ist der "+LTRIM$(STR$(i%))+". Durchgang!", vbokonly+vbinformation, "Visual Basic Programm"
NEXT i%
END


Das ist z.B. ein kleines VB6 Programm.

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
ah8982



Anmeldungsdatum: 11.09.2004
Beiträge: 62
Wohnort: Ba-Wü

BeitragVerfasst am: 18.01.2005, 19:36    Titel: re Antworten mit Zitat

Zitat:
kannst du mal en anfänger prog. für windows posten? oder so was? würd mich echt reizen das auch zu können!


Hier mein kompletter Code:
Code:
Option Explicit

Private Sub cmdStart_Click() ' Button "Start"
   ' Hilfsvariable deklarieren
   Dim Response As String
   
   ' Optionsfeld "50 %  Apfelsaft - 50 % Sprudel"
   If opt1zu1.Value = True Then
      ' Optionsfeld "Klein"
      If optKlein.Value = True Then
         Response = MsgBox("Gewähltes Getränk:" + Chr$(13) + "   * 50 % Apfelsaft - 50 % Sprudel" + Chr$(13) + "   * kleines Glas" + Chr$(13) + Chr$(13) + "Wollen Sie dieses Getränk wirklich?", vbYesNo + vbQuestion, "Bestätigen")
            Select Case Response
               Case Is = vbNo
                  Exit Sub
            End Select
         Call StartProgressBar(500)
      End If
      ' Optionsfeld "Groß"
      If optGross.Value = True Then
         Response = MsgBox("Gewähltes Getränk:" + Chr$(13) + "   * 50 % Apfelsaft - 50 % Sprudel" + Chr$(13) + "   * großes Glas" + Chr$(13) + Chr$(13) + "Wollen Sie dieses Getränk wirklich?", vbYesNo + vbQuestion, "Bestätigen")
            Select Case Response
               Case Is = vbNo
                  Exit Sub
            End Select
         Call StartProgressBar(800)
      End If
   End If
   
   ' Optionsfeld "75 % Apfelsaft - 25 % Sprudel"
   If opt2zu1.Value = True Then
      ' Optionsfeld "Klein"
      If optKlein.Value = True Then
         Response = MsgBox("Gewähltes Getränk:" + Chr$(13) + "   * 75 % Apfelsaft - 25 % Sprudel" + Chr$(13) + "   * kleines Glas" + Chr$(13) + Chr$(13) + "Wollen Sie dieses Getränk wirklich?", vbYesNo + vbQuestion, "Bestätigen")
            Select Case Response
               Case Is = vbNo
                  Exit Sub
            End Select
         Call StartProgressBar(1000)
      End If
      ' Optionsfeld "Groß"
      If optGross.Value = True Then
         Response = MsgBox("Gewähltes Getränk:" + Chr$(13) + "   * 75 % Apfelsaft - 25 % Sprudel" + Chr$(13) + "   * großes Glas" + Chr$(13) + Chr$(13) + "Wollen Sie dieses Getränk wirklich?", vbYesNo + vbQuestion, "Bestätigen")
            Select Case Response
               Case Is = vbNo
                  Exit Sub
            End Select
         Call StartProgressBar(1600)
      End If
   End If
   
   ' Optionsfeld "25 % Apfelsaft - 75 % Sprudel"
   If opt1zu2.Value = True Then
      ' Optionsfeld "Klein"
      If optKlein.Value = True Then
         Response = MsgBox("Gewähltes Getränk:" + Chr$(13) + "   * 25 % Apfelsaft - 75 % Sprudel" + Chr$(13) + "   * kleines Glas" + Chr$(13) + Chr$(13) + "Wollen Sie dieses Getränk wirklich?", vbYesNo + vbQuestion, "Bestätigen")
            Select Case Response
               Case Is = vbNo
                  Exit Sub
            End Select
         Call StartProgressBar(1000)
      End If
      ' Optionsfeld "Groß"
      If optGross.Value = True Then
         Response = MsgBox("Gewähltes Getränk:" + Chr$(13) + "   * 25 % Apfelsaft - 75 % Sprudel" + Chr$(13) + "   * großes Glas" + Chr$(13) + Chr$(13) + "Wollen Sie dieses Getränk wirklich?", vbYesNo + vbQuestion, "Bestätigen")
            Select Case Response
               Case Is = vbNo
                  Exit Sub
            End Select
         Call StartProgressBar(1600)
      End If
   End If
End Sub

Private Sub mnuDateiBeenden_Click() ' Menü "Datei -> Beenden"
   ' Hilfsvariable deklarieren
   Dim Response As String
   
   ' Messagebox mit Nachricht
   Response = MsgBox("MixFix wirklich beenden?", vbCritical + vbYesNo, "Beenden?")
   
   ' Auswertung der Messagebox
   If Response = vbYes Then
      End
   Else
      Exit Sub
   End If
End Sub

Private Sub mnuDateiInfo_Click()
   ' Messagebox mit Nachricht
   MsgBox "Written by Andreas Hoever, 2005" + Chr$(13) + "All rights reserved.", vbOKOnly + vbInformation, "Info"
End Sub

Private Sub Form_Load() ' Beim laden der Form Startfunktionen ausführen
   ' Startfunktionen ausführen
   Timer1.Interval = 10
   Timer1.Enabled = False
End Sub

Sub StartProgressBar(Duration As Integer) ' Unterprogramm "StartProgressBar ([Wert])"
   ' Funktionen deklarieren
   ProgressBar.Max = Duration
   ProgressBar.Value = 0
   Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer() ' Timer einstellen/aktivieren
  If ProgressBar.Value >= ProgressBar.Max Then
     MsgBox "Sie können Ihr Getränk jetzt entnehmen.", vbInformation + vbOKOnly, "Hinweis!"
  End If
 
  If ProgressBar.Value < ProgressBar.Max Then
     ProgressBar.Value = ProgressBar.Value + 1
  Else
     Timer1.Enabled = False
  End If
End Sub


Normalerweise geb ich meinen Code von VBasic 6 net her. lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 18.01.2005, 22:25    Titel: Apfelschorlen-Programm Antworten mit Zitat

Hallo!!

Was haltet ihr denn davon??

Gebt mir mal bitte ein Feedback!

Code:

DECLARE SUB Glasinhalt ()
DECLARE SUB Glas ()
DECLARE SUB Menu (p!)

SCREEN 7, , 0, 1

REM
REM  Apfelschorlen-Mixer
REM        18.01.2005
REM           von jb

TYPE Strahl
 x AS DOUBLE
 y AS DOUBLE
 s AS DOUBLE
 ok AS INTEGER
 k AS INTEGER
END TYPE

REM Die Steuerungsvariablen:

DIM SHARED art, dauer, xStart, yStart
DIM SHARED Stand, StartStand, speed

art = -1:              REM steuert den Bogen
dauer = 100:           REM wie viel Schorle?
xStart = 50:           REM    x- und y-
yStart = 50:           REM Startkoordinaten
Stand = 100:           REM Der aktuelle Fuellstand
                       REM ACHTUNG: Grafikposition!             
StartStand = Stand:    REM Startfuellstand           

Start:

DO

 Menu p

 IF p <> 0 THEN
  SELECT CASE p
   CASE 1
    dauer = 100
   CASE 2
    dauer = 120
   CASE 3
    dauer = 150
   CASE 4
    END
  END SELECT
  p = 0
  EXIT DO
 END IF


PCOPY 0, 1
CLS

LOOP

speed = dauer / 1000:  REM die Geschwindigkeit, mit
                       REM der das Glas voll wird.

DIM Array(dauer) AS Strahl

FOR i = 0 TO dauer
 Array(i).x = xStart
 Array(i).y = yStart
 Array(i).s = s + art
 Array(i).ok = ok + 1
 ok = ok + 1
NEXT


DO


FOR i = 0 TO dauer

IF Array(i).ok > 0 THEN

 Array(i).ok = Array(i).ok - 1

ELSE

 PSET (Array(i).x, Array(i).y), 14

 IF Array(i).y < StartStand THEN
  Array(i).x = Array(i).x + .1
  Array(i).y = Array(i).y + Array(i).s
  Array(i).s = Array(i).s + .01
 END IF
 
 IF Array(i).y >= StartStand THEN Array(i).k = Array(i).k + 1

IF Array(i).k > 0 AND Array(i).k < 2 THEN Stand = Stand - speed

END IF

NEXT

Glasinhalt

Glas

PCOPY 0, 1
CLS

E$ = INKEY$
LOOP UNTIL E$ <> ""

GOTO Start

END

SUB Glas

LINE (60, 70)-(60, StartStand), 7
LINE (60, StartStand)-(90, StartStand), 7
LINE (60, StartStand + 1)-(90, StartStand + 1), 7
LINE (90, StartStand)-(90, 70), 7

END SUB

SUB Glasinhalt

FOR i = StartStand TO Stand STEP -1

 LINE (61, Stand)-(89, StartStand), 14, BF

NEXT

END SUB

SUB Menu (p)


PRINT
PRINT " ******** APFELSCHORLEN-MIXER ********"
PRINT
PRINT " (A) KLEIN"
PRINT " (B) MITTEL"
PRINT " (C) GROSS"
PRINT
PRINT " (D) BEENDEN"

E$ = INKEY$

IF E$ <> "" THEN

 SELECT CASE UCASE$(E$)

  CASE "A": p = 1
 
  CASE "B": p = 2
 
  CASE "C": p = 3
 
  CASE "D": p = 4
 
 END SELECT

END IF


END SUB



Probiert's mal aus!!

Nicht böse sein, wegen GOTO, und wegen des Mangel an Kommentaren...


jb


EDIT:

SORRY!!

Ein paar Fehler entdeckt peinlich , sorry noch mal! Hier die neue Version:

Code:
DECLARE SUB Glasinhalt ()
DECLARE SUB Glas ()
DECLARE SUB Menu (p!)

SCREEN 7, , 0, 1

REM
REM  Apfelschorlen-Mixer
REM        18.01.2005
REM           von jb

TYPE Strahl
 x AS DOUBLE
 y AS DOUBLE
 s AS DOUBLE
 ok AS INTEGER
 k AS INTEGER
END TYPE

REM Die Steuerungsvariablen:

DIM SHARED art, dauer, xStart, yStart
DIM SHARED Stand, StartStand, speed
DIM SHARED Array(200) AS Strahl

art = -1:              REM steuert den Bogen
dauer = 100:           REM wie viel Schorle?

Start:

xStart = 50:           REM    x- und y-
yStart = 50:           REM Startkoordinaten
Stand = 100:           REM Der aktuelle Fuellstand
                       REM ACHTUNG: Grafikposition!             
StartStand = Stand:    REM Startfuellstand           

DO

 Menu p

 IF p <> 0 THEN
  SELECT CASE p
   CASE 1
    dauer = 100
   CASE 2
    dauer = 120
   CASE 3
    dauer = 150
   CASE 4
    END
  END SELECT
  p = 0
  EXIT DO
 END IF


PCOPY 0, 1
CLS

LOOP

speed = dauer / 1000:  REM die Geschwindigkeit, mit
                       REM der das Glas voll wird.
ok = 0
FOR i = 0 TO dauer
 Array(i).k = 0
 Array(i).x = xStart
 Array(i).y = yStart
 Array(i).s = s + art
 Array(i).ok = ok + 1
 ok = ok + 1
NEXT


DO


FOR i = 0 TO dauer

IF Array(i).ok > 0 THEN

 Array(i).ok = Array(i).ok - 1

ELSE

 PSET (Array(i).x, Array(i).y), 14

 IF Array(i).y < StartStand THEN
  Array(i).x = Array(i).x + .1
  Array(i).y = Array(i).y + Array(i).s
  Array(i).s = Array(i).s + .01
 END IF
 
 IF Array(i).y >= StartStand THEN Array(i).k = Array(i).k + 1

IF Array(i).k > 0 AND Array(i).k < 2 THEN Stand = Stand - speed

END IF

NEXT

Glasinhalt

Glas

PCOPY 0, 1
CLS

E$ = INKEY$
LOOP UNTIL E$ <> ""

GOTO Start

END

SUB Glas

LINE (60, 70)-(60, StartStand), 7
LINE (60, StartStand)-(90, StartStand), 7
LINE (60, StartStand + 1)-(90, StartStand + 1), 7
LINE (90, StartStand)-(90, 70), 7

END SUB

SUB Glasinhalt

FOR i = StartStand TO Stand STEP -1

 LINE (61, Stand)-(89, StartStand), 14, BF

NEXT

END SUB

SUB Menu (p)


PRINT
PRINT " ******** APFELSCHORLEN-MIXER ********"
PRINT
PRINT " (A) KLEIN"
PRINT " (B) MITTEL"
PRINT " (C) GROSS"
PRINT
PRINT " (D) BEENDEN"

E$ = INKEY$

IF E$ <> "" THEN

 SELECT CASE UCASE$(E$)

  CASE "A": p = 1
 
  CASE "B": p = 2
 
  CASE "C": p = 3
 
  CASE "D": p = 4
 
 END SELECT

END IF


END SUB



Schönen Abend noch...

Und nicht böse sein..

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 18.01.2005, 23:43    Titel: Antworten mit Zitat

Hallo !

Du musst dich doch hier für nichts entschuldigen lächeln

Also ich finde deinen Code etwas umständlich. Ich hatte ja auch schon mal ein Beispiel gepostet. Das enthielt noch die Wahl des Mischungsverhältnisses, die Steuerung der Pumpen und das Ganze mit TIMER gesteuert. Dafür war mein Programm war aber nur halb so lang wie deins...

Warum machst du z.B. den Umweg über p und weist bei entsprechendem Tastendruck nicht gleich dauer einen passenden Wert zu ? Also:

CASE "A" : dauer = 100

usw.

Gruss
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ZaPPa



Anmeldungsdatum: 29.09.2004
Beiträge: 98
Wohnort: Wuppertal

BeitragVerfasst am: 19.01.2005, 03:25    Titel: nur ma so nebenbei... Antworten mit Zitat

Was ist sinnvoller um Variable global zu deklarieren??

DIM SHARED v1, v2, v3 ,....

oder

COMMON SHARED v1, v2, v3,....

also ich mein jetz nur für Variablen... nicht für Arrays!

ich nehm immer das 2te... fragt mich nich wieso... ich weis es nich

Jah Bless
_________________
--- ICH BIN DAGEGEN! ---
Jet_X hat Folgendes geschrieben:
Es währe mir sehr geholfen wenn ihr mir Helfen könnt !


And remember: Schwund is immer!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 19.01.2005, 16:25    Titel: Glas befüllen Antworten mit Zitat

Hallo!!

Ja, manchmal programmiere ich etwas umständlich, ok.

Ich finde, solange ein Code nicht ZU groß wird, kann er ruhig etwas umständlich sein...
Ich meine, den Code habe ich in ca 15 min erstellt, der kann mit Sicherheit noch optimiert werden.
Aber was zählt, ist ja eigentlich immer noch das Ergebnis.

Wie fandet ihr denn das?

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 19.01.2005, 16:32    Titel: Antworten mit Zitat

Hallo.

OFF-TOPIC:

Zitat:
Wie fandet ihr das?


Erinnert mich irgendwie an:


durchgeknallt durchgeknallt durchgeknallt

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
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 19.01.2005, 16:45    Titel: Antworten mit Zitat

Hi!

Jaja, kann schon sein lachen lachen

Ich werde das etwas anders ausformulieren:

[Labermodus]
Ich bitte euch, mir euer sehr geschätztes Urteil, den Programmtest
des Programms zum Apfelschorlenmixen betreffend, und eventuelle Verbesserungsvorschläge auf einem Weg, der euch beliebt,
mitzuteilen.
[/Labermodus]

OK.... genug gelabert

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2
Seite 2 von 2

 
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