codeschnippsel erwünscht, da Examples nicht funktionieren
codeschnippsel erwünscht, da Examples nicht funktionieren
Hallo zusammen
als Anfänger in PureBasic habe ich mir erst einmal die Beispiele vorgenommen. Leider funktionieren einige nicht. Library, falsche Parameter bei MessageBox, print, nur schwarze Balken, etc.
Kurz zu dem was ich machen möchte:
Windows 7 bietet die Möglichkeit, aus einer VHD Datei zu booten. Ich möchte eine kleine Anwendung schreiben, welche den Benutzer fragt, wie der Booteintrag im Bootloader heissen soll und sich mit Hilfe der Filesystemfunktionen auf die VHD Datei zu positionieren und diese auszuwählen. Den generierten Eintrag im BCD möchte ich dann ausdrucken können. Der Rest ist dann simpel.
Das heisst, ich benötige einige Codeschnippsel
1. Filesystem, positionieren und auswählen einer Datei aus diversen angeschlossenen Festplatten
2. Ausgeben auf einem ausgewählten Drucker
wenn ich zuviel verlange, dann bitte diesen Beitrag ignorieren.
Das fertige Programm werde ich gerne mit Source einstellen, wenn daran Interesse besteht.
LG
Peter
als Anfänger in PureBasic habe ich mir erst einmal die Beispiele vorgenommen. Leider funktionieren einige nicht. Library, falsche Parameter bei MessageBox, print, nur schwarze Balken, etc.
Kurz zu dem was ich machen möchte:
Windows 7 bietet die Möglichkeit, aus einer VHD Datei zu booten. Ich möchte eine kleine Anwendung schreiben, welche den Benutzer fragt, wie der Booteintrag im Bootloader heissen soll und sich mit Hilfe der Filesystemfunktionen auf die VHD Datei zu positionieren und diese auszuwählen. Den generierten Eintrag im BCD möchte ich dann ausdrucken können. Der Rest ist dann simpel.
Das heisst, ich benötige einige Codeschnippsel
1. Filesystem, positionieren und auswählen einer Datei aus diversen angeschlossenen Festplatten
2. Ausgeben auf einem ausgewählten Drucker
wenn ich zuviel verlange, dann bitte diesen Beitrag ignorieren.
Das fertige Programm werde ich gerne mit Source einstellen, wenn daran Interesse besteht.
LG
Peter
Re: codeschnippsel erwünscht, da Examples nicht funktionieren
Meinst Du die Beispielprogramme die im Lieferumfang von PB enthalten sind? Welche Version?pjascii hat geschrieben:als Anfänger in PureBasic habe ich mir erst einmal die Beispiele vorgenommen. Leider funktionieren einige nicht. Library, falsche Parameter bei MessageBox, print, nur schwarze Balken, etc.
Wenn das die aktuelle PB-Version 4.41 RC 1 betrifft, solltest Du das im (am besten englischen) Bug-Forum melden.
Ich würde zunächst eine Liste aller verfügbaren Laufwerke erzeugen, die mich interessieren:pjascii hat geschrieben:Das heisst, ich benötige einige Codeschnippsel
1. Filesystem, positionieren und auswählen einer Datei aus diversen angeschlossenen Festplatten
Code: Alles auswählen
; PB 4.40
EnableExplicit
Procedure GetDrives (List Drive$())
; Liefert eine Liste aller angeschlossenen Laufwerke,
; die den gewählten Typen entsprechen.
Protected i, d$
For i = 'A' To 'Z'
d$ = Chr(i) + ":"
Select GetDriveType_(d$)
Case #DRIVE_FIXED, #DRIVE_REMOVABLE, #DRIVE_REMOTE, #DRIVE_RAMDISK
AddElement(Drive$())
Drive$() = d$
; Nur zur Information, wird hier nicht benutzt:
Case #DRIVE_CDROM
; The drive is a CD or DVD drive.
Case #DRIVE_UNKNOWN
; The drive type cannot be determined.
Case #DRIVE_NO_ROOT_DIR
; The root path is invalid.
EndSelect
Next
EndProcedure
;-- Demo
NewList Drive$()
GetDrives(Drive$())
ForEach Drive$()
Debug Drive$()
Next
Ich kann bestätigen, dass unter Windows XP mit PB 4.41 RC 1 das mitgeliferte Beispielprogramm Printer.pb nur schwarze und graue Balken ausgibt. Ich weiß leider nicht woran das liegt und wie es richtig geht.pjascii hat geschrieben:2. Ausgeben auf einem ausgewählten Drucker
Gruß, Little John
- Pelagio
- Beiträge: 424
- Registriert: 11.11.2004 17:52
- Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem - Wohnort: Bremen
Re: codeschnippsel erwünscht, da Examples nicht funktionieren
Das liegt daran das seit PB4.4 bei DrawText unbedingt die Farbe dazugeschrieben weden muss ansonsten schreibt DrawText Schwarz auf SchwarzLittle John hat geschrieben:
Ich kann bestätigen, dass unter Windows XP mit PB 4.41 RC 1 das mitgeliferte Beispielprogramm Printer.pb nur schwarze und graue Balken ausgibt. Ich weiß leider nicht woran das liegt und wie es richtig geht.
Code: Alles auswählen
DrawText(100, 400, "PureBasic Printer Test 2", #Black, #White)
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win11Pro; PB6.20 LTS].
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win11Pro; PB6.20 LTS].

