Diskussionen und Krempel (alt: Verbesserungen Doku v4)

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

ullmann hat geschrieben: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?
Antwort von Fred:
if a double is involved, it switch automatically to the double function.
Bedeutet also, dass bei Verwendung eines Double-Werts automatisch eine entsprechende Double-Ausgabe der Math-Lib-Funktion genutzt wird.

Ein Beispiel von mir, welches die Verwendung von Doubles darstellt:

Code: Alles auswählen

Value.d = 2.342452554458946
Result.d = Cos(Value)

Debug Value
Debug Result
Werde also die Hilfe dementsprechend anpassen.


Sollte jemand Inkompatiblitäten der Math-Lib in Verbindung mit Doubles feststellen, dann bitte entsprechendes Code-Beispiel als Bug-Report posten.
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Toshy
Beiträge: 713
Registriert: 22.03.2005 00:29
Computerausstattung: Computer und Strom vorhanden
Wohnort: LK Wolfenbüttel

Beitrag von Toshy »

Hallo Andre,

in der Hilfedatei könntest du bei der Beschreibung von
ForEach : Next
Vielleicht folgenden leicht erweiterten Text einbauen
ForEach durchläuft alle Elemente der angegebenen verknüpften Liste
'LinkedList', beginnend beim ersten Element bis zum letzten Element. Ist die
Liste leer, wird die ForEach : Next Schleife umgehend abgebrochen. Um alle
Befehle zur Verwaltung von verknüpften Listen anzusehen, klicken Sie hier.

Da der Durchlauf erst dann beendet ist, sobald das von der Position her
letzte Element erreicht ist (nicht von der Anzahl her), dürfen während des
Durchlaufs problemlos Elemente gelöscht oder hinzugefügt werden. Ebenso darf
mit ChangeCurrentElement() auch das aktuelle Element geändert werden.
Nach einer der genannten Änderungen wird der nächste Schleifendurchlauf an dem auf das aktuelle Element folgende Element fortgesetzt.

Mit dem Break Befehl kann die ForEach : Next Schleife (vorzeitig) verlassen
werden, mit dem Continue Befehl kann das Ende des aktuellen
Schleifendurchlaufs übersprungen werden.
Der Mittelteil ist neu von mir und vielleicht für den ein und anderen Interssant. Habe das gerade eben getestet und für mich sehr nützlich. Ein ein schöner Vorteil der ForEach-Next-Schleife.
Habe einige Zeit über den Text gegrübelt, sollte so aber korrekt sein. Tipps bei der Rechtschreibung und Zeichensetzung nehme ich aber gerne an, das ist nicht so meine Stärke.

Und noch als Hinweis, bei den Netzwerkfunktionen sollte man Vielleicht mal die Begriffe Client, ClientID und Verbundung vereinheitlichen. Wenn ein Programmiererneuling nun auf der Serverseite mit eventClient() den "Client" erhält und die Verbindung serverseitig beenden will, so findet er bei CloseNetworkConnection() nur die Angabe "Verbindung" und wird dann verunsichert ob das der selbe Wert ist.

Bei ConnectionID() würde es wohl besser gleich so lauten
Gibt den eindeutigen Systembezeichner (Socket) der 'Verbindung' zurück.

Diese Ergebnis ist manchmal auch als 'Handle' bekannt. Schauen Sie in das Extra-Kapitel Handles und Nummern für weitere Informationen.
SelectElement()
hier sollte man korrekter Weise folgendes schreiben
Wechselt vom aktuellen Listen-Element zum Element an der angegebenen 'Position'. Das erste Element befindet sich an Position 0, das nächste an 1 und so weiter. Dies ist sehr nützlich, wenn Sie an eine bestimmte Position innerhalb der Liste gehen wollen, ohne dafür eine eigene Schleife einzubauen. Da LinkedLists keinen Index verwenden wird allerdings zwangsweise bis zu der Zielposition jedes Element schrittweise angesprungen. Ist man auf eine schnellere Methode angewiesen, sollte man ChangeCurrentElement() nutzen.
Gruß
Toshy
1. Win10
PB6.1
ullmann
Beiträge: 205
Registriert: 28.10.2005 07:21

Beitrag von ullmann »

In der Hilfe sollte auch stehen, dass bei dem Text eines Button-Gadgets ein Zeichen unterstrichen werden kann, wenn ihm ein "&" vorangestellt wird.

Gruß Rainer
Sven
Beiträge: 374
Registriert: 23.09.2004 12:01

Beitrag von Sven »

