Diskussionen und Krempel (alt: Verbesserungen Doku v4)

Fragen und Bugreports zur PureBasic 4.0-Beta.
RomanR
Beiträge: 23
Registriert: 21.04.2006 13:43
Wohnort: Eisenstadt

Beitrag von RomanR »

Einige Kapitel des Referenzhandbuches stehen nicht im Inhalt-Reiter. "Die PureBasic IDE" ist vorhanden, aber die anderen (Allgemeine Themen, Basic Schlüsselwörter, ...) sind nur erreichbar, wenn man das Referenz-Handbuch auswählt und auf der rechten Seite den entsprechenden Link anklickt.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

@Andre

ich weiß nicht mehr, ob dus schon aufm zettel hast:

das "mehr als 1x WaitWindowEvent()"-problem tritt so oft auf,
dass sollte evtl. mit in die Help....
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Kaeru Gaman hat geschrieben:ich weiß nicht mehr, ob dus schon aufm zettel hast:
nicht nur auf dem Zettel:
PB-Hilfe hat geschrieben:Pro Ereignisschleife darf nur einmal WaitWindowEvent() aufgerufen werden, da andernfalls Ereignisse "verloren" gehen (jedes Ereignis kann nur einmal ausgewertet werden und steht damit nach der ersten Verarbeitung nicht noch ein zweites Mal zur Verfügung).
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

aha... aber erst in der 4.0, gell?

...in der 3.94 isses wohl noch nich drin...


trotzdem... ich weiß ja nich, wo die leut dann gucken...

http://www.purebasic.fr/german/viewtopi ... 7639#87639
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> aha... aber erst in der 4.0, gell?

si

> ...in der 3.94 isses wohl noch nich drin...

jepp. Das ist hier aber auch ein Thread über "Verbesserungen an der Dokumentation für PureBasic v4"
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> jepp. Das ist hier aber auch ein Thread über "Verbesserungen an der Dokumentation für PureBasic v4"

tja, deshalb hab ichs hier ja reingeschrieben...

...ich mein, die frage kommt so oft...
und ich wußte halt nicht mehr, ob Andre das nu aufm zettel hatte oder nicht...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
ullmann
Beiträge: 205
Registriert: 28.10.2005 07:21

Beitrag von ullmann »

@Andre:

Im Kapital Prototypes sind Tippfehler im Beispiel:

Code: Alles auswählen

Beispiel: Mit Pseudotypes

  ; Wir verwenden den 'p-unicode' Pseudotype für die String Parameter, da
  ; MessageBoxW() eine nur unter Unicode verwendbare Funktion ist. Der Compiler
  ; wird - sofern notwendig - die Strings automatisch nach Unicode konvertieren.
  ;
  Prototype.l ProtoMessageBoxW(Window.l, Body.p-unicode, Title.p-unicode, Flags.l = 0)

  If OpenLibrary(0, "User32.dll")
   
    ; 'MsgBox' ist eine Variable mit einem 'ProtoMessageBox' Typ
    ;
    MsgBox.ProtoMessageBox = GetFunction(0, "MessageBoxW")
    
    MsgBox(0, "Hello", "World") ; wir geben keine Flags an
  EndIf
Es wird oben die Funktion ProtoMessageBoxW als Prototyp definiert, im Kommentar und in der Variablendefintion fehlt aber das W.

Richtig muss es heißen:

Code: Alles auswählen

Beispiel: Mit Pseudotypes

  ; Wir verwenden den 'p-unicode' Pseudotype für die String Parameter, da
  ; MessageBoxW() eine nur unter Unicode verwendbare Funktion ist. Der Compiler
  ; wird - sofern notwendig - die Strings automatisch nach Unicode konvertieren.
  ;
  Prototype.l ProtoMessageBoxW(Window.l, Body.p-unicode, Title.p-unicode, Flags.l = 0)

  If OpenLibrary(0, "User32.dll")
   
    ; 'MsgBox' ist eine Variable mit einem 'ProtoMessageBoxW' Typ
    ;
    MsgBox.ProtoMessageBoxW = GetFunction(0, "MessageBoxW")
    
    MsgBox(0, "Hello", "World") ; wir geben keine Flags an
  EndIf
Gruß Rainer
ullmann
Beiträge: 205
Registriert: 28.10.2005 07:21

Beitrag von ullmann »

@Andre:

Im Kapitel Import : EndImport verstehe ich das Beispiel nicht, vielleicht könnte die Hilfe das etwas verständlicher machen (ich weiß aber nicht wie, da ich es selber nicht verstehe):

Code: Alles auswählen

Import "User32.lib"
   
    ; Keine Notwendigkeit für die Verwendung von 'As' da PureBasic die Funktion
    ; korrekt dekoriert.
    ; Wir definieren die 'Flags' auch als optional, mit einem Standardwert 
    ; von 0 (wenn sie weggelassen werden).
    ;
    MessageBoxA(Window.l, Body$, Title$, Flags.l = 0)
    
    ; Diesmal findet PureBasic sie nicht allein, da der Funktionsname nicht
    ; der gleiche ist, wie der vom Funktionssymbol verwendete.
    ;
    MsgBox(Window.l, Body$, Title$, Flags.l) As "_MessageBoxA@16"
                                                   
  EndImport
  
  MessageBoxA(0, "Hello", "World") ; wir geben keine Flags an
  MsgBox(0, "Hello", "World 2", 0)
Wieso ist MessageBoxA korrekt "dekoriert" (ich würde deklariert übersetzen) und braucht kein "As", dagegen MsgBox nicht und braucht "As". Was ist ein Funktionssymbol? Woher weiß der Programmierer, dass er 16 bei "_MessageBoxA@16" zu schreiben hat? Ruft die importierte Funktion MsgBox die Lib-Funktion "_MessageBoxA" auf und muss deshalb wegen der unterschiedlichen Namen "As" angegeben werden? Wenn ja, sollte das vielleicht zum Verständnis in der Hilfe geschrieben sein?

Gruß Rainer
ullmann
Beiträge: 205
Registriert: 28.10.2005 07:21

Beitrag von ullmann »

Im Kapitel "Compilerfunktionen" ist der Link "Subsystem" noch nicht belegt.

Im Kapitel "Nützliche Internet-Links über PureBasic" ist der Link "PBDEV - PureBasic Developer" noch nicht belegt.

Gruß Rainer
ullmann
Beiträge: 205
Registriert: 28.10.2005 07:21

Beitrag von ullmann »

PureBasic kann mit Doubles (Fließkomma doppelter Genauigkeit) rechnen.

Wurde auch die Math-Lib auf doppelte Genauigkeit umgestellt? Falls ja, wäre die Angabe in der Hilfe Kapitel Math-Lib (Genauigkeit .f (Float)) zu korrigieren.

Falls nein: Müssen Doubles vor der Verwendung der Math-Lib in Floats konvertiert werden? Wie geht das?

Gruß Rainer
Gesperrt