 |
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 |
blümchen88
Anmeldungsdatum: 20.12.2004 Beiträge: 7 Wohnort: monzingen, Rheinland-Pfalz
|
Verfasst am: 18.01.2005, 14:54 Titel: |
|
|
@ 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 |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 18.01.2005, 15:16 Titel: |
|
|
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.
Besorg dir einfach VB6 z.B. von ebay und schon kannst du loslegen. Der Aufbau der Sprache ist QB seeehr ähnlich. VB ist fast wie QB, nur kann es noch viiiiiiel mehr.
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 |
|
 |
ah8982

Anmeldungsdatum: 11.09.2004 Beiträge: 62 Wohnort: Ba-Wü
|
Verfasst am: 18.01.2005, 19:36 Titel: re |
|
|
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.  |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 18.01.2005, 22:25 Titel: Apfelschorlen-Programm |
|
|
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 , 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 |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 18.01.2005, 23:43 Titel: |
|
|
Hallo !
Du musst dich doch hier für nichts entschuldigen
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 |
|
 |
ZaPPa
Anmeldungsdatum: 29.09.2004 Beiträge: 98 Wohnort: Wuppertal
|
Verfasst am: 19.01.2005, 03:25 Titel: nur ma so nebenbei... |
|
|
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 |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 19.01.2005, 16:25 Titel: Glas befüllen |
|
|
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 |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 19.01.2005, 16:45 Titel: |
|
|
Hi!
Jaja, kann schon sein
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 |
|
 |
|
|
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.
|
|