PB4 -deutsche Hilfe- Fehler im Beispielcode

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
mardanny71
Beiträge: 266
Registriert: 05.03.2005 01:15
Wohnort: Thüringen

ToolBarToolTip()

Beitrag von mardanny71 »

Zu ToolBarToolTip()

Hi,
folgender Code läuft zwar, aber etwas "eingedeutschter"(ToolBarToolTip() wäre der untere.Geschmackssache. :wink:

Code: Alles auswählen

If OpenWindow(0, 0, 0, 150, 60, #PB_Window_SystemMenu |#PB_Window_ScreenCentered, "ToolBar")
    If CreateToolBar(0, WindowID(0))
      ToolBarStandardButton(0, #PB_ToolBarIcon_New)
      ToolBarStandardButton(1, #PB_ToolBarIcon_Open)
      ToolBarStandardButton(2, #PB_ToolBarIcon_Save)
      ToolBarToolTip(0, 0, "New document")
      ToolBarToolTip(0, 1, "Open file")
      ToolBarToolTip(0, 2, "Save file")
    EndIf
    Repeat
    Until WaitWindowEvent() = #PB_Event_CloseWindow 
  EndIf
besser wäre

Code: Alles auswählen

 If OpenWindow(0, 0, 0, 150, 60,"ToolBar", #PB_Window_SystemMenu |#PB_Window_ScreenCentered )
    If CreateToolBar(0, WindowID(0))
      ToolBarStandardButton(0, #PB_ToolBarIcon_New)
      ToolBarStandardButton(1, #PB_ToolBarIcon_Open)
      ToolBarStandardButton(2, #PB_ToolBarIcon_Save)
      ToolBarToolTip(0, 0, "Neu")
      ToolBarToolTip(0, 1, "Datei öffnen")
      ToolBarToolTip(0, 2, "Datei schließen")
    EndIf
    Repeat
    Until WaitWindowEvent() = #PB_Event_CloseWindow 
  EndIf
Noch ne dumme Frage - beträfe dann nicht die Hilfe - schreibt man Tipp im Englischen Tip ?

grüsse an alle
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 »

Ihr könnt ruhig alle Anregungen zu Fehlern in der Hilfe hier posten.
Werde diese spätestens vor dem Final-Release nochmal alle überprüfen. :)

Bin ja ab heute wieder im Forum, nachdem ich die letzten 3 Wochen alle freie Zeit in die PB-Anleitung (deutsch + Korrekturlesen der englischen) gesteckt habe. :freak:
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
Hyper
Beiträge: 194
Registriert: 19.04.2005 19:14

ReleaseNotes

Beitrag von Hyper »

Vorschlag von mir: das ReadMe-File mit den Änderungen weiterführen. In der Beta 6 war immer noch das File von Beta 4 enthalten.

Generell fände ich für dies Dokument "ReleaseNotes" aussagekräftiger.
PB 5.72
Benutzeravatar
mardanny71
Beiträge: 266
Registriert: 05.03.2005 01:15
Wohnort: Thüringen

CreatePopupMenu()

Beitrag von mardanny71 »

zu CreatePopupMenu()

Hi,
Der Beispielcode zu CreatePopupMenu() läuft zwar, erzeugt aber mit MenuTitle() Verweise - auch wenn keine Untermenüs da sind.
Im zweiten Code habe ich noch die Debugausgaben ergänzt.

Beispielcode derzeit:

Code: Alles auswählen

If OpenWindow(0, 200, 200, 200, 120, #PB_Window_SystemMenu, "Popup-Menu Example")
    If CreatePopupMenu(0)      ; hier beginnt das Erstellen des Popup-Menüs...
      MenuTitle("Project")     ; Sie können alle Befehle zum Erstellen eines Menüs
        MenuItem(1, "Open")    ; verwenden, ganz wie bei einem normalen Menü...
        MenuItem(2, "Save")
        MenuItem(3, "Save as")
        MenuItem(4, "Quit")
        MenuBar()
        OpenSubMenu("Recent files")
          MenuItem(5, "PureBasic.exe")
          MenuItem(6, "Test.txt")
        CloseSubMenu()
      MenuTitle("Edit")
      MenuTitle("Options")
    EndIf
    Repeat
      Select WaitWindowEvent()     ; überprüfe Window-Ereignisse
        Case #WM_RBUTTONDOWN       ; rechte Maustaste wurde gedrückt =>
          DisplayPopupMenu(0,WindowID(0))  ; stelle jetzt das Popup-Menü dar
        Case #PB_Event_Menu        ; ein Eintrag des Popup-Menüs wurde angeklickt
          Select EventMenu()       ; ermittle den angeklickten Menü-Eintrag...
            Case 1 : Debug "Menu: Open"
            Case 2 : Debug "Menu: Save"
            Case 3 : Debug "Menu: Save as"
            Case 4 : Quit = 1
            Case 5 : Debug "Menu: PureBasic.exe"
            Case 6 : Debug "Menu: Text.txt"
          EndSelect
        Case #PB_Event_CloseWindow
          Quit = 1
      EndSelect
    Until Quit = 1
  EndIf
besser wäre:

Code: Alles auswählen

If OpenWindow(0, 200, 200, 200, 120,"Popup-Menu Example")
    If CreatePopupMenu(0)      ; hier beginnt das Erstellen des Popup-Menüs...
      OpenSubMenu("Project")     ; Sie können alle Befehle zum Erstellen eines Menüs
        MenuItem(1, "Open")    ; verwenden, ganz wie bei einem normalen Menü...
        MenuItem(2, "Save")
        MenuItem(3, "Save as")
        MenuItem(4, "Quit")
        
         OpenSubMenu("Recent files")
          MenuItem(5, "PureBasic.exe")
          MenuItem(6, "Test.txt")
         CloseSubMenu()
         
      CloseSubMenu()
      
      MenuBar()
     
      MenuItem(7,"Edit")
      MenuItem(8,"Options")
      
    EndIf
    Repeat
      Select WaitWindowEvent()     ; überprüfe Window-Ereignisse
        Case #WM_RBUTTONDOWN       ; rechte Maustaste wurde gedrückt =>
          DisplayPopupMenu(0,WindowID(0))  ; stelle jetzt das Popup-Menü dar
        Case #PB_Event_Menu        ; ein Eintrag des Popup-Menüs wurde angeklickt
          Select EventMenu()       ; ermittle den angeklickten Menü-Eintrag...
            Case 1 : Debug "Menu: Open"
            Case 2 : Debug "Menu: Save"
            Case 3 : Debug "Menu: Save as"
            Case 4 : Quit = 1
            Case 5 : Debug "Menu: PureBasic.exe"
            Case 6 : Debug "Menu: Text.txt"
            Case 7 : Debug "Menu: Edit"
            Case 8 : Debug "Menu: Options"
          EndSelect
        Case #PB_Event_CloseWindow
          Quit = 1
      EndSelect
    Until Quit = 1
  EndIf
grüsse an alle
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 »

Kurzer Status-Report zur deutschen + englischen Hilfe:
  • - alle Beispiele, die OpenWindow() nutzen, auf die neue Syntax umgestellt
    - ReadFile() Beispiel gefixt
    - ToolBarImageButton() Beispiel gefixt
    - WriteData() Beispiel => auf die ToDo-Liste von Fred gesetzt :wink:
    - CreatePopupMenu() => ebenfalls auf die ToDo-Liste, da es eine Design-Frage ist, die Fred entscheiden soll...
@Sebe: verstehe Deinen Bug-Report bzgl. den Network-Befehlen nicht so richtig. Die Beschreibung zu welchem Befehl meinst Du genau?
NetworkClientID() gibt es nicht mehr - wurde laut der Readme umbenannt. Die beiden Beispiele NetworkClient.pb und NetworkServer.pb in der Hilfe laufen doch auch... oder bei anderen nicht?
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
mk-soft
Beiträge: 3845
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Nicht ganz,

Korrigierter Code

Code: Alles auswählen

;
; ------------------------------------------------------------
;
;   PureBasic - Network (Server) example file
;
;    (c) 2003 - Fantaisie Software
;
; ------------------------------------------------------------
;

If InitNetwork() = 0
  MessageRequester("Error", "Can't initialize the network !", 0)
  End
EndIf

Port = 6832
Buffer = AllocateMemory(1000)

If CreateNetworkServer(0, Port)

  MessageRequester("PureBasic - Server", "Server created (Port "+Str(Port)+").", 0)
  
  Repeat
      
    SEvent = NetworkServerEvent()
  
    If SEvent
    
;      ClientID = NetworkClientEvent(0) Fehler
      ClientID = EventClient()
  
      Select SEvent
      
        Case 1
          MessageRequester("PureBasic - Server", "A new client has connected !", 0)
  
        Case 2
          MessageRequester("PureBasic - Server", "Client "+Str(ClientID)+" has send a packet !", 0)
          ReceiveNetworkData(ClientID, Buffer, 1000)
          MessageRequester("Info", "String: "+PeekS(Buffer), 0)
  
        Case 3
          MessageRequester("PureBasic - Server", "Client "+Str(ClientID)+" has send a file via the network !", 0)
          ReceiveNetworkFile(ClientID, "C:\TEST_Network.ftp3")
  
        Case 4
          MessageRequester("PureBasic - Server", "Client "+Str(ClientID)+" has closed the connexion...", 0)
          Quit = 1
    
      EndSelect
    EndIf
    
  Until Quit = 1 
  
  MessageRequester("PureBasic - Server", "Click to quit the server.", 0)
  
  CloseNetworkServer(0)
Else
  MessageRequester("Error", "Can't create the server (port in use ?).", 0)
EndIf

  
End   
FF :allright:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
uweb
Beiträge: 461
Registriert: 13.07.2005 08:39

Beitrag von uweb »

Da ich mich sonst kaum nützlich machen kann, ziehe ich mir den Tüpfele-Schisser-Schuh an.

Eine Kleinigkeit - aber es stört vielleicht den ersten Eindruck:
Bei SetGadgetColor() kommt ListViewGadget() vor ListIconGadget() in der sonst alpabetisch sortierten Liste.


Meine ersten Erfahrungen mit der Hilfe sind noch nicht so alt. Ich kann mich gut erinnern, daß ich gerade bei den Gadgets Probleme hatte die Übersicht zu bekommen/behalten.

Bei den Gadgets bekommt man eine riesen Liste. Vielleicht sollte man zwei daraus machen.
1. Gadgets 2. Gadgetfunktionen

EINE zusätzliche Übersicht welches Gadget was unterstützt wäre toll.
z.B. als Tabelle


Wenn wir schon beim Server sind :
An den Beispielen bei Network habe ich als erstes probiert was passiert wenn der Client-Request zu lange ist.
Vielleicht bin ich da etwas eigenartig aber vielleicht würde ein anderer Anfänger genau das gleich als erstes probieren.

Wenn man bei dem Server den Buffer auf 10 setzt bekommt man eine schöne (dreiteilige)Antwort auf die Frage.
Wenn man ihn aber z.B. auf 12 setzt ist der 3. Teil nicht mehr so schön.
Mein Vorschlag :

Code: Alles auswählen

       Case 2
          MessageRequester("PureBasic - Server", "Client "+Str(ClientID)+" has send a packet !", 0)
          Received=ReceiveNetworkData(ClientID, Buffer, 12)
          MessageRequester("Info - Server", "String: "+PeekS(Buffer,Received), 0)
edit :
Gibt es die aktualisierte Hilfe schon zum downloaden ?

2. edit :
Bei Gadget.pb steht noch ActivateGadget(0) statt SetActiveGadget(0).
Benutzeravatar
mardanny71
Beiträge: 266
Registriert: 05.03.2005 01:15
Wohnort: Thüringen

Beitrag von mardanny71 »

Hi,
hier mal ein paar Textstellen aus der ImagaPlugin Lib.(auch wenn´s noch gemacht wird)
Die Hilfe sagt dort noch unter:

UsePNGImageEncoder()
UsePNGImageDecoder()

Die PNG Alphachannel Information (wenn vorhanden) wird derzeit ignoriert.

und unter:

UseTGAImageDecoder()

Die TGA Alphachannel Information (wenn vorhanden) wird derzeit ignoriert

Laut Readme ist das jetzt dabei.
Ich glaube roherter hat das schon probiert.

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

DIM hat geschrieben:Arrays in PureBasic sind immer global verfügbar
Sollte in der Hilfe vielleicht auch korrigiert werden :wink:
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
Sebe
Beiträge: 585
Registriert: 11.09.2004 21:57
Wohnort: Europa
Kontaktdaten:

Beitrag von Sebe »

Habe auch eben erkannt, dass es den Befehl nicht mehr gibt. In der Hilfe ist er aber noch vorhanden (schaut mal bei der Hilfe den Befehl "ReceiveNetworkData" an, da wird in der Beschreibung auf NetworkClientID() verwiesen).
Gesperrt