Seite 1 von 3

Tutorial - Mein erstes Programm

Verfasst: 27.02.2011 16:53
von Abraxus
Ein freundliches Hallo an alle PB-Programmierer aus diesem Forum.
Ich möchte in den kommenden Wochen versuchen mein erstes eigenes Programm zu entwickeln. Hierfür würde ich gerne diesen Thread nutzen um die Entwicklung des Programms zu dokumentieren und mir für die jeweiligen Schritte Hilfestellungen entgegen zu nehmen.

Ich denke, wenn sich der Verlauf dieses Threads so entwickelt wie ich es mir vorstelle, dann könnten hier in Zukunft auch viele Neueinsteiger von profitieren.

Zur Zeit arbeite ich noch mit der Demo-Version 4.51, doch ich denke, dass ich mir in den nächsten Tagen eine Vollversion bestellen werde.
Mein Wissen und Erfahrung von PureBasic geht leider gegen Null. Ich habe mir zwar mereeps Tutorial durchgelesen und dabei schon einiges kennengelernt, doch wenn ich nun versuche loszulegen und mit PB arbeite, dann scheint alles gelesene wie weggeblasen. Ich vermute ich tue gut dabei, wenn ich versuche strukturiert mein Programm zu verwirklichen und einfach drauflos arbeite und darauf hoffe mit eurer Hilfe und Unterstützung zügig ein Gefühl für diese Sprache zu entwickeln.

Zu dem Programm:
Ein Verwandter arbeitet in einer kleinen Fabrik in der Teppiche bedruckt werden. Jeden Tag durchlaufen verschiedene Druckaufträge mit unterschiedlichen Mustern und Farben die Maschinen. Über einem Laufband werden die unbedruckten Teppiche durch die Maschine gefahren. Dabei wird durch viele kleine Düsen das Muster und die Farben aufgedruckt. Die Düsen holen sich die Farben aus den jeweiligen Tanks, die alle manuell zubereitet und aufgefüllt werden. In einem Tank wird dann zum Beispiel eine Mischung mit dem Volumen von 5000 Litern zusammengestellt. So eine Mischung besteht dann beispielsweise aus 4999 L Wasser, 0,5 L Verdicker, und 0,5 L Farbstoff.
Der Farbstoff setzt sich aus unterschiedlichen Stoffen zusammen.

Die 0,5 L Farbstoff bestehen zum Beispiel aus:
0,5 L "Grün 14"

Grün 14 besteht wiederum aus:
Gelb = 0,2 g/l
Rot = 0,4 g/l
Blau = 0,1 g/l

(Dies ist ein sehr einfaches Beispiel und in der Anwendung sehr unrealistisch, doch ich denke dies eignet sich sehr gut für den Anfang des Programms.)

Nun wird dieser Teppich mit dieser Mischung aus dem Tank bedruckt und es bleibt immer eine unbenutzter Restmenge in den Tanks übrig. Diese Restmenge wird ganz einfach aus den Tanks gelassen und landet auf dem Müll. Dabei könnte man diese Restmenge in vielen Fällen auch für den nachfolgenden Druckauftrag benutzen:

Der nachfolgende Druckauftrag besteht nämlich aus Bsp: 4999 L Wasser, 0,5 L Verdicker, und 0,5 L Farbstoff.
Die 0,5 L Farbstoff bestehen aus:
0,5 L "Grün 7"

Grün 7 besteht wiederum aus:
Gelb = 0,4 g/l
Rot = 1 g/l
Blau = 0,5 g/l


Die Restmenge aus dem ersten Druckauftrag besteht aus sagen wir mal 600 L.

Nun müsste mein Programm eine Rezeptur entwickeln die den Restwert aus Druckauftrag 1 in Druckauftrag 2 einfließen lässt.
So eine Rechnung würde in etwa so aussehen:
1) Eingabe Druckauftrag 1
(Einheiten A1-3 in g/l, A4 in l)
Gelb: 0,2 --> wird gespeichert als A1
Rot: 0,4 --> wird gespeichert als A2
Blau: 0,1 --> wird gespeichert als A3
Restmenge: 600 --> wird gespeichert als A4

2) Eingabe Druckauftrag 2
(Einheiten B1-3 in g/l, B4 in l)
Gelb: 0,4 --> wird gespeichert als B1
Rot: 1 --> wird gespeichert als B2
Blau: 0,5 --> wird gespeichert als B3
Gesamtmenge: 5000 --> wird gespeichert als B4

