amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > Stormwizard GUI Editor mit BlitzBasic oder lieber C (Anfänger) !?? [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- 2 [ - Beitrag schreiben - ]

18.05.2010, 20:45 Uhr

gerograph
Posts: 621
Nutzer
Nabend,

hab mal versucht alles wichtige ins Thema zu packen. Auch wenn es den Stormwizard GUI Editor schon lange gibt (?) bin ich erst gerade nochmals aufmerksam gewurden. Ich nehme dies mal zum Anlass eine weiter Programiersprache auf dem Amiga zu testen, denn

KickPascal, ARexx + AWNPipe, Hollywood mögen für spezielle Zwecke super sein, aber nicht als "Allzweckwaffe/Schweizer Messer" zu gebrauchen. Daher die Fragen:

1. Funktioniert Stormwizard mit AmiBlitz3 (Anscheinend gibt es genügend Doku und Beispiele hierfür) ?

2. Oder sollte ich doch lieber mit C direkt programmieren (StormC würd sich dann anbieten, oder ?) ?

O.k. hier mein CV und meine Erwartungen:

gute Kentnisse in TurboPascal und KickPascal (wobei hier das Amigaspezifische ehr abgetippt wurd, als verstanden wurde), was mich eben dazu befähigte in der Firma kleinere VB und VBA Sachen zu programmieren. Außerdem ARexx und ein bisserl Hollywood. Die ein oder andere Kleinigkeit hab ich dann auch schomal ins Aminet oder Depot geladen.

Erwartung: Eine "multifunktionellere" Programiersprache, mit der ich insbesondere schnell ein GUI hinbekomme. Unter der "Haube" werde ich mich dann ehr nicht mit komplizierten/optimierten Algorithmen beschäftigen... geht mehr um einfache Sachen. Ne kleine Adressdatenbank wäre vielleicht schon das Optimum (vielleicht mit balanciertem Binärbaum, das wär dann auch das höchste der Gefühle...).

Auch wenn ich inzwischen nur noch OS4 nutze, denke ich ist es bei nicht so zeitkritischen Operationen unerheblich ob ich emulierten 68k Code produziere oder PPC Code... daher denke ich, dass Amiblitz nicht schlecht ist, oder ?

3. Welche Doku/Workshops/Bücher stehen an erster Stelle ? (möglichst in Druckbarer Form).

EDIT: CubicIDE hab ich und auch nen WinXP Rechner (Crosscompilen eventuell ??)

Danke für Hinweise....

gruß gerograph




[ Dieser Beitrag wurde von gerograph am 18.05.2010 um 20:59 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

19.05.2010, 11:19 Uhr

Der_Wanderer
Posts: 1229
Nutzer
1. Ja.

2. Geschmackssache. Bei dem CV eher Amiblitz, das das "drumherum" viel einfacher ist. Evtl. könnte man das auch zum Anlass nehmen, ein StormWizard Template zu machen, da hat man dann quasi ein GUI Skelett mit einem Klick und kann das ausbauen.

3. Anlaufstelle ist http://www.amiforce.de (Amiblitz HP, Downloads, Docu, Forum). Viel Docu ist aber schon in das IDE integriert. Wenn man also die generelle Syntax kennt, braucht man keine externe Docu mehr.
--
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, AB3 Includes und viele mehr...
Homepage: http://www.hd-rec.de


[ - Antworten - Zitieren - Direktlink - ]

19.05.2010, 15:28 Uhr

Honitos
Posts: 200
Nutzer
Das ist genau der Grund, warum ich damals mit StormWizard angefangen habe:

Ich konnte mir sehr schnell eine GUI zusammenklicken; die Programmlogik war danach ebenfalls schnell erstellt, da ich mich im Programm um nichts weiter kümmern mußte.

In AmiBlitz kann man dann einfach das designte Fenster mit einer Programmzeile öffnen lassen, Programmschleife für die Logik schreiben, am Schluß Fenster dichtmachen, fertig.


[ - Antworten - Zitieren - Direktlink - ]

19.05.2010, 15:45 Uhr

Der_Wanderer
Posts: 1229
Nutzer
@Honitos

Evtl. hast du Lust ein Template zu schreiben?
Das sollten dann so in ein bis zwei Bildschirmseiten das Skelett aufbauen.
--
--
Author of
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, AB3 Includes und viele mehr...
Homepage: http://www.hd-rec.de


[ - Antworten - Zitieren - Direktlink - ]

19.05.2010, 15:53 Uhr

Thore
Posts: 2266
Nutzer
Wollt ihr nicht erst die Programmiersprache lernen, bevor ihr auf "weniger Arbeit" durch "GUI Creation Point n Click Adventures" vertraut?

Eine GUI hinklicken mag ja schön und gut sein, wenn man sich mit der Programmierung auskennt. Aber dann viel Spaß beim Debuggen wenn Fehler drin sind und man von der Materie eigentlich keine Ahnung hat.

Meine Empfehlung:
Programmiersprache lernen mit Beispielen (Aha-Effekt ist guter Lerneffekt)
Eigene GUI Sachen machen ohne die Verwendung von Wizards (zum Beispiel direkt Intuition, Boopsie, Gadtools, später vll MUI), um Verständnis/Erfahrung für die Programmierung von GUIs und deren Events (IDCMP etc pp) zu bekommen.

Daß Anfänger auch den einfacheren Weg gehen sollen ist meiner Ansicht nach auch nicht so richtig. Dann bleibt ihr auf dem Anfänger-Level.
Übung macht den Meister.

Warum schaust Du Dir nicht die Programmiersprachen mal generell an, machst ein paar Beispiele in AmiBlitz, C, FreePascal und entscheidest dann was für Dich in Frage kommt, oder ob Du auch mehrere in Betracht ziehst. Oft ist es eine Geschmacksache und kommt drauf an was Du realisieren willst, das kann kein anderer für Dich entscheiden :)

Dann empfehle ich wärmstens die RKM, hier werden die Internas, Amiga API genau beschrieben.

Für CrossCompiler gibt es z.B. AmiDevCPP. Nach einem Kampf habe ich ihn überredet meine Programme korrekt anzunehmen :D

Viel Spaß beim Lernen. Amiga Programmierung macht echt Spaß wenn mans mal verstanden hat :)