>>In der Hilfe sollte auch stehen, dass bei dem Text eines Button-Gadgets ein Zeichen unterstrichen werden kann, wenn ihm ein "&" vorangestellt wird.

Dann aber auch, dass damit nicht automatisch das Tastenkürzel zugewiesen wird wie bei Menus (Alt+Zeichen), sondern dass man das über AddKeyboardShortcut selber machen muss. Und dass die Markierung bei WinXP nur angezeigt wird, wenn bei Anzeige => Darstellung => Effekte => Unterstrichene Buchstaben ausblenden nicht markiert ist (sonst kann man sich dusselig suchen, warum das nicht geht).

Sven
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

Weiterer kurzer Zwischenbericht:

Die Gadget Lib hat eine erweiterte Einleitung bekommen - und zwar mit Links zu OpenWindow() und den Toolbar, Menu und Statusbar Libs.

Außerdem mit den oft gewünschten Preview-Pics zu allen verfügbaren Gadgets. :D
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

:allright:
Bild
Win11 Pro 64-Bit, PB_6.11b1
heinz.goldbach
Beiträge: 93
Registriert: 16.11.2005 18:27
Wohnort: Neuss

Beitrag von heinz.goldbach »

Hallo,

für die Anwendung von Unicode in PB sollte ein Beispiel in der Hilfe sein oder direkt im Examples Verzeichnis. Ich brauche zwar kein Unicode, wollte es mir aber mal anschauen. Die Hilfe mit den Links hat mir nicht so richtig weitergeholfen.
---------------------------------------------------
Man lernt nur aus Fehlern!
Sven
Beiträge: 374
Registriert: 23.09.2004 12:01

Beitrag von Sven »

>>Unicode ... Die Hilfe mit den Links hat mir nicht so richtig weitergeholfen.

Kann ich so bestätigen, ich hab da auch nicht durchgesehen, wie das mit den Unicodes nun geht.

Sven
Benutzeravatar
mardanny71
Beiträge: 266
Registriert: 05.03.2005 01:15
Wohnort: Thüringen

Beispielcode WriteData()

Beitrag von mardanny71 »

Hallo!

Die Hilfe sieht schon sehr gut aus. :allright:

@Andre' - das kennst Du sicher noch.
Damit es nicht verloren geht poste ich es nochmal.(hoffentlich noch rechtzeitig)

Das Beisspiel für WriteData() funktioniert nicht:

Code: Alles auswählen

*MemoryID = AllocateMemory(1000)       ; reservieren eines Speicherblocks
  If *MemoryID
    PokeS(*MemoryID, "Store this string in the memory area")   ; wir schreiben einen String in den Speicherblock
  EndIf
  If CreateFile(0, "Text.txt")           ; wir erstellen eine neue Text-Datei...
    WriteData(0, PeekS(*MemoryID), 10)   ; die ersten 10 Zeichen des Speicherblocks in die Datei schreiben
    CloseFile(0)                         ; die zuvor geöffnete Datei schließen und damit die geschriebenen Daten endgültig speichern
  Else
    Debug "Konnte die Datei nicht erstellen!"
  EndIf
Das ginge mit WriteString()

Laufen würde es auch ohne PeeS()

Code: Alles auswählen


*MemoryID = AllocateMemory(1000)       ; reservieren eines Speicherblocks
  If *MemoryID
    PokeS(*MemoryID, "Store this string in the memory area")   ; wir schreiben einen String in den Speicherblock
  EndIf
  If CreateFile(0, "Text.txt")           ; wir erstellen eine neue Text-Datei...
    WriteData(0, *MemoryID, 10)   ; die ersten 10 Zeichen des Speicherblocks in die Datei schreiben
    CloseFile(0)                         ; die zuvor geöffnete Datei schließen und damit die geschriebenen Daten endgültig speichern
  Else
    Debug "Konnte die Datei nicht erstellen!"
  EndIf

Grüsse an alle
mardanny71
Gruß, mardanny71
Windows 7 - openSUSE 12.1 - KDE 4.7 - PB4.6 beta 4
Toshy
Beiträge: 713
Registriert: 22.03.2005 00:29
Computerausstattung: Computer und Strom vorhanden
Wohnort: LK Wolfenbüttel

Beitrag von Toshy »

Hallo Andre,

schau doch mal hier nach:
http://www.purebasic.fr/german/viewtopi ... highlight=

Da stimmt glaube ich was mit der Erklärung der Prototyps nicht.
Ich kenne mich selber mit diesen noch nicht aus, daher (noch) kein genauer Vorschlag von mir den du übernehmen könntest.

Gruß
Toshy
1. Win10
PB6.1
Gesperrt