PureBasic 4.00 Beta1 released!

Ankündigungen PureBasic oder die Community betreffend.
Benutzeravatar
Didelphodon
Beiträge: 360
Registriert: 18.12.2004 13:03
Wohnort: Wien
Kontaktdaten:

Beitrag von Didelphodon »

Frage: Wer schreibt eine Konverter, um alte Sourcen zu korrigieren?????????????????!!!!!!!! :roll:

Schnelles Handeln ist gefragt!!!!

LG Didel.
Das Leben ist ein sch*** Spiel, aber die Grafik ist irre!
Fighting for peace is like fuc*ing for virginity!
freak
PureBasic Team
Beiträge: 766
Registriert: 29.08.2004 00:20
Wohnort: Stuttgart

Beitrag von freak »

Meine Güte, diese Threads wachsen schneller als ich lesen kann :)

> changed: ActivateGadget(#Gadget) is now SetActiveGadget(#Gadget)
> Welcher Sinn steckt dahinter?

Es gibt jetzt auch ein GetActiveGadget() was das Gegenstück dazu ist. Hat also Sinn gemacht
ActivateGadget() umzubennenen, weil es bei den anderen Befehlen auch immer Get...() und Set...() heist.

Die umbenannten Befehle haben entweder früher keinen echten Sinn gemacht,
passen nicht zu anderen neuen Befehlen, oder machen sonst irgendwie im größeren Zusammenhang keinen Sinn.

Zum Beispiel wurde IsFunction() zu GetFunction(), weil alle anderen Is...() funktionen
überprüfen ob ein PB Objekt (Image, Gadget, Window) existiert oder nicht, nur die eine Funktion tut nichts in der Art.

So gibt es zu jeder Änderung irgend einen Sinn, manchmal sieht man ihn aber nur in einem größeren Zusammenhang.

Zum Thema Threadsafety:

Wenn man die Option in den Compileroptionen nicht aktiviert hat man im Prinzip
das Gleiche wie in PB 3.94 was die Sicherheit angeht.
D.h. Strings sind unsicher und alle komplexeren PB Funktionen werden wohl auch Probleme machen.
(sprich wenn man mit Mutex arbeitet um Strings zu schützen und aufpasst
was man macht kann man ohne diese Option auch threads verwenden)

Die threadsafe Option macht die Strings threadsicher und auch alle PB Befehle.
Das heist man kann im Thread viel mehr machen ohne sich Sorgen machen zu müssen)
Das hat aber Auswirkungen auf die Geschwindigkeit der Funktionen und Strings, desshalb
sollte man das nur verwenden wenn man auch wirklich einen Thread braucht.

Die PB Mutex befehle verwenden übrigens Critical Sections unter Windows.


Zum Thema Assembly code mit !

Das wurde ja viel verwendet für kleinere asm Prozeduren und so. Durch die
Optimierung des Asm codes für Prozeduren funktionieren diese codes aber
alle nicht mehr.
Der compiler generiert jetzt für jede lokale Variable ein asm macro über das
man die Variablem im asm code von jetzt an ansprechen kann.

Für die lokale Variable Nummer gibt es also in der Prozedur ein p.v_Nummer,
das dem esp+XX also der Position der Variable auf dem Stack entspricht.
mit "mov eax, dword [p.v_Nummer]" kann man also auf die Variable zugreifen.
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 »

benny hat geschrieben:
hallodri hat geschrieben:

Code: Alles auswählen

Macro AnotherMacro
  UCase
EndMacro

Macro NewWorld(a=1, b=2, c="Test")
  a#b#er("FAST", AnotherMacro(c))
EndMacro

NewWorld(Message,Request)

; The '#' puts together the 2 parts in one word. So a#b#er becomes MessageRequester when you pass
; Message for a and Request for b.

; The assigning of the values to a and b is only to demonstrate
; the ability for optional parameters. It does not make sense in this example really, as
; NewWorld() would become:

12er("FAST", UCase("Haha"))

Kann mir das mal jemand erklaeren ?
Was genau verstehst Du daran nicht :?:

Hier mal ein einfacheres Beispiel :

Code: Alles auswählen

Macro test(a=1, b=1)
  a#b "Hallo Hallodri"
