JHRegistry_xxx Library aktualisiert für PB5.40

Anwendungen, Tools, Userlibs und anderes nützliches.

Brauchbarkeit der Lib

unbrauchbar (bitte sagen warum)
4
15%
geht so (auch das hat einen Grund ...)
4
15%
brauchbar, aber (das sollte immer Kommentiert sein)
5
19%
gut brauchbar (Blumen bei meiner Frau abgeben ...)
13
50%
 
Insgesamt abgegebene Stimmen: 26

Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Beitrag von sharkpeter »

So, neue Version Online:

- optionale Fehlerrückgabe
- 3 neue Funktionen

@TS,
es gibt wohl einige Funktionen, wo der Wert wirklich 0 annehmen kann oder
gar negativ ist. Soweit so gut. Mit dieser Version kann man die Fehlerrückgabe
entsprechend unterdrücken. Einfach das Flag weglassen oder auf 0 setzen.

Mit den Fehlern in eine eigene Variable geht nicht, das wird nach der Wandlung
in eine Lib unterbunden, egal wo du die Variable auf Global stellst.

Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
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 »

sharkpeter hat geschrieben: Mit den Fehlern in eine eigene Variable geht nicht, das wird nach der Wandlung
in eine Lib unterbunden, egal wo du die Variable auf Global stellst.

Gruß Jens
Wieviele Libs soll ich aufzählen, die es so machen :mrgreen:
Zum Beispiel SQLite3 von Kiffi. Hier ein Beispielcode, der geht mit Tailbite

Code: Alles auswählen

Enumeration ; Error
  #Error_OK ; 0
  #Error_Schwachsinn
EndEnumeration

Global FehlerMeldung.s
Global FehlerNummer.l

ProcedureDLL.s GetMyLastErrorMsg()
  ProcedureReturn FehlerMeldung
EndProcedure

ProcedureDLL GetMyLastErrorNr()
  ProcedureReturn FehlerNummer
EndProcedure

ProcedureDLL Bla()
  FehlerMeldung = ""
  FehlerNummer = 0
  ; Code
  If Error
    FehlerMeldung = "So ein schwachsinn"
    FehlerNummer = #Error_Schwachsinn
  EndIf
EndProcedure
Aber nur ohne UNICODE

Gruß
Thomas
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
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Beitrag von sharkpeter »

@TS,
und hast du es selber mal ausprobiert? Nein?

Wenn doch so hättest du merken müssen, das egal wo du die "Fehler"
als globale Variable deklarierst deren Inhalt nicht zurückgegeben wird.

Dabei ist es vollkommen egal, ob du innerhalb der Lib die Variablen Global
setzt, dies außerhalb tust oder ob du hingehst und sagst, OK, ich mache die
in meinem eigenen Code Global und innerhalb der Procedure wird sie
beschrieben mit dem entsprechenden Inhalt.

Am besten kannst du das sehen, wenn du eine Variable als String deklarierst.
Er wird nach der Abfrage Leer sein.

Und das mit den Konstanten kannst du offenbar auch knicken.

Und zu Unicode, zum Glück geht das mit TB noch nicht, sonst hätte ich ja
noch mehr Arbeit :roll:

Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
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 »

Funktioniert einwandfrei:
Hier der Code zum Testen:

Code: Alles auswählen

Enumeration ; Error
  #Error_OK ; 0
  #Error_Schwachsinn
EndEnumeration

Global FehlerMeldung.s
Global FehlerNummer.l

ProcedureDLL.s GetMyLastErrorMsg()
  ProcedureReturn FehlerMeldung
EndProcedure

ProcedureDLL GetMyLastErrorNr()
  ProcedureReturn FehlerNummer
EndProcedure

ProcedureDLL Bla()
  FehlerMeldung = "Hallo Jens"
  FehlerNummer = 0
  ; Code
  If Error
    FehlerMeldung = "So ein schwachsinn"
    FehlerNummer = #Error_Schwachsinn
  EndIf
EndProcedure
Speichern und TailBiten
anschließend:

Code: Alles auswählen

Bla()
Debug GetMyLastErrorMsg()
und der Debugger sagt:
PureBasic-Debugger hat geschrieben:Hallo Jens
:mrgreen:
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
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 »

>> Und zu Unicode, zum Glück geht das mit TB noch nicht
Aber man kann sich behelfen, wie ich bereits mehrmals gepostet habe, so
das die Lib auch unter Unicode zumindestens die ASCII-Zeichen zurückgibt.

Ich hab im moment nur ein Projekt, das ist UNICODE, deswegen nutze ich
auch überwiegend Include-Dateien, weil UserLibs im moment unsinnig sind.
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
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Beitrag von sharkpeter »

@TS,

so habe ich es noch nicht probiert. Aber so hast du recht.

Also wird die Lib bzw. alles was dort deklariert ist in sich als geschlossenes
System behandelt. Abgesehen von den Procedure Rückgaben dringt nichts
nach außen.

Hättest du doch gleich sagen können :D, (lache mich gerade tot nebenher.)

So, nun hast du gewonnen und bekommst die Lib demnächst mit den einzelnen
Sachen, Rückgabe und Fehler separat. Scheiße, jetzt habe ich doch wieder
Arbeit am Hals und ich wollte mal mit anderen Sachen weitermachen.

Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
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 »

sharkpeter hat geschrieben: Also wird die Lib bzw. alles was dort deklariert ist in sich als geschlossenes
System behandelt. Abgesehen von den Procedure Rückgaben dringt nichts
nach außen.

Hättest du doch gleich sagen können :D, (lache mich gerade tot nebenher
Das ist der größte Vorteil von UserLibs, sie haben einen eigenen globalen
Scope. Wenn Du das nicht wußtest, wozu dann UserLibs? Nur wegen der
Syntaxvorschau :lol:

Alle was in einer UserLib global deklaiert wird, ist auch nur dort gültig, wie bei
normalen DLLs auch. Nur was Du exportierst per ProcedureDLL ist für den
Anwender unmittelbar erreichbar.

Diese Tatsache ist z.B. sehr wichtig für OOP, weil ansonsten ja eine echte
Kapselung in PB nicht möglich ist.

Gruß
Thomas
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
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Beitrag von sharkpeter »

@TS,
nein, zugegeben das habe ich nicht gewußt. :oops: aber geahnt. Aber diese
Tatsache steht in meiner Unterschrift :allright:

Die Syntaxvorschau hast du auch schon wenn du nur ProcedureDLL xyz()
schreibst, also das war es nicht.

Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Beitrag von sharkpeter »

@TS,

es ist vollbracht. Fehlermeldung getrennt von den Rückgaben.

@All
Update auf Version 2.02
- getrennte Fehlermeldung
- englische Hilfe (im deutschen File)

Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Beitrag von sharkpeter »

Update auf Version 2.03

- drei neue Funktionen (u.a. Shortcut erstellen)
- Hilfe gegliedert in Kapitel

Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
Antworten