Seite 2 von 5

ToolBarToolTip()

Verfasst: 11.03.2006 21:15
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

Verfasst: 11.03.2006 21:39
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:

ReleaseNotes

Verfasst: 12.03.2006 01:58
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.

CreatePopupMenu()

Verfasst: 12.03.2006 02:22
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

Verfasst: 12.03.2006 17:06
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?

Verfasst: 12.03.2006 19:16
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:

Verfasst: 12.03.2006 21:07
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).

Verfasst: 13.03.2006 15:35
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

Verfasst: 13.03.2006 15:44
von ts-soft
DIM hat geschrieben:Arrays in PureBasic sind immer global verfügbar
Sollte in der Hilfe vielleicht auch korrigiert werden :wink:

Verfasst: 13.03.2006 15:59
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).