Re: codeschnippsel erwünscht, da Examples nicht funktionieren
Hi,
), oder der Compiler sollte eine Fehlermeldung ausgeben, wenn Vorder- und Hintergrundfarbe nicht angegeben sind (und die Hilfe sollte dann auch entspr. geändert werden).
//edit: Ich habe jetzt die Voreinstellung schwarz auf schwarz im engl. Forum als Bug gemeldet.
Mit
druckt das Beispielprogramm Printer.pb zwar den Text richtig, aber statt des Bildes erhalte ich nach wie vor nur eine graue Figur aus zwei Rechtecken.
Gruß, Little John
Das würde ich als Bug bezeichnen: Entweder sollten per Voreinstellung Vorder- und Hintergrundfarbe unterschiedlich sein ( schwarz auf weiß wäre eine einigermaßen übliche KombinationPelagio hat geschrieben:Das liegt daran das seit PB4.4 bei DrawText unbedingt die Farbe dazugeschrieben weden muss ansonsten schreibt DrawText Schwarz auf SchwarzCode: Alles auswählen
DrawText(100, 400, "PureBasic Printer Test 2", #Black, #White)

//edit: Ich habe jetzt die Voreinstellung schwarz auf schwarz im engl. Forum als Bug gemeldet.
Das sehe ich persönlich nicht als Bug an, denn so ist es ja auch z.B. bei jedem normalen Textverarbeitungsprogramm. Wie soll man das Problem umgehen?Pelagio hat geschrieben:Allerdings gibt es in diesem Falle ein Problem wenn man auf farblich oder unterschiedlichen bzw. unbekannten Blättern ausdruckt. Ich denke mir, das dies vielleicht sogar als BUG zu bezeichnen wäre, oder?
Mit
Code: Alles auswählen
DrawText(100, 400, "PureBasic Printer Test 2", #Black, #White)
Gruß, Little John
Zuletzt geändert von Little John am 31.01.2010 12:20, insgesamt 1-mal geändert.
- Pelagio
- Beiträge: 424
- Registriert: 11.11.2004 17:52
- Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem - Wohnort: Bremen
Re: codeschnippsel erwünscht, da Examples nicht funktionieren
Little John hat geschrieben:
Ps.:
Wie bekommst du es hin das "... hat geschrieben:" in die Titelzeile erscheint?
Dies ist nicht ganz richtig, bei einem Textverarbeitungsprogramm kann ich auf unterschiedlich farbliche Blättern drucken, ohne das um ein Zeichen ein weißer Kasten entsteht. Das heißt also das bei DrawText ohne Angabe der Hintergrundfarbe die Schrift auf transparentem Untergrund ausgegeben werden müsste.Das sehe ich persönlich nicht als Bug an, denn so ist es ja auch z.B. bei jedem normalen Textverarbeitungsprogramm. Wie soll man das Problem umgehen?
Ps.:
Wie bekommst du es hin das "... hat geschrieben:" in die Titelzeile erscheint?
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win11Pro; PB6.20 LTS].
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win11Pro; PB6.20 LTS].

Re: codeschnippsel erwünscht, da Examples nicht funktionieren
Ja, natürlich! Tut mir leid, ich bin wohl noch nicht ganz wach ...Pelagio hat geschrieben:Little John hat geschrieben:Dies ist nicht ganz richtig, bei einem Textverarbeitungsprogramm kann ich auf unterschiedlich farbliche Blättern drucken, ohne das um ein Zeichen ein weißer Kasten entsteht. Das heißt also das bei DrawText ohne Angabe der Hintergrundfarbe die Schrift auf transparentem Untergrund ausgegeben werden müsste.Das sehe ich persönlich nicht als Bug an, denn so ist es ja auch z.B. bei jedem normalen Textverarbeitungsprogramm. Wie soll man das Problem umgehen?

Transparenz wird von PB neuerdings doch gut unterstützt. Dann geht das jetzt vielleicht irgendwie?
Wenn ich in Deinem Beitrag den Zitieren-Knopf anklicke, dann steht in meinem Bearbeitungsfenster automatisch am Anfang:Pelagio hat geschrieben:Ps.:
Wie bekommst du es hin das "... hat geschrieben:" in die Titelzeile erscheint?
Code: Alles auswählen
[quote="Pelagio"]
Gruß, Little John
- Pelagio
- Beiträge: 424
- Registriert: 11.11.2004 17:52
- Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem - Wohnort: Bremen
Re: codeschnippsel erwünscht, da Examples nicht funktionieren

Mal sehen das ich heute noch Zeit finde, ich werde dann versuchen heraus zu finden ob und wie ich bei DrawText den Hintergrund 'Transparent' gestalten kann.Little John hat geschrieben:Dann geht das jetzt vielleicht irgendwie?
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win11Pro; PB6.20 LTS].
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win11Pro; PB6.20 LTS].

