Seite 3 von 4

Re: PureBasic 4.40 final released

Verfasst: 05.12.2009 19:14
von Kurzer
Da ich auch beruflich mit Programmierung und Programmierern zu tun habe, gebe ich Dir absolut Recht, Edel.
In vielen Fällen, z.B. bei großen Teamprojekten ist man mit den "fetten Teilen" (RADs) besser bedient.

Allerdings sagte mir PureBasic im Hinblick auf diese Eigenschaft sehr zu (Größe der Exe, kein Framework) und es war ein Hauptargument mich dafür zu entscheiden.

Vermutlich brauche ich das als Ausgleich, weil ich im Job durch diese MB-Monster total versaut werde. :lol:

Re: PureBasic 4.40 final released

Verfasst: 06.12.2009 07:40
von Pelagio
Erst einmal :bounce: das PB4.40 das Licht der Welt erblickt hat,

es sind interessante Neuerungen eingeflossen mit denen, ich wenigstens, sehr gut Arbeiten werden können aber wie immer, wenn man intensiver mit einer Sache sich beschäftigt, findet man etwas was verbessert werden könnte.
Mir ist jetzt, da ich intensiver mit PB4.40 mich beschäftige etwas aufgefallen, mit dem man zwar leben kann aber von der Logik wäre es besser dies über kurz oder lang zu ändern.
Wenn ich einen Text mit DrawText drucken will so muss ich grundsätzlich die Hinter- und Vordergrundfarbe mit angeben (#Black, #White) da ansonsten ich nur eine schwarze Box ausgedruckt bekomme. Bei DrawRotatedText wird ohne die Farben der Text korrekt ausgedruckt. Ich bin der Meinung das auch DrawText einen Ausdruck korrekt auf Normalpapier (schwarze Schrift auf weißem [Transparenten] Hintergrund) zeichnen sollte ohne die zusätzlichen Farbinformationen.
Zum besseren Verständnis:

Code: Alles auswählen

If PrintRequester()
   If StartPrinting("PureBasic Test")
      PrintFont.l = LoadFont(0, "Arial", 60)
      DC.l = StartDrawing(PrinterOutput())
      Printtext.s = "PureBasic Printer Test 1" + Space(4) + "PureBasic Printer Test 2"
      If DC  
      	DrawingFont(PrintFont)
      	DrawRotatedText(100, 100, PrintText, 0)
         DrawText(100, 200, Printtext)
         DrawText(100, 300, Printtext, #Black, #White)
         StopDrawing()
      EndIf
      StopPrinting()
   EndIf
EndIf

Re: PureBasic 4.40 final released

Verfasst: 06.12.2009 11:19
von rolaf
Also auch von mir erst mal herzlichen Dank für die neue Version. Die ersten Eindrücke sind fantastisch. :allright:

Jetzt müßte meiner Meinung mal der absolut nicht mehr passende VD einer Operation unterzogen werden. Dann erübrigt sich zumindest teilweise die Diskussion über PB und den "NET-Datenmonstern". :mrgreen:

Re: PureBasic 4.40 final released

Verfasst: 06.12.2009 13:55
von Macros
Was will ich mit einem Visual Designer?
damit kann man nie so schöne Sachen machen wie folgendes:

Code: Alles auswählen

ForEach spieler()
  pos=ListIndex(spieler())+1
  a=0
  StringGadget(pos*100+a,55+pos*100,15+a*30,90,25,"Spieler"+Str(pos))
  For a=1 To 14
    StringGadget(pos*100+a,55+pos*100,15+a*30,90,25,"",#PB_String_ReadOnly)
  Next
Next
Und aus eigener Erfahrung kann ich sagen: PB ist durchaus für größere Projekte geeignet,
zumindest bis 50k Zeilen, wobei die Angabe Schwachsinn ist, denn in C++ sind das gute 100k :wink:
Beispiel (grobe Schätzung) 10.000 Zeilen: Ein Prüfstand, der gleichzeitig mit Kamera über Ethernet, Motor über K-Line und Can Interface arbeitet,
nebenbei noch eine Parallele Schnittstelle abfragt (Notaus und andere Knöpfe) , Reihenfolge und Parameter der Prüfschritte konfigurierbar, Arbeiterebene, Konfigurationsebene, Normen der Kamera... Alles mögliche
Läuft tadellos und der Auftraggeber ist zufrieden. Den Code konnte ich zu 50% runterschreiben, das hätte mich bei C++/Java schon deutlich mehr Zeit gekostet.
Und die resultierende Executable hat 14.5 KB, einfach nur geil ^^

Re: PureBasic 4.40 final released

Verfasst: 06.12.2009 14:01
von Andesdaf
wie lange sollen eigentlich noch 'CountList', 'CreateGadgetList' und andere bei PB 4.30
herausgenommene Befehle gültig sein, sodass man sie noch in seinem Code verwenden
kann?

Re: PureBasic 4.40 final released

Verfasst: 06.12.2009 14:12
von roherter
Immer noch Avira Virus Meldung beim compilieren

TR/Crypt.ZPACK.Gen
:roll: :roll: :roll:

Re: PureBasic 4.40 final released

Verfasst: 06.12.2009 14:19
von ts-soft
roherter hat geschrieben:Immer noch Avira Virus Meldung beim compilieren

TR/Crypt.ZPACK.Gen
:roll: :roll: :roll:
Und warum meldest es hier und nicht bei AVIRA? Schließlich sind die für Ihre
Programme verantwortlich. Hier, die URL, die Du wahrscheinlich auswählen
wolltest: http://analysis.avira.com/samples/index.php

Re: PureBasic 4.40 final released

Verfasst: 06.12.2009 14:31
von rolaf
Macros hat geschrieben:Was will ich mit einem Visual Designer?
damit kann man nie so schöne Sachen machen wie folgendes:

Code: Alles auswählen

ForEach spieler()
  pos=ListIndex(spieler())+1
  a=0
  StringGadget(pos*100+a,55+pos*100,15+a*30,90,25,"Spieler"+Str(pos))
  For a=1 To 14
    StringGadget(pos*100+a,55+pos*100,15+a*30,90,25,"",#PB_String_ReadOnly)
  Next
Next
Jo und, nimmt dir doch keiner? :freak: Kannst auch auf dem Klo vorher die Brille komplett hochklappen und auf der nackten Schüssel hocken. Deshalb ist die Klobrille dennoch sinnvoll. <)

Re: PureBasic 4.40 final released

Verfasst: 06.12.2009 14:35
von Kiffi
Macros hat geschrieben:Was will ich mit einem Visual Designer?
damit kann man nie so schöne Sachen machen wie folgendes:

Code: Alles auswählen

ForEach spieler()
  pos=ListIndex(spieler())+1
  a=0
  StringGadget(pos*100+a,55+pos*100,15+a*30,90,25,"Spieler"+Str(pos))
  For a=1 To 14
    StringGadget(pos*100+a,55+pos*100,15+a*30,90,25,"",#PB_String_ReadOnly)
  Next
Next
für solche Listendarstellungen ist PB freilich sehr gut geeignet.
(übrigens verdaddelst Du in Deinem Beispiel ne Menge Speicher ;-)).

Wenn es aber um die umfangreiche & individuelle Positionierung und
Verwaltung von Gadgets geht, dann fangen die Fingerkuppen recht
schnell an zu bluten, weil man über die Maßen viel Tipparbeit leisten
muss.

Ich habe mal ganz willkürlich eine GUI rausgesucht, die nicht mal
'so eben' erstellt ist:

http://www.tobias-schwarz.net/webalizer_gui.html

Ein VD in Zusammenhang mit einem schicken Eventhandling (a la EasyVENT)
wäre schon der Kracher. Leider ist zumindest der feature request
nach einem alternativen nativen Eventhandling von Fred abgebügelt worden.

http://www.purebasic.fr/english/viewtop ... =3&t=39805

Grüße ... Kiffi

Re: PureBasic 4.40 final released

Verfasst: 06.12.2009 14:59
von Macros
Wieso verdaddle ich Speicher?
Das ist mir nicht ganz klar.

Ich bin es inzwischen so gewohnt mit PB Methoden Oberflächen zu erstellen, mir gehen Visual Designer auf den Geist ;)
Wenn ich da jetzt die großen Vorteile nennen will, wirds etwa ausführlicher.
Aber stell dir vor, du hats eine Reihe von Tests für den Prüfstand (oben erwähnt) Und bei jedem muss der Test Testparameter festlegen.
Mit PB war es für mich ein Klacks, auf dem Fenster in einem bestimmten Bereich, je nachdem welcher Test ausgewählt wird,
eine Reihe von Gadgets anzuzeigen und mit Werten zu füllen/Die Werte zu speichern.

Zur Oberfläche die du gezeigt hast als Beispiel:

Code: Alles auswählen

Gadget$="12-Monats-Statistik|URLs|Suchworte,|Monatliche Statistik|Hosts|Referrer|Tägliche Statistik|"
Gadget$+"Eingangsseiten|User-Namen|Stündliche Statistik|Ausgangsdaten|User Agents"
For a=1 To 3
  For b=0 To 3
    ButtonGadget(a+b*3,5+(a-1)*150,5+b*40,140,35,StringField(Gadget$,a+b*3,"|"))
  Next
Next

Und das tippe ich schneller als einer VD die Gadgets hinklickt.
Ebenso fülle ich die Panels, nur ein paar Elemente muss ich wirklich einzeln eintippen.