EndMacro

test(de,bug) 
beim letzten Codebeispiel verstehe ich leider auch nix. Muss da jetzt ...(de,bug) stehen? Ich habe mal mit was anderen probiert und erhalte einen Syntax error in der Zeile. Also einfach mal test(kein,bug) gemacht.
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Falko hat geschrieben:

Code: Alles auswählen

Macro test(a=1, b=1)
  a#b "Hallo Hallodri"
EndMacro

test(de,bug) 
beim letzten Codebeispiel verstehe ich leider auch nix. Muss da jetzt ...(de,bug) stehen? Ich habe mal mit was anderen probiert und erhalte einen Syntax error in der Zeile. Also einfach mal test(kein,bug) gemacht.
Ich hab es mir inzwischen erklären lassen.
Das a#b bewirkt das die beiden Parameter (De und Bug) zusammengeführt werden, so das überhaupt eine Ausgabe erfolgt, nämlich durch Debug :wink:
Lustige und nützliche Sache

Das Makro erzeugt also

Code: Alles auswählen

Debug "Hallo Hallodri"
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
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 »

Thomas ich danke dir. Jetzt habe ich es verstanden. Ich habe mich zu
sehr von den obigen Parametern irritieren lassen. Das hat mich etwas
irrtiert. Aber jetzt ist alles klar.

Nochmals vielen Dank Thomas ;)

MfG Falko :allright:
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Ich bin schon seit Stunden am kämpfen, alles zu verstehen, aber macht
Spaß, weil es alles Sachen sind, die ich schon immer haben wollte :D
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
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 »

ts-soft hat geschrieben:Ich bin schon seit Stunden am kämpfen, alles zu verstehen, aber macht
Spaß, weil es alles Sachen sind, die ich schon immer haben wollte :D
Du das geht mir genauso. Ich hatte zwar erhofft für mein Voltcraft AD-USB 4 Modul dessen OCX eine Möglichkeit in der PB zu haben, und suche
schon eine ganze Zeit in den tollen neuen Funktionen hindurch.

Du hast Recht, es macht jetzt richtig Spass alles auszuprobieren. Zwar komme ich durch die Vielfalt nicht auch mein Ergebnis, aber die Macrofunktion ist schon mal eine super Sache.

Klappt jetzt prima mit Macro :allright: .

Code: Alles auswählen

Macro test(a=1, b=1) 
  a#b ("Deine Nachricht","Hallo Hallodri") 
EndMacro 

test(message,requester) 
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
otto
Beiträge: 20
Registriert: 27.09.2005 00:09

Beitrag von otto »

Gratulation und Vielen Dank

für die umfangreiche Erweiterung
durch ein weiteres kostenloses Update.
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Beitrag von Kukulkan »

Huiiii....

Da ist ja ein tolles 'Update' draus geworden. :allright:

Ich finde die Namensänderungen der Befehle sehr gelungen und absolut fällig. Natürlich muss man jetzt umlernen, aber die neuen Namen sind einfach eindeutiger und logischer. Im neuen Syntax macht PB einen viel professionelleren Eindruck. Es wirkt nun sehr durchdacht.

Mir persönlich gefällt das mit den unbegrenzt langen Strings, schnellen File-Befehlen und erweitertem Select-Case am besten. Auch die neuen Datentypen gefallen mir (Doubles und Quads). So wird sicher jeder etwas finden, was er lange vermisst hat. Mit PB V4 macht PureBasic einen grossen Schritt nach vorne. Gratulation an Fred!

Volker

PS. Evtl. nimmt jemand Didelphodons aufruf Ernst und schreibt einen einfachen Converter um die Fleißarbeit zu reduzieren? Mit ein paar durchdachten FindString()- und ReplaceString()-Befehlen ist ja schon vieles (natürlich nicht alles) gegangen.
strgalt
Beiträge: 63
Registriert: 30.08.2004 23:25

Beitrag von strgalt »

Morgen,

gute Arbeit :allright:

Dann noch eine Frage:
Wann wird die Database- Lib angepasst: GetDatabaseDouble und GetDatabaseQuade ?
Wer lesen kann, ist klar im Vorteil

MfG
strgalt
Antworten