[ - Antworten - Zitieren - Direktlink - ]

19.05.2010, 17:19 Uhr

gerograph
Posts: 621
Nutzer
@alle
Danke schon mal für die Antworten

@Thore:
Zitat:
Wollt ihr nicht erst die Programmiersprache lernen, bevor ihr auf "weniger Arbeit" durch "GUI Creation Point n Click Adventures" vertraut?

Ja, will ich. Denke das AmiBlitz3 relativ schnell zu erlernen ist, C wird ein bisschen umständlicher. Zu Zeiten des A500 hab ich schon mal ein bisschen mit C rumprobiert, Assembler hab ich auch getestet (meine Sortierroutine für eine Adressdatenbank hatte ich damal in Assembler programmiert...).

Zitat:
Programmiersprache lernen mit Beispielen (Aha-Effekt ist guter Lerneffekt)
komme ich nicht drumherum, korrekt. Aber bei mir setzt der Aha Effekt erst bei einem schönen GUI ein, schau Dir meine Proggies unter http://www.geobiz.de/download an, alles "außen hui, innen nichts besonderes....". Das ist für mich Aha Effekt und das soll so bleiben.

Zitat:
Eigene GUI Sachen machen ohne die Verwendung von Wizards (zum Beispiel direkt Intuition, Boopsie, Gadtools, später vll MUI), um Verständnis/Erfahrung für die Programmierung von GUIs und deren Events (IDCMP etc pp) zu bekommen
Hab ich früher in KickPascal und PCQ Pascal (hieß das so ?) gemacht. Also ganz unbedarft sollte ich nicht sein. Kann mich aber erinnern, dass ich nur die Hälfte verstanden habe und, dass es alles sehr aufwendig war. Sicherlich werde ich die Dinge heute besser verstehen mit etwas mehr Erfahrung.

Zitat:
Daß Anfänger auch den einfacheren Weg gehen sollen ist meiner Ansicht nach auch nicht so richtig. Dann bleibt ihr auf dem Anfänger-Level.
Übung macht den Meister.

Richtig, wenn ich Meister werden will, dann sollte ich von Anfang an C lernen... Aber ich will nicht Meister werden, und habe kein Problem auf dem Anfängerlevel zu bleiben.

Zitat:
Warum schaust Du Dir nicht die Programmiersprachen mal generell an, machst ein paar Beispiele in AmiBlitz, C, FreePascal und entscheidest dann was für Dich in Frage kommt, oder ob Du auch mehrere in Betracht ziehst. Oft ist es eine Geschmacksache und kommt drauf an was Du realisieren willst, das kann kein anderer für Dich entscheiden
Richtig, realisieren möchte ich vorallem schöne GUIs mit etwas Code dahinter. Also ehr kleine Tools als große Projekte. Der Weg dahin sollte möglichst einfach sein. Ich hatte einfach gedacht, das C inzwischen (durch entsprechende Hilfsmittel) einfacher geworden ist. Um so etwas zu realisieren stosse ich aber mit "Hollywood" und "ARexx" an gewisse Grenzen. Dafür brauche ich einen etwas universelleren Ersatz.

Zitat:
Dann empfehle ich wärmstens die RKM, hier werden die Internas, Amiga API genau beschrieben.
Ja kenne ich noch von meinem Kumpel, der hatte die Telefonbücher in gedruckter Form...

1) wo bekomme ich Die ?
2) Sind die im Hinblick auf AmigaOS4 überhaubt noch aktuell ?

[qote]
Für CrossCompiler gibt es z.B. AmiDevCPP. Nach einem Kampf habe ich ihn überredet meine Programme korrekt anzunehmen
[/quote]
3) Kampf, klingt nach kompliziert, welche Literatur gibt es dort ?
4) Gibt dort aber wahrscheinlich keinen "GUIWizard" ?
5) Cross Compilen muss ich ja nicht unbedingt, die Frage ist sollte ich dann nicht ehr StormC nehmen ?

Wie gesagt, ich will und kann Momentan zeitlich kein Profi werden.

Gruß
gerograph


