PB4 -deutsche Hilfe- Fehler im Beispielcode

Fragen und Bugreports zur PureBasic 4.0-Beta.
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:

Der Parameter [, Depth]) ein Muß???

Beitrag von Falko »

Ohne diesen Parameter läuft wohl nix in PB4B6, oder?

Code: Alles auswählen

CreateImage(0,640,480,32)
Result = CreateImage(#Image, Width, Height [, Depth])

Code: Alles auswählen

GetClipboardImage(#PB_Clipboard_Image,32)
Steht noch nicht in der Hilfe, aber in der Statusleiste!
GetClipboardImage(#Image[,Depth])-Get an image from the clipboard (if any).
Wäre es nicht besser, wenn der Parameter Depth einen Defaultwert erhielte?
Ohne dem geht nichts.

Viele Grüße
Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
uweb
Beiträge: 461
Registriert: 13.07.2005 08:39

Beitrag von uweb »

Ich habe noch drei allgemeine Verbesserungsvorschläge :

>>> 1. Beispiele
Ich habe noch gut in Erinnerung, daß ich am Anfang bei vielen Beispielen Probleme hatte. Bei den Gadgets z.B. reduziert sich die Eventbehandlung häufig auf

Code: Alles auswählen

Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
.

Ich glaube für jemanden der gerade erst anfangt wäre es eine große Hilfe wenn er zumindest das wesentliche dessen was er oben liest unten im Beispiel wieder finden würde. Es ist schon klar, das die Beispiele dadurch größer würden, aber man kann es ja z.B. so

Code: Alles auswählen

debug "Button 1 wurde gedrückt"
im Rahmen halten.

>>> 2. Links
Gerade weil der Umfang bei 4.0 zunimmt halte ich es für wichtig, das die Basics leicht zu (be-)greifen sind.

CreateMenu() steht in dem separaten Kapitel Menu.
DetachMenu() steht im Kapitel Window.
Die beiden sind auch nicht verlinkt.
MDIGadget() steht nun aber im Kapitel Gadget.
Hier fehlt der hilfreiche Link zu CreateMenu() nicht.

Daß das MDIGadget ein Gadget ist und deshalb auch unter Gadget steht ist mir schon klar. Nur, wenn ich keinen Plan habe suche ich Child-Window unter Window.

>>> 3. Plausibilität
In Prozeduren (das letzte Beispiel) wird Maximum() ohne Rückgabewert deklariert. Operate() bekommt einen Wert. Verwendet ihn aber nicht.

Code: Alles auswählen

  Declare Maximum(Wert1, Wert2)
  
  Procedure Operate(Wert)
    Maximum(10, 2)      ; Zu dieser Zeit ist Maximum() nicht bekannt.
  EndProcedure
  
  Procedure Maximum(Wert1, Wert2)
    ProcedureReturn 0
  EndProcedure

Sorry, wenn das ein bischen hart klingt. Es ist nicht so gemeint.
Benutzeravatar
mardanny71
Beiträge: 266
Registriert: 05.03.2005 01:15
Wohnort: Thüringen

Beitrag von mardanny71 »

@Falco
CreateImage() - doch,in der deutschen Hilfe ist eine Beschreibung drin.
Voreinstellung ist die des Bildschirms.
Wenn der Parameter 'Tiefe' weggelassen oder auf #PB_Image_DisplayFormat gesetzt wird, dann wird das Bildformat von aktuellen Desktop-Format abgeleitet. Gültige 'Tiefen'-Werte können sein: 1, 2, 4, 8, 16, 24 und 32 Bit. Wenn Sie TrueColor (Echtfarben) Formate bearbeiten und die Modifizierungen ohne Verlust an Farbinformationen wieder speichern möchten, dann sollten Sie die 24 oder 32 Bit Werte verwenden. Wenn die Bilder nur zum Anzeigen auf dem Bildschirm verwendet werden, bietet #PB_Image_DisplayFormat eine schnellere Performance.
GetClipboardImage() - stimmt, muß noch überarbeitet werden.

grüsse an alle
mardanny71
Gruß, mardanny71
Windows 7 - openSUSE 12.1 - KDE 4.7 - PB4.6 beta 4
Benutzeravatar
uweb
Beiträge: 461
Registriert: 13.07.2005 08:39

Beitrag von uweb »

Einen habe ich noch :
Statt immer in der Hilfe nach unten scrollen zu müssen, wäre doch eine Kopfzeile in der Art ganz praktisch :
Inhaltsverzeichnis Gadget MDIGadget()
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 »

Eine Unterteilung der Gadgets wäre sinnvoll.
Gadgets
- Einstellungen
- Eigenschaften

oder so ähnlich, die Liste ist auf jedenfall zu Lang in der Hilfe.
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 »

mardanny71 hat geschrieben:@Falco
CreateImage() - doch,in der deutschen Hilfe ist eine Beschreibung drin.
Voreinstellung ist die des Bildschirms.
Wenn der Parameter 'Tiefe' weggelassen oder auf #PB_Image_DisplayFormat gesetzt wird, dann wird das Bildformat von aktuellen Desktop-Format abgeleitet. Gültige 'Tiefen'-Werte können sein: 1, 2, 4, 8, 16, 24 und 32 Bit. Wenn Sie TrueColor (Echtfarben) Formate bearbeiten und die Modifizierungen ohne Verlust an Farbinformationen wieder speichern möchten, dann sollten Sie die 24 oder 32 Bit Werte verwenden. Wenn die Bilder nur zum Anzeigen auf dem Bildschirm verwendet werden, bietet #PB_Image_DisplayFormat eine schnellere Performance.
GetClipboardImage() - stimmt, muß noch überarbeitet werden.


grüsse an alle
mardanny71
Probier bitte mal dieses aus (PB4Beta). Ich hoffe du hast eine Webcam,
Scanner oder eine TV-Karte.

Wenn ich den Parameter bei CreateImage.. weglasse, kommt kein Bild.
Setzte ich dort den Parameter #PB_Image_DisplayFormat ein. habe ich
leider nur ein 2BIt Bild mit Grün und Schwarze Konturen.
Meine Grafikkarte ist aber auf 32Bit eingestellt.
Ohne Parameter geht nix und es muss min. ein Wert von 8, 16, 32 schon dort
eingestellt sein.

MfG Falko


http://www.purebasic.fr/german/viewtopi ... 0935#80935
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
mardanny71
Beiträge: 266
Registriert: 05.03.2005 01:15
Wohnort: Thüringen

Beitrag von mardanny71 »

@Falko - diemal mit k :)

ich hab jetzt leider keinen Code.
Mal sehen - vielleicht doch eine Fehlinfo.
LoadImage() - stimmt da bei dir alles?

Könnte ja sein, das es zusammen mit Loadimage() zu solchen Prob´s kommt.

grüsse an alle
mardanny71
Gruß, mardanny71
Windows 7 - openSUSE 12.1 - KDE 4.7 - PB4.6 beta 4
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 »

@mardanny71

Habe jetzt mal auf Loadimage umgestellt:

Code: Alles auswählen

UsePNGImageDecoder()
OpenWindow(0, 700, 10, 640, 480,"Test")
CreateGadgetList(WindowID(0))
If LoadImage(1, "MeinTV.PNG") ; hier kann auch ein anderes Bild stehen.
SetClipboardImage(1)
EndIf
CreateImage(0,640,480); Das geht auch ohne Depth-parameter unter LoadImage
If StartDrawing(ImageOutput(0))
  DrawingMode(#PB_2DDrawing_Default)
  ;Bitte mal die 3 Varianten nacheinander auskommentieren.
  
   hbm.l=GetClipboardImage(#PB_Clipboard_Image,#PB_Image_DisplayFormat); Hier nur Grün_Schwarz
  ;hbm.l=GetClipboardImage(#PB_Clipboard_Image); ohne Parameter kein Bild
  ;hbm.l=GetClipboardImage(#PB_Clipboard_Image,16) ; Dieses funktioniert einwandfrei
  ResizeImage(0,640,480)
  If hbm
    DrawImage(hbm,0,0,640,480)
    StopDrawing()
 Else
    Debug "nix im Clipboard"
  EndIf
EndIf

ImageGadget(0,0,0,640,480,ImageID(0))

Repeat
eventID.l = WaitWindowEvent()
Until EventID = #PB_Event_CloseWindow 
Die 3 hbm... habe ich mal jeweils auskommentiert, welche nacheinander
ausprobiert werden sollten.
Das mit dem CreateImage benötigt keinen extra Parameter. Nachdem ich diesen Source probiert hatte ging auf einmal auch das mit dem Twain etc.
Aber das GetClipboardImage() muss wohl einen bestimmten Wert ab
8 haben.

[Edit] Beim anderen Source mit der Twain.dll benutze ich kein
Loadimage()

Gruß Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
mardanny71
Beiträge: 266
Registriert: 05.03.2005 01:15
Wohnort: Thüringen

Beitrag von mardanny71 »

@Falco

Ohne Parameter krieg ich auch nichts zum laufen.
Ich möchte auch mal Wissen, was Parameter 1 oder #PB_Image_DisplayFormat dann bedeuten. :roll:

Die Bittiiefe werden doch wohl Pflichtparameter werden.

Gruß
mardanny71
Gruß, mardanny71
Windows 7 - openSUSE 12.1 - KDE 4.7 - PB4.6 beta 4
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 »

Danke erstmal für die ganzen Anregungen - werde diese zum Wochenende abarbeiten. :)

Also bis dahin nur her damit.

Die Sache mit dem "Depth" Parameter bei den Image-Befehlen habe ich an Fred + fr34k zur Überprüfung gemeldet.
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Gesperrt