Seite 1 von 2

Absoluter Ein- bzw. Umsteiger

Verfasst: 05.10.2009 16:50
von Deharrow
Hallo Gemeinde,

habe Purebasic seit geraumer Zeit (ca. 2-3 Jahre) auf meiner Platte herumliegen - da ich seit Jahren und derzeit
mit X-Profan programmiere, war mir der Umstieg und das Erlernen von PureBasic etwas mühseelig.
Codebeispiele für einen Einsteiger fehlten mir in den Examples. Da ich derzeit wieder nicht mit Profan weiterkomme
bzw. bei vielen Sachen einen Umweg über die API machen müsste, da dachte ich mir, den Befehl gibt es ja in PureBasic.
Doch ich müsste wirklich erstmal bei Null anfangen. Ok, Codebeispiele wird es irgendwo haufenweise geben,
wie fängt ein Ein- bzw. Umsteiger aber am besten an. Hatte mir das Beispiel "HALLO WELT" mal angeschaut (WIKIBOOKS),
sieht aber im Gegensatz zu Profan etwas (OpenConsole) komisch aus - Sorry! In der Hilfe (Programmhilfe und PDF) wird
meinermeinung nach auch nicht Einsteigerfreundlich angefangen :|

Hoffe ihr könnt mir helfen!

Gruß Jürgen.

Re: Absoluter Ein- bzw. Umsteiger

Verfasst: 05.10.2009 17:11
von Kiffi
Hallo Jürgen,

meiner Meinung nach findet man den besten Einstieg, indem man ein konkretes Projekt
in PB umzusetzen versucht. Ein 'Hallo Welt' oder 'Wir schreiben uns ein lustiges Programm,
das uns aber nicht im geringsten interessiert
' bringt es wegen der fehlenden Motivation nicht.

Der erste sinnvolle Schritt, den Du tun kannst: Besorg Dir die aktuelle PB-Version (oder, wenn
Du eine nicht updatefähige PB-Version hast: Schreib die Versionsnummer in Deine Signatur)

Danach: Schreib uns kurz, was Du mit PB überhaupt tun willst. Hast Du ein aktuelles Problem,
das Du mit PB lösen willst? Möchtest Du einen bestehenden Code einer anderen
Programmiersprache in PB umsetzen?

Mach Dich parallel mit der Bedienung der F1-Taste im PB-Editor und der Suchfunktion dieses
Boards vertraut.

Grüße ... Kiffi

Re: Absoluter Ein- bzw. Umsteiger

Verfasst: 05.10.2009 17:48
von Deharrow
Hallo, danke für die Antwort.

Tja, wäre nicht schlecht mit dem Umsetzen eines Projekts nach PureBasic, hätte ich auch irgendwann
damit angefangen. Das Problem ist erstmal das Verstehen der Syntax von PureBasic. Habe mit dem VisualDesigner
mal die Maske meines Programms umgesetzt mit Buttons etc. - tolle Sache und sieht auch spitze aus. Der aus dem
Designer heraus gekommene Quelltext liefert mir dann div. Prozeduren, die ich ja auch bereits durch Profan kenne.
Doch wenn ich dann versuche das durch den Designer erstellte Fenster anzeigen zu lassen, dann scheitert es an
einem z.B. WaitInput wie ich ihn aus Profan kenne. Das Fenster wenn es überhaupt angezeigt wird, wird geschlossen -
was ja auch logisch ist, wenn ich noch nichts seitens einer Abfrage eingebaut habe. Ich hatte halt vor zig Jahren wie
ich mit Profan anfing, ein gedrucktes Handbuch mit dabei, wo erstmal alles Schritt-für-Schritt erklärt war - angefangen
von einem simplem "HALLO WELT" bis hin zu Datenbanken. Den Rest hatte ich mir nach und nach angeeignet.
Es ist halt schwierig, ohne eine Doku bzw. irgendwas ähnlichem was auf die Beine zu stellen, bzw. was umzusetzen.
Ich müsste erstmal mit was simplem anfangen wie ein Fenster mit Buttons erstellen, warten bis ein Ereignis auftritt
(ein Button wurde gedrückt) etc. um die Syntax verstehen zu können. Irgendwann wäre ich dann fit und könnte mein
derzeitiges Projekt umsetzen. Ich könnte mich zwar jetzt hinsetzen und als Ein-/Umsteiger die Quelltexte studieren
die beim Programm dabei sind, doch da scheitert es halt daran, dass diese nicht Einsteigerfreundlich sind.
Gibt es vielleicht irgendwelche hilfreichen Beispiele um erstmal anfangen zu können?

Ein simples Beispiel aus Profan:

Code: Alles auswählen

Print "Hallo Welt"
WaitKey
End
In PureBasic ist es halt etwas ungewohnt mit z.B.:

Code: Alles auswählen

OpenConsole()        ; Dieser Befehl öffnet eine Konsole
Print("Hallo Welt")  ; in der dann "Hallo Welt" ausgegeben wird.
Delay(5000)          ; Hält den Programmablauf für fünf Sekunden(5000 Millisekunden) an.
Gruß Jürgen.

Re: Absoluter Ein- bzw. Umsteiger

Verfasst: 05.10.2009 18:22
von ts-soft
So groß sind die Unterschiede nicht. Hier mal ein simpler Profan-Source nach PureBasic übersetzt:

Code: Alles auswählen

;## Fenster erstellen ##
; WindowTitle "Testfenster"
; WindowStyle 26
; Window 100, 100 - 640, 480
; In purebasic:
OpenWindow(0, 100, 100, 640, 480, "Testfenster", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget)