[ - Antworten - Zitieren - Direktlink - ]

19.05.2010, 17:44 Uhr

Der_Wanderer
Posts: 1229
Nutzer
> Richtig, wenn ich Meister werden will, dann sollte ich von Anfang an C lernen...
Wieso C wenn man "Meister" werden will? Meister in was? Meister in C ja. Meister in AmigaOS API? Nein.

Ein gängiger Irrtum ist, dass Amiblitz3 ein Basic Dialekt ist und dass alles was man machen will und in Zukunft machen wollen wird (MUI, AHI, StormWizzard, Internet) auf magische Weise auf irgendeine High-Level Runtime abgebildet ist, die aussieht wie Basic.

Wenn du StormWizzard programmierst, sieht das fast genauso aus wie der C Code, nur ein einigen Stellen einfacher weil Amiblitz Strings unterstützt und man kein Makefile und anderes Tamtam braucht.

Für Windows und Screens gibt es High-Level Funktionen, also sowas wie

Window 0,x,y,width,height,"<title>"

Aber wenn ich jetzt API X benutze (z.b. bsdsocket, openGL), dann sieht das logischerweise unter jeder Sprache gleich aus, es sei denn jemand hat das in High-Level Funktionen gepackt.
Natürlich kann man auch Fenster öffnen direkt mit AmigaOS API, also der edukative Aspekt kann auch bedient werden, wenn man will. Muss man aber eben nicht, was es dem Anfänger deutlich leichter macht.

Die GUIs auf deiner HP sehen doch gut aus, ich denke mal Reaction. Was ist daran schlecht, warum nutzt du nicht dein vorhandenes Framework mit dem du schon Erfahrung zu haben scheinst?

--
Author of
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, AB3 Includes und viele mehr...
Homepage: http://www.hd-rec.de



[ Dieser Beitrag wurde von Der_Wanderer am 19.05.2010 um 17:46 Uhr geändert. ]

[ Dieser Beitrag wurde von Der_Wanderer am 19.05.2010 um 17:57 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

19.05.2010, 17:57 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von gerograph:
Ich hatte einfach gedacht, das C inzwischen (durch entsprechende Hilfsmittel) einfacher geworden ist.

Welche Hilfsmittel? Hab ich irgendwas verpasst? :lach:
Nee, wirklich viel hat sich da nicht verändert.

Zitat:
Ja kenne ich noch von meinem Kumpel, der hatte die Telefonbücher in gedruckter Form...

1) wo bekomme ich Die ?

In elektronischer Form als "Amiga Developer CD"
Zitat:
2) Sind die im Hinblick auf AmigaOS4 überhaubt noch aktuell ?
Nein, aber eine gute Grundlage. Für die Aktualisierung des Wissens gibt es das SDK.

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

19.05.2010, 18:13 Uhr

gerograph
Posts: 621
Nutzer
@The_Wanderer
Danke für die Infos... und Deine Stellungnahme zum Thema.

Zitat:
Die GUIs auf deiner HP sehen doch gut aus, ich denke mal Reaction. Was ist daran schlecht, warum nutzt du nicht dein vorhandenes Framework mit dem du schon Erfahrung zu haben scheinst?

Reaction ist nur in iBatch genutzt mittels AWNPipe. AWNPipe als Framework ist gut, hat aber den Nachteil, dass es unter OS4 nur bedingt läuft (z.B. Tabs, deswegen gibts für OS3.x User eine gesonderte Version). Im DiskSpace habe ich auch ein bisschen Reaction (war das überhaupt schon Reaction zu OS3.1 Zeit ???) genutzt, die Tabs sind aber "gezeichnet" (ich glaub mit einer pen() Funktion auf dem RastPort... aber das war 1998 oder so)

Playlisconverter ist SCULib...

@Holger
Danke für die Infos

[ - Antworten - Zitieren - Direktlink - ]

19.05.2010, 19:04 Uhr

ZeroG
Posts: 1487
Nutzer
Zitat:
Original von gerograph:
(war das überhaupt schon Reaction zu OS3.1 Zeit ???)


Nö, zu 3.1-zeiten hörte es noch auf den Namen ClassAct.

[ - Antworten - Zitieren - Direktlink - ]

19.05.2010, 19:28 Uhr

gerograph
Posts: 621
Nutzer
@ZeroG:
Stimmt so wars, also Diskspace war ClassAct...

[ - Antworten - Zitieren - Direktlink - ]

19.05.2010, 19:46 Uhr

cha05e90
Posts: 157
Nutzer
@gerograph:
Wenn Du dann angefangen hast - mit welcher Sprache und Tools auch immer - gib' mal Laut wie's läuft. Ich denke Du bist nicht der Einzige der "endlich mal" oder "mal wieder" in die Programmierung unter AmigaOS bzw. amigoiden OS einsteigen will.

...ich habe mich (auch) immer noch nicht entscheiden können, ob ich mal wieder C anfasse oder mich näher mit AmiBlitz beschäftigen sollte. Bisher konnte ich mich zum Glück immer mit Zeitmangel und begrenzter Rest-(Hirn-)Kapazität rausreden... ;-)