Re: codeschnippsel erwünscht, da Examples nicht funktionieren
Gerne, keine Ursache!
Das mit der Transparenz geht tatsächlich!
Man muss die Transparenz einschalten, in der Hilfe zu DrawText() sieht man in dem Beispielcode wie's geht. Nur die separaten Beispielprogramme werden wohl etwas stiefmütterlich gepflegt. Mit eingeschalteter Transparenz brauchen dann Vorder- und Hintergrundfarbe nicht angegeben zu werden.
Gruß, Little John
Das mit der Transparenz geht tatsächlich!
Man muss die Transparenz einschalten, in der Hilfe zu DrawText() sieht man in dem Beispielcode wie's geht. Nur die separaten Beispielprogramme werden wohl etwas stiefmütterlich gepflegt. Mit eingeschalteter Transparenz brauchen dann Vorder- und Hintergrundfarbe nicht angegeben zu werden.
Gruß, Little John
- Pelagio
- Beiträge: 424
- Registriert: 11.11.2004 17:52
- Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem - Wohnort: Bremen
Re: codeschnippsel erwünscht, da Examples nicht funktionieren
Hallo,
Das Problem konnte ich doch schneller lösen als ich dachte, danke Little John du warst der Auslöser für die Lösung (DrawingMode(#PB_2DDrawing_Transparent)).
Das Problem konnte ich doch schneller lösen als ich dachte, danke Little John du warst der Auslöser für die Lösung (DrawingMode(#PB_2DDrawing_Transparent)).
Code: Alles auswählen
If PrintRequester()
If StartPrinting("PureBasic Test")
LoadFont(0, "Arial", 30)
LoadFont(1, "Arial", 100)
If StartDrawing(PrinterOutput())
DrawingMode(#PB_2DDrawing_Transparent)
DrawingFont(FontID(0))
DrawText(100, 100, "PureBasic Printer Test")
DrawingFont(FontID(1))
DrawText(100, 400, "PureBasic Printer Test 2")
FrontColor(#Blue)
Box(200, 600, 100, 100)
StopDrawing()
EndIf
StopPrinting()
EndIf
EndIf
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win11Pro; PB6.20 LTS].
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win11Pro; PB6.20 LTS].

Re: codeschnippsel erwünscht, da Examples nicht funktionieren
Hi,
ich denke am besten wäre #PB_2DDrawing_Transparent die Voreinstellung für DrawText(). Das ist es doch wohl, was die meisten Leute intuitiv erwarten.
//edit:
Ich habe das jetzt auch mal im englischen Forum angesprochen.
Gruß, Little John
ich denke am besten wäre #PB_2DDrawing_Transparent die Voreinstellung für DrawText(). Das ist es doch wohl, was die meisten Leute intuitiv erwarten.
//edit:
Ich habe das jetzt auch mal im englischen Forum angesprochen.
Gruß, Little John