3) Berechnung der Rezeptur von D2 bei Zugabe der Restmenge von D1

C1 = Farbstoff Gelb in g/l
1.Schritt (benötigte Gesamtmenge G in g von B1 für D2)
= B1*B4
= 0,4*5000
= 2000g
2.Schritt (vorhandene Restmenge R in g von A1 aus D1)
= A1*A4
= 0,2*600
= 120g
3.Schritt (Ermittlung in g/l von C1 aus D1+2)
=(G-R)/(B4-A4)
= (2000-120)/(5000-600)
= 0,427 g/l --> wird gespeichert als C1

C2 = Farbstoff Rot in g/l
1.Schritt (benötigte Gesamtmenge G in g von B2 für D2)
= B2*B4
= 1,0*5000
= 5000g
2.Schritt (vorhandene Restmenge R in g von A2 aus D1)
= A2*A4
= 0,4*600
= 240g
3.Schritt (Ermittlung in g/l von C2 aus D1+2)
=(G-R)/(B4-A4)
= (5000-240)/(5000-600)
= 1,081 g/l --> wird gespeichert als C2

C3 = Farbstoff Blau in g/l
1.Schritt (benötigte Gesamtmenge G in g von B3 für D2)
= B3*B4
= 0,5*5000
= 2500g
2.Schritt (vorhandene Restmenge R in g von A3 aus D1)
= A3*A4
= 0,1*600
= 60g
3.Schritt (Ermittlung in g/l von C3 aus D1+2)
=(G-R)/(B4-A4)
= (2500-60)/(5000-600)
= 0,554 g/l --> wird gespeichert als C3

C4 = Wasser in l
1.Schritt (benötigte Gesamtmenge G in g von B3 für D2)
= B4-A4
= 5000-600
= 4400 l --> wird gespeichert als C4

4.) Ausgabe Rezeptur für Druckauftrag 1+2
Gelb = C1 = 0,427 g/l
Rot = C2 = 1,081 g/l
Blau = C3 = 0,554 g/l
Wasser = C4 = 4400 l

AuWeiha, bevor ich jetzt weiter mache muss ich mir das alles nochmal in Ruhe durchlesen und schauen ob ich das so richtig gemacht habe...

Re: Tutorial - Mein erstes Programm

Verfasst: 27.02.2011 18:11
von BI2
Abraxus hat geschrieben:Mein Wissen und Erfahrung von PureBasic geht leider gegen Null.
Vielleicht arbeitest Du dann zuerst mal dieses Buch durch:

http://www.purebasic.fr/german/viewtopi ... 56#p284256

Danach sollte das obige Zitat nicht mehr gültig sein :wink:

Gruß, BI2

Re: Tutorial - Mein erstes Programm

Verfasst: 28.02.2011 20:27
von Abraxus
Ja man, danke für den Link zum Handbuch. Nach sowas habe ich gesucht.
Natürlich ganz schön viel Lernstoff und es wird lange dauern bis ich das alles durchgearbeitet habe, aber da führt wohl kein Weg vorbei...

Trotzdem möchte ich schon mal anfangen, an meinem Projekt herumzubasteln.
Habe mir dabei ein Programm von Kiffi zu Hilfe genommen, ich hoffe ich darf das so machen:

Code: Alles auswählen

#SS_CENTERIMAGE = 512
Enumeration 
  #MainWindow
EndEnumeration
Enumeration 
  #MainWindow_lblDruckauftrag1
  #MainWindow_txtDruckauftrag1
  #MainWindow_lblRestmenge1
  #MainWindow_txtRestmenge1
  #MainWindow_lblAnteilGelb1
  #MainWindow_txtAnteilGelb1
  #MainWindow_lblAnteilRot1
  #MainWindow_txtAnteilRot1
  #MainWindow_lblAnteilBlau1
  #MainWindow_txtAnteilBlau1
  #MainWindow_lblDruckauftrag2
  #MainWindow_txtDruckauftrag2
  #MainWindow_lblGesamtmenge2
  #MainWindow_txtGesamtmenge2
  #MainWindow_lblAnteilGelb2
  #MainWindow_txtAnteilGelb2
  #MainWindow_lblAnteilRot2
  #MainWindow_txtAnteilRot2
  #MainWindow_lblAnteilBlau2
  #MainWindow_txtAnteilBlau2
  #MainWindow_cmdErgebnis
EndEnumeration

EnableExplicit