...oder nur so zum Spaß mal das Phython unter OS4.1 angucken und schauen was ich alles an altem ARexx-Geraffel portieren könnte...

Ach ja. *seufz*

--
sam440ep-OS4.1|A2000/040-CGX4-OS3.9|A2000/030-P96-OS3.9|A1000-OS1.3

[ - Antworten - Zitieren - Direktlink - ]

20.05.2010, 15:12 Uhr

bernd_afa
Posts: 20
[Benutzer gesperrt]
>Wenn du StormWizzard programmierst, sieht das fast genauso aus wie >der C Code, nur ein einigen Stellen einfacher weil Amiblitz Strings >unterstützt und man kein Makefile und anderes Tamtam braucht.

ne, das ist mit der wizard in amiblitz Integration viel viel einfacher.
Aber man kann auch ohne die wrapper lib was machen, dann ist es aber genauso wie in C.

Es gibt ne wrapper lib die vieles einfacher macht, man kann ein Fenster mit GUI in einer Zeile öffnen und mit WZPrint einen Gadgetwert setzen oder mit WZInput einen Gadget Wert auslesen.

WZprint Gadgetname oder GadgetID, Wert[,wert, wert]

man muss sich kein Tag merken oder MACRO für jeden GUI Typ , wenn man wzprint bei einem slider macht oder bei einem button, oder bei sonstigen wird eben automatisch das richtige gemacht.

gibt auch ne Beschreibung welcher Wert wzprint setzt.somit kann man das alltags übliche mit wenig Tippaufwand machen.

Hat man selten benötigte Spezialfälle, kann man auch auf die standard wizard syntax zugreifen, somit hat man nie einschränkungen

ein hello world für wizard geht einfach, war ich zu faul zu machen.

aber man kann auch schon an einem simplen Zinsrechner (bei dem sich beliebig viele Fenster öffnen lassen, welches bei AOS zu einem 16 fenster Limit führt wegen den signal flags Limits, müsste man woanders erst mal einen shared IDCMP anlegen) sehen wie einfach es geht ein GUI mit Menu , 5 stringgadgets und einen new calcwin button zu machen.lässt man den newclacwin button weg geht alles noch einfacher.das soll lediglich zeigen, dass wizard in amiblitz schon shared idcmp nutzt.nimmt man stormwizard und C muss man da wie bei Reaction (MUI weis ich nicht)extra code schreiben der shared IDCMP nutzt, wenn man ein grösseres Programm machen will, bei dem mehr als 16 Fenster offen sein dürfen

optimize 7
WBStartup
FindScreen 0
#maxwin1=10
NEWTYPE .account ;extra low to see what happen when no window can open
kapital.f
zins.f
jahr.l
ent.f
open.l
End NEWTYPE