; ## EventLoop ##
; While 1
;   WaitInput
; Wend

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Break
  EndSelect
ForEver

End
In Purebasic sind alles Funktionen, also Parameter in Klammern,
nicht wie in Profan mal Funktion, mal Befehl (ohne Klammern)
das macht die ganze Sache einfacher. Der EventLoop ist etwas
schwieriger, bietet dafür aber auch fast alles, was man benötigt.
Bei Profan ist es da schon schwieriger mit UserMessages usw..
PureBasic ist Leistungsfähiger und auch Einfacher als Profan, wenn
Du Dich ein bißchen eingearbeit hast.

Am besten mal auf http://purearea.net nach Tutorials ausschau halten,
diese sind zwar meist etwas veraltet, aber in Kombination mit der Hilfe,
solltest Du auch dieses Problem lösen. Die kontextsensitive Hilfe in
PureBasic funktioniert auch wesentlich besser.

Also, fang einfach an, es ist einfacher als es im ersten Moment aussieht.

Gruß
Thomas

(PS: von mir ist die Scintilla Classe auf die XProfEd basiert :wink: )

Re: Absoluter Ein- bzw. Umsteiger

Verfasst: 05.10.2009 18:28
von Kiffi
@Jürgen: Wenn Du des Englischen mächtig bist, kannst Du Dir auch
mal den "Beginner's Guide To Computer Programming" von Kale aus
dem englischen Forum durchlesen:

http://www.purebasic.fr/english/viewtopic.php?t=37059

Grüße ... Kiffi

Re: Absoluter Ein- bzw. Umsteiger

Verfasst: 05.10.2009 18:51
von Deharrow
Ok danke erstmal - habe ein gutes Gefühl mit der Zeit mein erstes Testprogrämmchen
in PureBasic zu schreiben (wird ja langsam auch mal Zeit :wink: )

Gruß Jürgen

Re: Absoluter Ein- bzw. Umsteiger

Verfasst: 05.10.2009 20:01
von Kaeru Gaman
Deharrow hat geschrieben:In PureBasic ist es halt etwas ungewohnt mit z.B.:

Code: Alles auswählen

OpenConsole()        ; Dieser Befehl öffnet eine Konsole
Print("Hallo Welt")  ; in der dann "Hallo Welt" ausgegeben wird.
Delay(5000)          ; Hält den Programmablauf für fünf Sekunden(5000 Millisekunden) an.
das liegt einfach daran, dass PureBasic keine zwangsweise Standard-Oberfläche mitbringt...

direkt aus der IDE:

Code: Alles auswählen

Debug "Hallo Welt !"
als MsgBox:

Code: Alles auswählen

MessageRequester( "Demo", "Hallo Welt!" )
als Fenster:

Code: Alles auswählen

Enumeration 
  #Text
  #Button
EndEnumeration

Define EXIT = 0

OpenWindow( 0, #PB_Ignore,0, 240,120, "Meldung" )
  TextGadget   ( #Text,   24, 24, 192, 24, "Hallo Welt !", #PB_Text_Center|#PB_Text_Border )
  ButtonGadget ( #Button, 48, 72, 144, 24, "Tschüss!" )

Repeat
  Event = WaitWindowEvent()
  EvGad = EventGadget()
  Select Event
    Case #PB_Event_CloseWindow
      EXIT = 1
    Case #PB_Event_Gadget
      Select EvGad
        Case #Button
          EXIT = 1
      EndSelect
  EndSelect
Until EXIT
Im VD kannst du einschalten, dass er den EventLoop mit erzeugt, weiß nicht genau wo, benutze den nicht.
der Code oben ist einfach direkt runtergeschrieben.

Re: Absoluter Ein- bzw. Umsteiger

Verfasst: 06.10.2009 17:56
von Deharrow
Hallo!

Wage mich mal an die Übersetzung meines Programmcodes von Profan.
Habe dazu eine kurze Frage wg. den Variablen:
In Profan gibt es Strings etc. (wie in PureBasic) die dort mit "$" am Ende gekennzeichnet werden.
In PB heißt die Endung ".s" - lt. der Hilfe kann man glaube ich aber auch "$" am Ende setzen.
Kann ich damit meine Stringvariablen dann auch so umsetzen wie z.B. Datei$ (denke mal schon).
Die anderen Variablenbezeichner aus Profan Integer (%), Longint (&), Floats (!) etc. müsste ich dann
dementsprechen mit .x bezeichnen - oder?

Gruß Jürgen

Re: Absoluter Ein- bzw. Umsteiger

Verfasst: 06.10.2009 18:03
von Andesdaf
schau dir mal das Kapitel "Variablen, Typen und Operatoren" in
der PureBasic-Hilfe (F1 im Editor) an.
Dort sollte alles stehen, was du brauchst.

Re: Absoluter Ein- bzw. Umsteiger

Verfasst: 06.10.2009 18:05
von ts-soft
Deharrow hat geschrieben: Die anderen Variablenbezeichner aus Profan Integer (%), Longint (&), Floats (!) etc. müsste ich dann
dementsprechen mit .x bezeichnen - oder?

Code: Alles auswählen

bla% = bla.i; kann in einzelfällen auch bla.l sein, spielt aber nur unter x64 eine Rolle
bla& = bla.q
bla! = bla.f
Strings würde ich auch übertragen, auch wenn $ erlaubt ist, es paßt einfach nicht :)

Code: Alles auswählen

bla$ = bla.s