Define Quit, WWE
Define Zahl1.f, Zahl2.f, Zahl3.f, Zahl4.f, Zahl5.f, Zahl6.f, Zahl7.f, Zahl8.f, Zahl9.f, ErgebnisGesamtmenge.f

If OpenWindow(#MainWindow, #PB_Ignore, #PB_Ignore, 332, 312, "Rezeptermittlung", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  TextGadget(#MainWindow_lblDruckauftrag1, 10, 20, 175, 20, "Druckauftrag :", #SS_CENTERIMAGE)
  StringGadget(#MainWindow_txtDruckauftrag1, 190, 20, 135, 20, "")
  
  TextGadget(#MainWindow_lblRestmenge1, 10, 40, 175, 20, "Restmenge (Kg):", #SS_CENTERIMAGE)
  StringGadget(#MainWindow_txtRestmenge1, 190, 40, 135, 20, "")
  
  TextGadget(#MainWindow_lblAnteilGelb1, 10, 60, 175, 20, "Menge Gelb14 (100 g pro 1000 Kg):", #SS_CENTERIMAGE)
  StringGadget(#MainWindow_txtAnteilGelb1, 190, 60, 135, 20, "")
  
  TextGadget(#MainWindow_lblAnteilRot1, 10, 80, 175, 20, "Menge Rot4 (100 g pro 1000 Kg):", #SS_CENTERIMAGE)
  StringGadget(#MainWindow_txtAnteilRot1, 190, 80, 135, 20, "")
  
  TextGadget(#MainWindow_lblAnteilBlau1, 10, 100, 175, 20, "Menge Blau7 (100 g pro 1000 Kg):", #SS_CENTERIMAGE)
  StringGadget(#MainWindow_txtAnteilBlau1, 190, 100, 135, 20, "")
  
  TextGadget(#MainWindow_lblDruckauftrag2, 10, 150, 175, 20, "Druckauftrag :", #SS_CENTERIMAGE)
  StringGadget(#MainWindow_txtDruckauftrag2, 190, 150, 135, 20, "")
  
  TextGadget(#MainWindow_lblGesamtmenge2, 10, 170, 175, 20, "Gesamtmenge (Kg):", #SS_CENTERIMAGE)
  StringGadget(#MainWindow_txtGesamtmenge2, 190, 170, 135, 20, "")
  
  TextGadget(#MainWindow_lblAnteilGelb2, 10, 190, 175, 20, "Menge Gelb14 (100 g pro 1000 Kg):", #SS_CENTERIMAGE)
  StringGadget(#MainWindow_txtAnteilGelb2, 190, 190, 135, 20, "")
  
  TextGadget(#MainWindow_lblAnteilRot2, 10, 210, 175, 20, "Menge Rot4 (100 g pro 1000 Kg):", #SS_CENTERIMAGE)
  StringGadget(#MainWindow_txtAnteilRot2, 190, 210, 135, 20, "")
  
  TextGadget(#MainWindow_lblAnteilBlau2, 10, 230, 175, 20, "Menge Blau7 (100 g pro 1000 Kg):", #SS_CENTERIMAGE)
  StringGadget(#MainWindow_txtAnteilBlau2, 190, 230, 135, 20, "")
  
  
  ButtonGadget(#MainWindow_cmdErgebnis, 125, 255, 80, 25, "Ergebnis")
  
  SetActiveGadget(#MainWindow_txtRestmenge1)
  
  
  Repeat
    
    WWE = WaitWindowEvent()
    
    Select WWE
        
      Case #PB_Event_CloseWindow
        
        Select EventWindow()
            
          Case #MainWindow
            
            Quit = #True
            
        EndSelect
        
      Case #PB_Event_Gadget
        
        Select EventGadget()
            
          Case #MainWindow_cmdErgebnis
            
            Zahl1 = ValF(GetGadgetText(#MainWindow_txtRestmenge1))
            Zahl2 = ValF(GetGadgetText(#MainWindow_txtAnteilGelb1))
            Zahl3 = ValF(GetGadgetText(#MainWindow_txtAnteilRot1))
            Zahl4 = ValF(GetGadgetText(#MainWindow_txtAnteilBlau1))
            Zahl5 = ValF(GetGadgetText(#MainWindow_txtDruckauftrag2))
            Zahl6 = ValF(GetGadgetText(#MainWindow_txtGesamtmenge2))
            Zahl7 = ValF(GetGadgetText(#MainWindow_txtAnteilGelb2))
            Zahl8 = ValF(GetGadgetText(#MainWindow_txtAnteilRot2))
            Zahl9 = ValF(GetGadgetText(#MainWindow_txtAnteilBlau1))
            

            
            
            
           [color=#FFFF00] ErgebnisGesamtmenge = Zahl6 - Zahl1
            
            MessageRequester("Ergebnis", "Die Gesamtmenge in Litern beträgt: " + StrF(ErgebnisGesamtmenge),0)[/color]
           

        EndSelect
        
    EndSelect
    
  Until Quit = #True
  
EndIf
An der Stelle, wo ich anfangen will die Berechnungen durchzuführen komme ich derzeit nicht weiter.
Es sind insgesamt 4 Rechnungen (die kein Problem sind) und also auch 4 Ergebnisse (das ist mein Problem).
Ich schaffe es nicht den MessageRequester so zu bedienen, dass er ein Fenster darstellt in dem alle Ergebnisse (halt das neue Rezept) aufgelistet werden.
Ich schätze mal dass ich ein neues Fenster entwickeln muss, habe ungeduldig durch mereeps Tutorial und BI2´s Handbuch geblättert, aber auf die schnelle nichts gefunden. Vielleicht kann mich jemand auf die schnelle aufklären...

Re: Tutorial - Mein erstes Programm

Verfasst: 28.02.2011 20:44
von SebastianJu2
Was klappt denn mit dem Messagerequester genau nicht? Du kannst doch im Textteil beliebig "irgendeinen Text" und Variablen usw hintereinanderschreiben und einen Zeilenumbruch mit #CRLF$ setzen. ZB:

Code: Alles auswählen

MessageRequester("Ergebnis", "Die Gesamtmenge in Litern beträgt: " + StrF(ErgebnisGesamtmenge) + #CRLF$ + "Von B braucht es: " + str(zahl5) ,0)
Usw. Oder meinst du was anderes?

Wieso machst du eigentlich so viele Leerzeilen? Übersichtlicher wird das dadurch nicht finde ich...

Re: Tutorial - Mein erstes Programm

Verfasst: 02.03.2011 13:23
von Abraxus
danke, das war die schnelle Hilfe auf die ich gehofft hatte.

nun habe ich ein erstes Rechnungsprogramm das funktioniert:

Code: Alles auswählen

#SS_CENTERIMAGE = 512
Enumeration 
  #MainWindow
EndEnumeration
Enumeration 
  #MainWindow_lblTank
  #MainWindow_txtTank
  #MainWindow_lblGelb4G
  #MainWindow_txtGelb4G
  #MainWindow_lblGelb3R
  #MainWindow_txtGelb3R
  #MainWindow_lblRot2B
  #MainWindow_txtRot2B
  #MainWindow_lblRestmenge
  #MainWindow_txtRestmenge
  #MainWindow_lblGelb4G1
  #MainWindow_txtGelb4G1
  #MainWindow_lblGelb3R1
  #MainWindow_txtGelb3R1
  #MainWindow_lblRot2B1
  #MainWindow_txtRot2B1
  #MainWindow_lblNeumenge
  #MainWindow_txtNeumenge
  
  #MainWindow_cmdErgebnis
EndEnumeration

EnableExplicit

Define Quit, WWE
Define Zahl1.f, Zahl2.f, Zahl3.f, Zahl4.f, NeuGelb4G.f, NeuGelb3R.f, NeuRot2B.f, Zahl5.f, Zahl6.f, Zahl7.f, Zahl8.f, NeuGelb4G1.f, NeuGelb3R1.f, NeuRot2B1.f, EndGelb4G.f, EndGelb3R.f, EndRot2B.f 

If OpenWindow(#MainWindow, #PB_Ignore, #PB_Ignore, 332, 312, "Rezeptermittlung", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  TextGadget(#MainWindow_lblTank, 10, 60, 175, 20, "Tankfuellung :", #SS_CENTERIMAGE)
  StringGadget(#MainWindow_txtTank, 190, 60, 135, 20, "")
  
  TextGadget(#MainWindow_lblGelb4G, 10, 80, 175, 20, "Anteil Gelb4G (g pro Kg):", #SS_CENTERIMAGE)
  StringGadget(#MainWindow_txtGelb4G, 190, 80, 135, 20, "")
  
  TextGadget(#MainWindow_lblGelb3R, 10, 100, 175, 20, "Anteil Gelb3R (g pro Kg):", #SS_CENTERIMAGE)
  StringGadget(#MainWindow_txtGelb3R, 190, 100, 135, 20, "")
  
  TextGadget(#MainWindow_lblRot2B, 10, 120, 175, 20, "Anteil Rot2B (g pro Kg):", #SS_CENTERIMAGE)
  StringGadget(#MainWindow_txtRot2B, 190, 120, 135, 20, "")
  
  TextGadget(#MainWindow_lblRestmenge, 10, 140, 175, 20, "Restmenge (Kg):", #SS_CENTERIMAGE)
  StringGadget(#MainWindow_txtRestmenge, 190, 140, 135, 20, "")
  
  TextGadget(#MainWindow_lblGelb4G1, 10, 160, 175, 20, "Anteil Gelb4G Druck 2 (g pro Kg):", #SS_CENTERIMAGE)
  StringGadget(#MainWindow_txtGelb4G1, 190, 160, 135, 20, "")
  
  TextGadget(#MainWindow_lblGelb3R1, 10, 180, 175, 20, "Anteil Gelb3R D2 (g pro Kg):", #SS_CENTERIMAGE)
  StringGadget(#MainWindow_txtGelb3R1, 190, 180, 135, 20, "")
  
  TextGadget(#MainWindow_lblRot2B1, 10, 200, 175, 20, "Anteil Rot2B D2 (g pro Kg):", #SS_CENTERIMAGE)
  StringGadget(#MainWindow_txtRot2B1, 190, 200, 135, 20, "")
  
  TextGadget(#MainWindow_lblNeumenge, 10, 220, 175, 20, "Neumenge (Kg):", #SS_CENTERIMAGE)
  StringGadget(#MainWindow_txtNeumenge, 190, 220, 135, 20, "")
  
  ButtonGadget(#MainWindow_cmdErgebnis, 125, 255, 80, 25, "Ergebnis")
  
  SetActiveGadget(#MainWindow_txtTank)
  
  Repeat
    
    WWE = WaitWindowEvent()
    
    Select WWE
        
      Case #PB_Event_CloseWindow
        
        Select EventWindow()
            
          Case #MainWindow
            
            Quit = #True
            
        EndSelect
        
      Case #PB_Event_Gadget
        
        Select EventGadget()
            
          Case #MainWindow_cmdErgebnis
            
            Zahl1 = ValF(GetGadgetText(#MainWindow_txtGelb4G))
            Zahl2 = ValF(GetGadgetText(#MainWindow_txtGelb3R))
            Zahl3 = ValF(GetGadgetText(#MainWindow_txtRot2B))
            Zahl4 = ValF(GetGadgetText(#MainWindow_txtRestmenge))
            
            Zahl5 = ValF(GetGadgetText(#MainWindow_txtGelb4G1))
            Zahl6 = ValF(GetGadgetText(#MainWindow_txtGelb3R1))
            Zahl7 = ValF(GetGadgetText(#MainWindow_txtRot2B1))
            Zahl8 = ValF(GetGadgetText(#MainWindow_txtNeumenge))
            
            NeuGelb4G = Zahl1 * Zahl4
            NeuGelb3R = Zahl2 * Zahl4
            NeuRot2B = Zahl3 * Zahl4
            
            NeuGelb4G1 = Zahl5 * Zahl8
            NeuGelb3R1 = Zahl6 * Zahl8
            NeuRot2B1 = Zahl7 * Zahl8
            
            EndGelb4G = NeuGelb4G1 - NeuGelb4G
            EndGelb3R = NeuGelb3R1 - NeuGelb3R
            EndRot2B = NeuRot2B1 - NeuRot2B
            
            MessageRequester("Ergebnis", "Die Gesamtmenge in Litern beträgt: " + StrF(NeuGelb4G) + #CRLF$ + "Von B braucht es: " + StrF(NeuGelb3R) + #CRLF$ + "Von B braucht es: " + StrF(NeuRot2B)+ #CRLF$ + "Von B braucht es: " + StrF(NeuGelb4G1) + #CRLF$ + "Von B braucht es: " + StrF(NeuGelb3R1) + #CRLF$ + "Von B braucht es: " + StrF(NeuRot2B1) + #CRLF$ + "Von B braucht es: " + StrF(EndGelb4G) + #CRLF$ + "Von B braucht es: " + StrF(EndGelb3R) + #CRLF$ + "Von B braucht es: " + StrF(EndRot2B),0)
           
        EndSelect
        
    EndSelect
    
  Until Quit = #True
  
EndIf
Allerdings sieht das ganze noch nicht so aus wie ich es mir vorgestellt habe, aber der Anfang ist gemacht!

Als nächstes habe ich mir folgendes vorgenommen:

In der Abrage müssen für den Farbstoff "Grün 14" sämtliche Anteile einzelnd eingetragen werden, also:
Gelb = 0,2 g/l
Rot = 0,4 g/l
Blau = 0,1 g/l
Diese Werte sind allerdings konstante Werte, die immer zu "Grün 14" gehören.

Ich möchte also, dass es genügt wenn man den Farbstoff "Grün 14" einträgt und das Programm dann automatisch mit den Zahlen
Zahl 1 = 0,2
Zahl 2 = 0,4
Zahl 3 = 0,1
arbeitet.

Kann mir da jemand eine kurze Erklärung oder einen Verweis bringen wo ich genau das nachlesen kann?

Re: Tutorial - Mein erstes Programm

Verfasst: 02.03.2011 13:28
von SebastianJu2
Das sieht für mich fast schon nach einer Anwendung für eine Datenbank aus. Schau dir mal sqlite an. Das ist eine Datenbank mit der man bei PB arbeiten kann die es auch schon direkt mitbringt. Dann kannst du solche Zusammenhänge dort abspeichern.

Re: Tutorial - Mein erstes Programm

Verfasst: 02.03.2011 13:36
von ts-soft
Ich weiß ja nicht, wie breit Dein Bildschirm ist :lol: , aber so ist es besser lesbar:

Code: Alles auswählen

            Define Text.s
            Text = "Die Gesamtmenge in Litern beträgt: " + StrF(NeuGelb4G) + #CRLF$
            Text + "Von B braucht es: " + StrF(NeuGelb3R) + #CRLF$
            Text + "Von B braucht es: " + StrF(NeuRot2B)+ #CRLF$ 
            Text + "Von B braucht es: " + StrF(NeuGelb4G1) + #CRLF$
            Text + "Von B braucht es: " + StrF(NeuGelb3R1) + #CRLF$
            Text + "Von B braucht es: " + StrF(NeuRot2B1) + #CRLF$
            Text + "Von B braucht es: " + StrF(EndGelb4G) + #CRLF$
            Text + "Von B braucht es: " + StrF(EndGelb3R) + #CRLF$
            Text + "Von B braucht es: " + StrF(EndRot2B)
            MessageRequester("Ergebnis", Text,0)

Re: Tutorial - Mein erstes Programm

Verfasst: 03.03.2011 16:24
von Abraxus
habe mich jetzt entschlossen eine vollversion zu bestellen.
Ist dies das richtige Angebot?: http://www.purebasic.com/german/ordering.php

Re: Tutorial - Mein erstes Programm

Verfasst: 03.03.2011 18:50
von PMV
Ja, 79€ kostet PureBasic aktuell.

Re: Tutorial - Mein erstes Programm

Verfasst: 09.03.2011 15:56
von Abraxus
danke für eure Hilfe bis hierhin.

Nach reiflicher Überlegung habe ich mich nun entschieden mein Programm neu aufzubauen.
Das Programm soll nun folgenderweise aufgebaut sein:

1.) Ein Windows-Fenster wird geöffnet, mit zwei Gadgets: "neue Farbe" und "Farbregister"
2.) klickt man auf "neue Farbe" wird ein neues Windows-Fenster geöffnet mit folgendem Abfragemuster:
- Name des Farbstoffs: > "Eingabefeld für den Benutzer"
- Farbinhalt A: > "Eingabefeld" und Menge Farbinhalt A: > "Eingabefeld"
- Farbinhalt B: > "Eingabefeld" und Menge Farbinhalt B: > "Eingabefeld"
- Gadget: "Farbe speichern"
3.) klickt der Benutzer auf "Farbe speichern", dann überträgt das Programm die gespeicherte Farbe mit ihren Eigenschaften in das "Farbregister"
4.) klickt der Benutzer im ersten Fenster aus 1.) auf "Farbregister" sind alle gespeicherten Farben untereinander aufgelistet. Klickt der Benutzer auf eine dieser Farben, öffnet sich ein Fenster in dem die aus 2.) gespeicherten Eigenschaften aufgelistet sind.


Es wäre toll wenn mir jemand ein Grundgerüst hierfür aufzeigen kann, falls es zuviel Arbeit ist dann zumindest hilfreiche Hinweise.
Danke