Dim windat.account(#maxwin1) ;max 10 windows together
SHARED windat()

Function.l calc {*dat.account}
USEPATH *dat
k.f=kapital
z.f=zins/100
For i= 1 To jahr:k=k+k*z-ent:Next
WZPrint "ergebniss",Str$(k)
End Function


Function.l open_accountwin{}
For i=1 To #maxwin1-1
If windat(i)open=0 Then w=i:windat(i)open=1:Pop For:Goto allocout
Next
allocout: If w
WZWindow w,?wzdata,20,-1,w*180,-1,-1,1 ;open the win
End If
Function Return w
End Function

Function.l close_accountwin{w.l}
windat(w)open=0
WZCloseWindow w
End Function

Function set_accountwin{w.l}
WZPrint "kapital",Str$(windat(w)kapital)
WZPrint "zins",Str$(windat(w)zins)
WZPrint "jahr",Str$(windat(w)jahr)
WZPrint "entnommen",Str$(windat(w)ent)
End Function
winnum=open_accountwin{}
windat(winnum)kapital=10000 ;load from file the values or just set something
windat(winnum)zins=1
windat(winnum)jahr=5
set_accountwin{winnum}
Repeat
ev.l=WaitEvent
Use Window EventWindow
winnum=EventWindow
If (winnum > 0) AND (winnum < 0+#maxwin1)
Select ev
Case #IDCMP_CLOSEWINDOW:
exit=1 ;test
close_accountwin{winnum}
Case #IDCMP_MENUPICK:
Select WZMenuName
Case "quit":exit=1
Case "cut":
End Select
Case #IDCMP_IDCMPUPDATE
Select WZGadName
Case "kapital":windat(winnum)kapital =Val(WZInputstr)
Case "zins":windat(winnum)zins=Val(WZInputstr)
Case "jahr":windat(winnum)jahr=Val(WZInputstr)
Case "entnommen":windat(winnum)ent=Val(WZInputstr)
Case "newwin":
winnum=open_accountwin{}
If winnum
windat(winnum)kapital=3900 ;load from file the values or just set something
windat(winnum)zins=winnum ;show something diffrent in each win
windat(winnum)jahr=5
set_accountwin{winnum}
End If
End Select
If winnum Then calc{windat(winnum)}
End Select
End If

Until exit=1 AND winnum=1
exit=0
End

wzdata: IncBin "a_wizard:zinzeszins.wizard"



[ Dieser Beitrag wurde von bernd_afa am 20.05.2010 um 15:36 Uhr geändert. ]

[ Dieser Beitrag wurde von bernd_afa am 20.05.2010 um 15:38 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

20.05.2010, 15:59 Uhr

Der_Wanderer
Posts: 1229
Nutzer
Ich meinte kein Hello World, sondern ein Template. Ist ähnlich, aber hat nicht das gleiche Ziel.
Kann man die .wizard Dateien eigentlich Manuell erzeugen, oder wird dafür zwingen StormWizard benötigt?
Das würde das Template natürlich einfacher/einsichtiger machen.

--
--
Author of
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, AB3 Includes und viele mehr...
Homepage: http://www.hd-rec.de


[ - Antworten - Zitieren - Direktlink - ]

20.05.2010, 19:37 Uhr

bernd_afa
Posts: 20
[Benutzer gesperrt]
Das wäre ein template, damit kann man dann auch mehrere windows, menus usw machen.ich checke das mal ins SVN ein, irgendwie geht das einrücken im Forum nicht.

in amiblitz gibts auch ein Menu stormwizard.dadurch sollte der wizard file name aus den Projekt settings im GUI Editor gestartet werden, aber das geht derzeit noch nicht.

welche windows es gibt und wie das aussieht hängt von dem File gui.wizard ab.da sollte man in den project settings was eintragen und dann mit dem amiblitz Menupunkt start Stormwizard den GUI editor starten können

code:
optimize 7
Syntax 2; for quick decalare mode
WBStartup
FindScreen 0
WZWindow 1,?wzdata,100
Repeat
     ev.l=WaitEvent
     Use Window EventWindow
     Select EventWindow
      Case 1 ; the messages for first window flow here
            Select ev
                  Case #IDCMP_CLOSEWINDOW:
                  exit.l=1                ;quit the program
              Case #IDCMP_MENUPICK:     ; here come the menu messages
                      Select WZMenuName
                         Case "QUIT":exit=1
                      End Select
              Case #IDCMP_IDCMPUPDATE   ; here come the Gadget messages.
                  Select WZGadName
                    ; here come the case to do the action on Gadget
                    ; pressing wzprint set gadget values 
                    ; and wzinput can get them.for the 
                    ; current pressed gadget call 
                    ; wzinput without any parameter.
                  End Select
           End Select
      ; here can add more case if you want support more windows
     End Select
     Until exit=1
  End
wzdata: IncBin "gui.wizard"


[ Dieser Beitrag wurde von bernd_afa am 21.05.2010 um 13:53 Uhr geändert. ]

[ Dieser Beitrag wurde von bernd_afa am 21.05.2010 um 13:55 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

20.05.2010, 20:05 Uhr

bernd_afa
Posts: 20
[Benutzer gesperrt]
>Kann man die .wizard Dateien eigentlich Manuell erzeugen, oder wird >dafür zwingen StormWizard benötigt?
>Das würde das Template natürlich einfacher/einsichtiger machen.

Man kann auch wie mit MUI oder Reaction Gadgets per Code mit newobject zufügen.aber das habe ich damals noch nie probiert und es gibt auch kein Beispiel.so kann man auch dynamische GUI machen, dass z.b mehr tabs kommen etc, neue gadgets im window auftauchen...

Im Grunde ist das ganze ähnlich wie boopsi und reaction, aber man kann das GUI einfach zusammenklicken und die wizard lib erzeugt dann aus den GUI Daten die newobject Aufrufe und passenden Tags

[ Dieser Beitrag wurde von bernd_afa am 20.05.2010 um 20:06 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

20.05.2010, 20:53 Uhr

gerograph
Posts: 621
Nutzer
@bernd_afa:

Zitat:
ne, das ist mit der wizard in amiblitz Integration viel viel einfacher.
Aber man kann auch ohne die wrapper lib was machen, dann ist es aber genauso wie in C.

Es gibt ne wrapper lib die vieles einfacher macht, man kann ein Fenster mit GUI in einer Zeile öffnen und mit WZPrint einen Gadgetwert setzen oder mit WZInput einen Gadget Wert auslesen.


einfach hört sich gut an... hab mal kurz im Archiv von Amiblitz3 geschaut, finde dort die Docu zu wizlib. Die angesprochene wizard.lib find ich aber nicht im Archiv ?? Ist das der Wrapper den Du ansprichst ?

@Alle
auch wenn ich nicht ganz verstehe was der_wanderer und bernd_afa dort diskutieren, ich denke AmiBlitz werd ich dann mal fürs nächste "Projektchen" nutzen. Die Wahrscheinlichkeit, dass es mir gut gefällt und ich meine Ziele erreiche, ist doch sehr hoch, sodass nichts dagegen spricht AmiBlitz zur "Hauptprogrammiersprache" für mich zu erklären...

gruß gerograph

[ - Antworten - Zitieren - Direktlink - ]

20.05.2010, 21:20 Uhr

Honitos
Posts: 200
Nutzer
@gerograph:

Auf jeden Fall findest Du unter amiforce.de Leute, die Dir bei den Gehversuchen helfen können. Auch das ist natürlich wichtig für den Anfang.

[ - Antworten - Zitieren - Direktlink - ]

21.05.2010, 09:08 Uhr

Der_Wanderer
Posts: 1229
Nutzer
@Bernd

du solltest das "code" Tag benutzen um deinen geposteten Code herum, mit Eckigen Klammern.

Dann bekommst du sowas hier:

code:
; WB App Template (Thilo Koehler 2007)

; control the compiler ...
; 1 : integer optimizer, exe will need 68020+ CPU
; 2 : floating point usage, exe will need 68881+ FPU
; 4 : allow AB3 compiler extentions
optimize 7 ; = 1|2|4 (we want it all!)
 
; do some more strict syntax (e.g. declare variables),
; which is very useful for larger projects
Syntax 2

; we need to include the WBStartup Code
WBStartup

; use the WB screen as screen object 0
WbToScreen 0

; give our WB App a version string
!version {"MyWBApp 1.0 (\__DATE_GER__)"}

WindowFlags.l = #WFLG_CLOSEGADGET|#WFLG_DRAGBAR|#WFLG_DEPTHGADGET|#WFLG_ACTIVATE|#WFLG_SIZEGADGET
Window 0,10,10,320,200,WindowFlags,"MyWBApp",1,0

quitme.l = False
While quitme = False ; message loop, runs until we set quitme=True
  idcmp.l = WaitEvent  ; put the app to sleep until we receive an event
  Select idcmp  ; check what kind of event happend (#IDCMP_...)
    Case #IDCMP_CLOSEWINDOW  ; someone hit the close gadget
      quitme = True

    Case #IDCMP_MOUSEBUTTONS
      ; ... check mouse buttons

    Case #IDCMP_GADGETUP
      ; ... check Gadgets

    Case #IDCMP_MENUPICK
      ; ... check Menu Picks

    ; Case #IDCMP_... ; see Definition Browser for more event types

    Default
      ; we are not interested in this event, so we do nothing

  End Select
Wend

End ; never forget "End", it closes the window for us and frees all resources

--
--
Author of
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, AB3 Includes und viele mehr...
Homepage: http://www.hd-rec.de


[ - Antworten - Zitieren - Direktlink - ]

21.05.2010, 13:33 Uhr

bernd_afa
Posts: 20
[Benutzer gesperrt]
Ich habe das code Tag benutzt(nach einem HTML Beispiel

http://www.quackit.com/html/tags/html_code_tag.cfm

siehe das geänderte oben da sind nur die beiden HTML Befehle sichtbar, aber das Forum macht nix anders
ich habe java script aus, hat es vielleicht damit zu tun ?

>hab mal kurz im Archiv von Amiblitz3 geschaut, finde dort die Docu >zu wizlib. Die angesprochene wizard.lib find ich aber nicht im >Archiv ?? Ist das der Wrapper den Du ansprichst ?

die ist in dem acidlibs drin.

stormwizard ist quasi das Standard GUI for amiblitz.Basic User oder andre Komfort Sprachen User wie .net oder Java machen ihr GUI woanders auch mit einem GUI Editor und haben keine Lust dafür tausende zeilen source Code zu tippen.

Daher habe ich das schon von 2001 mit stormwizard gemacht, weil es der einzigste gut nutzbare GUI Editor ist, und man muss das GUI nicht programmieren.

amiblitz ist damit geschreiben, Sven schrieb einige Programme damit, und machte auch eine include pe/wz_tools die noch mehr Features unter Amiblitz bereitstellt.da gibts z.b einfach anzuwendende editierbare Tabellen, wie man es z.b bei einem Konto Verwaltungsprogramm benötigt und einiges mehr

blackbird und Thomas haben svngui damit gemacht.gibts also schonmal ein paar die da helfen können.

Es ist auch möglich in amiblitz GUI zu mischen, wenn man ein altes Programm hat, kann man so nach und nach alle Fenster auf stormwizard umstellen.

[ Dieser Beitrag wurde von bernd_afa am 21.05.2010 um 13:48 Uhr geändert. ]

[ Dieser Beitrag wurde von bernd_afa am 21.05.2010 um 13:58 Uhr geändert. ]

[ Dieser Beitrag wurde von bernd_afa am 21.05.2010 um 14:00 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

21.05.2010, 13:43 Uhr

Der_Wanderer
Posts: 1229
Nutzer
Eckige Klammern, kein HTML. BB-Code.

Also so:

[ code ]

[ / code ]

nur ohne die Leerzeichen. Ist ist in fast allen Foren so.

--
--
Author of
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, AB3 Includes und viele mehr...
Homepage: http://www.hd-rec.de


[ - Antworten - Zitieren - Direktlink - ]

24.05.2010, 13:05 Uhr

gerograph
Posts: 621
Nutzer
@bernd_afa:
So erste Gehversuche mit AmiBlitz getätigt, zwei Probleme:

1. Der Online Workshop auf amiforce enthält "/" anstatt die Backslashs für die Newtype Felder... hat mich einiges an Kopzerbrechen gekostet.

2. Das Postscript Manual für Amiblitz2 ist weder in AmiGS noch in Ghostview (WinXP) lesbar...

3. Das obige Beispielprogramm von Bernd funktioniert nicht, es ist ein Beispiel aus der AmiBlitz2 Distro, habe also den Quellcode in AmiBlitz3 geladen und in der Shell ein Assign wzdata: auf Amiblizt2/examples (also da, wo zinzeszin.wizard liegt). Fehler: "Can't open Include" Meine Zeile (also aus dem Beispiel der Blitz2):

wzdata: IncBin "zinzeszins.wizard"

Jemand ne Idee ??

Gruß Gerograph

[ - Antworten - Zitieren - Direktlink - ]

24.05.2010, 21:35 Uhr

Der_Wanderer
Posts: 1229
Nutzer
> wzdata: IncBin "zinzeszins.wizard"
Die Zeile bedeutet nicht, dass in einem Assign "wzdata:" gesucht wird.

wzdata: ist ein Label (Referenz auf eine Speicheradresse in der Exectuable), was später benötigt wird um Wizard zu sagen wo die Daten im Speicher liegen. Der Befehl IncBin hat hier keine Pfadangaben, deshalb wird u.A. im aktuellen Verzeichnis gesucht, was normalerweise der Pfad des Source codes ist.

Wenn du Amiblitz3 von Sourceforge runtergeladen hast, solltest du noch die Executable flags setzen für "Amiblitz_beta", "System/PED_beta" und "Debug/REDDebugger".

Ich weis ich weis, ich muss unbedingt mal ein ordentliches Release machen.

Vielleicht ist dir dieser Reference Guide hilfreich, den ich gerade schreibe. Wenn du schon programmieren kannst, brauchst du eigentlich nicht viel mehr.

http://hd-rec.de/AmiBlitz3/main.html

Ist aber noch nicht ganz fertig und an einigen (wenigen) Stellen noch falsch, weil es durch Copy&Paste aus meiner A/A++ Docu entstanden ist.

--
--
Author of
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, AB3 Includes und viele mehr...
Homepage: http://www.hd-rec.de


[ - Antworten - Zitieren - Direktlink - ]

25.05.2010, 21:13 Uhr

gerograph
Posts: 621
Nutzer
@bernd_afa:
so, langsam gehts auch mit dem erstellen von GUI's etc... (hab noch nicht viel Zeit gehabt), insgesamt ist dieses BASIC für mich gewöhnungsbedürftig, weil doch einiges anders ist als in Pascal. Aber definitiv nicht unlösbar, man muss sich einfach länger damit beschäftigen... Etwas blöd ist die "überall verstreut liegende Dokumentation"...Super sind die anscheinend sehr umfangreichen Möglichkeiten zur Programmierung (includes, libs, etc....). Zwei Fragen noch:

1. Wo finde ich die wz_tools ?? Möchte "Tabs"/"Register" mit dem Wizard einrichten

2. Welche Möglichkeit soll ich zum konvertieren von Bildformaten/Größen etc. verwenden ? Gibt es OS4/PPC optimierte Varianten ?

Mein angestrebtes Projekt:

http://www.geobiz.de/screenshots/index.html

[ - Antworten - Zitieren - Direktlink - ]

26.05.2010, 10:59 Uhr

Der_Wanderer
Posts: 1229
Nutzer
> 2. Welche Möglichkeit soll ich zum konvertieren von Bildformaten/Größen etc. verwenden ?
D.h. du willst Bilder konvertieren so wie mit dem ImageConverter?

Der im Prinzip macht einfach:
code:
image_Load{0,"myimage.png"}

; tue etwas mit dem Bild, z.B.
image_Resize{0,800,600}
; oder mit Filter bearbeiten:
image_Filter{0,#image_filter_gamma,300}

image_Save{0,"myimage.jpg",@"JPEG"}


Unterstützt werden zum Laden
- alle Datatypes
- Icons (mit korrekter Transparenz)
- PNG mit AlphaChannel
- IFF-ILBM mit ALPH Chunk (z.B. Arteffects)
- hauseigenes AB3I Format

Zum Speichern (alle nur 24bit Farbtiefe, optional mit AlphaChannel):
- IFF-ILBM mit ALPH
- JPEG
- PNG
- AB3I
- BMP V3,V5


--
--
Author of
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, AB3 Includes und viele mehr...
Homepage: http://www.hd-rec.de


[ - Antworten - Zitieren - Direktlink - ]

26.05.2010, 12:36 Uhr

gni
Posts: 1106
Nutzer
Zitat:
Der_Wanderer:
- BMP V3,V5

Kannst Du das bitte etwas genauer erläutern?

[ - Antworten - Zitieren - Direktlink - ]

26.05.2010, 13:00 Uhr

Thore
Posts: 2266
Nutzer
V3 und V5 sind Versionen des Headers (und damit auch weitere Eigenschaften der Grafik)

V3:
width, height, planes, bit-count, compression, image-size, x-resolution, y-resolution, colors-used, colors-important

V5:
intent, profile-data, profile-size, reserved3

Normalerweise bauen sie aufeinander auf, in V5 dürfte auch V4 integriert sein:
red-mask, green-mask, blue-mask, alpha-mask, cs-type, end-points, gamma-red, gamma-green, gamma-blue

Damit kann man schon diverse Infos auslesen.

[ - Antworten - Zitieren - Direktlink - ]

26.05.2010, 17:00 Uhr

cha05e90
Posts: 157
Nutzer
@Der_Wanderer:
Hmm - kann ich explizit den Alpha-Kanal eines PNG "auslesen"? Bzw. einen Alphakanal zufügen/manipulieren?
--
sam440ep-OS4.1|A2000/040-CGX4-OS3.9|A2000/030-P96-OS3.9|A1000-OS1.3

[ - Antworten - Zitieren - Direktlink - ]

26.05.2010, 18:03 Uhr

Der_Wanderer
Posts: 1229
Nutzer
BMP V3 ist das super dämliche Grafikformat, was unter Windows, zumindest früher, überall benutzt wurde.
Das wurde erweitert um V4 und V5, um z.B. einen AlphaChannel mitspeichern zu können. Obwohl die Erweiterungen von Microsoft stammen, kann übrigends mit V5 fast kein Microsoft Program umgehen, ausser glaube ich dem IE.

Zitat:
Original von cha05e90:
@Der_Wanderer:
Hmm - kann ich explizit den Alpha-Kanal eines PNG "auslesen"? Bzw. einen Alphakanal zufügen/manipulieren?

Also grundsätzlich kann man mit einem Bild natürlich alles machen, sobald es mal im Speicher ist, völlig egal ob das nun einmal ein PNG, JEPG oder ILBM war. Das Dateiformat ist ja nur die Darstellung des Bildes im abgespeicherten Zustand, nicht im RAM.
Es gibt Funktionen um den AlphaChannel wegzuwerfen, oder ein zweites Bild als AlphaChannel hinzuzufügen. Oder auch eine RGB Farbe mit Toleranzwert zu setzen. Letztendlich kann man auch auf die RAW Daten direkt zugreifen, somit ist alles möglich.

Es gibt natürlich auch eine Befehl eine Schicht unter der "image" inlcude, wo man z.b. ein PNG Datei öffnen kann und sich nur den AlphaChannel rausholt, ohne das eigentliche Bild zu decodieren. Das ist dann aber schon "fortgeschrittene Programmierer", also man muss sich z.b. selbst einen Speicherbereich allocieren und der dann befüllt wird mit dem AlphaChannel.



--
--
Author of
HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, AB3 Includes und viele mehr...
Homepage: http://www.hd-rec.de


[ - Antworten - Zitieren - Direktlink - ]

26.05.2010, 19:40 Uhr

bernd_afa
Posts: 20
[Benutzer gesperrt]
@gerograph:

>1. Wo finde ich die wz_tools ?? Möchte "Tabs"/"Register" mit dem >Wizard einrichten

tabs oder register geht normal über den wizard editor.schau die beispiele und die doku.

im prinzip geht es so, du nimmst eine hgroup und fügst in der Editor tab Text mehrere Textzeilen ein(wird dann als Tab Name angezeigt), so viele Textzeilen wie du hast so viele Tabs werden dann erstellt.

Es gehen auch verschachtelte tabs, also ein Tab, dass dann wiederum Tabs enthält

die wz_tools und andre includes findest du in amiblitz3/sourcecodes/includes

Da amiblitz einen bedingten Compiler Befehl hat, der code darin nur compiliert, wenn die include in amiblitz geladen wurde

CNIF #__include = 0
wird nicht kompoliert wenn das file von nem Programm included wird
CEND

schreibt man unter amiblitz auch den Testcode zum entwickeln da rein.
Das ist bei allen includes die du in dem dir findest so.

Da kannst du dann auch sehen wie etwas funktioniert, notfalls kannste auch im guten grafischen Debugger in Einzelschritt abarbeiten.

dort kannste dann mit der Maus auf Variablen klicken und bekommst die Werte angezeigt.

Du kannst auch interaktiv programmieren und einen Befehl eintippen, der dann sofort ausgeführt wird.

z.b kannst du im exec Requester

image_blit{xxxxxxx}

tippen und so direkt sehen was der Befehl macht.

Man hat so keine Nachteile zu einem Interpreter.Der amiblitz kompiler erzeugt da quasi ein Programm, dass in dem Kontext des im debugger laufenden läuft.

Da amiblitz viel viel schneller als C kompiliert, kann man auch ein riesen Programm schreiben, das in ein paar sekunden kompiliert, somit braucht man nicht linken.

Amiblitz erkennt nach mehreren male kompilieren automatisch, welche Funktionen nicht gebraucht werden einer include.

musst also auch nicht befürchten wenn du überflüssiges includest, dass die Programme dadurch riesen gross werden.

viele beschweren sich bei amiblitz immer, dass es keine doku gibt, man muss eben einfach mal das beschränkte C Programmierdogma beiseite lassen in dem man um etwas zu programmieren erstmal kilometer doku lesen muss.

Amiblitz ist so gemacht, dass alles selbsterklärend soweit möglich geht, drück man help, oder shift help über irgendwas, dann kommt meistens auch die gewünschte Hilfe die man sucht

[ Dieser Beitrag wurde von bernd_afa am 26.05.2010 um 19:48 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]


-1- 2 [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > Stormwizard GUI Editor mit BlitzBasic oder lieber C (Anfänger) !?? [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.