* Für 3.3 Nutzer *

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Lorne
Beiträge: 31
Registriert: 30.05.2008 15:45
Wohnort: Hohenlohe
Kontaktdaten:

Beitrag von Lorne »

@Stargate:
Hi, kannst mir vielleicht bei dem Problem helfen?

http://www.purebasic.fr/german/viewtopi ... c&start=20

Gruß Lorne
Radiate
Beiträge: 114
Registriert: 10.02.2008 16:40
Kontaktdaten:

Beitrag von Radiate »

Also bitte stellt mich nicht sofort an den Pranger, warum nutzt ihr nicht einfach PureBasic 4.0+? :lol:
» PureBasic 4.30
» AMD Athlon II X2 240 | 2048 RAM | Win XP SP 3
» Projekt(e): Fusion (eingestellt), SAS (eingestellt), Moviez
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von NicTheQuick »

Das wüsstest du, wenn dich ein bisschen mehr über die PB-Versionen informieren
würdest.
Bild
Radiate
Beiträge: 114
Registriert: 10.02.2008 16:40
Kontaktdaten:

Beitrag von Radiate »

NicTheQuick hat geschrieben:Das wüsstest du, wenn dich ein bisschen mehr über die PB-Versionen informieren
würdest.
Versteh ich nicht. :lol:
Sollte die neueste nicht die bessere sein?
» PureBasic 4.30
» AMD Athlon II X2 240 | 2048 RAM | Win XP SP 3
» Projekt(e): Fusion (eingestellt), SAS (eingestellt), Moviez
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von NicTheQuick »

Doch, aber wenn man V3.3 damals als Boxed Version gekauft hat, müsste man jetzt
nochmal draufzahlen, um updatetn zu können. Und es hat nunmal nicht jeder Geld wie Heu.
Bild
Sahrin
Beiträge: 10
Registriert: 24.11.2008 20:12
Wohnort: Rostock
Kontaktdaten:

Beitrag von Sahrin »

Kenne das Problem @ NictheQuick

Hab auch noch die Alte 3.3 Version von Topas.
Wollt mit immer die 4.0 version besorgen.. aber im Gegensatz zur 3.3 version hab ich die noch nie im Laden gesehen und ich bestelle im Allgemeinen nichts im Internet, ist reine PRinzipen sache.. Zahle alled ausser meiner Miete Bar, da weiss ich immer weiviel ich noch hab und das ichs in den Händen habe ^^

Aber mal ne andere frage jetz speziefisch...

Ich programmiere eher nur rein aus Hobby und kenn lange nicht alle Features zu PB, nichtmal zu 3.3..
Aber mir ist heute auf Arbeit ne Idee gekommen für nen Spiel was sehr aufwendig sein wird aber ich find ich idee einfach zu toll um sie gleich weiter fliegen zu lassen ^^

Ich hab bisher eigentlich immer im Openscreen modus nen bissl hin und her programmiert und nur um mal Gadgets auszu probieren in Openwindow...

Ich sehe doch richtig das OpenWindowedscreen() mir nen Screen im Fenster erstellt wie ich normalerweise im fullscreen habe oder?

Meine Idee lag nähmlich darin Das das Spielfeld wo der Character läuft in diesem Screen läuft und ich Links daneben die Torso fürs Drag und Drop stelle inventar und dies dann mit Imagegadgets mache..

Ist das Rein technisch machbar mit 3.3 oder allgemein Garnicht?

Oder bin ich mit meinem Obigen Ansatz was Openwindowedscreen angeht schon auf dem Holzweg? Weil bei mir nicht mal das Funktionieren will ^^

Weis auch nicht.. ich erstelle ein Fenster und gebe darin den bereich des Screens an ich sehe da zwar kurz Genau das feld wo dies sein sollte danach Bekomm ich aber die mitteilung keine Rückmledung oO


MfG Sahrin


Edit: Okay also mit dem Openwindow hab ichs den hinbekommen nachdem ich nen Waitwindowevent mit eingebaut habe, habe und einfach en Tastenabfrage...

Allerdings läuft diese nicht all zu flüssig...
Wirkt ehr als wenn er willkürlich entscheidet ob er die taste dann akzeptiert oder nicht Oo

Kann man das WAitwindowevent() irgendwie so einspeisen das es nur aufgerufen wird wenn es gebraucht wird? Oder sollte ich mich gänzlich von der Idee verabschieden dies auf diese Art zu Probieren um Flüssiges laufen zu garantieren?


HIer einfch mal der Testcode :

Code: Alles auswählen

InitSprite()
InitKeyboard()

OpenWindow(1,1,1,500,400,#PB_Window_SystemMenu ,"Test")

OpenWindowedScreen(WindowID(1),50,50,100,100,1,150,150)
 
CreateGadgetList(WindowID())
ButtonGadget(1,10,10,20,20,"P")

Repeat

ExamineKeyboard()

  If KeyboardPushed(#PB_KEy_uP)
     StartDrawing(ScreenOutput())
     Circle(40,40,18,RGB(200,156,0))
     StopDrawing()
  EndIf

  X=WaitWindowEvent()
  
   If X=#PB_EventCloseWindow 
    End
   EndIf
 
 FlipBuffers()
ClearScreen(0,0,0)  
ForEver
Nichts schührt Hass wie die Warheit

PB Version - 3.30
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6996
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

ja ist möglich, ich selber habe ja für mein Spiel "DUNE 2077" ein Editor gebaut, dort verwende ich auch einen WindowedScreen() auf einem Window.

Auf dem WindowedScreen() kannst du uneingeschrängt alles das machen was du auch auf dem Vollbild screen könntest (außer vllt Gamma ...)

Die Eventschleife für die gadget udn das Fenster sollten aber noch mal untergeordnet sein also so hier:

Code: Alles auswählen

Repeat
 
 Repeat
  Event = WindowEvent()
  Select Event 
   ; Andere Event
   Case #PB_EventCloseWindow
    End 
  EndSelect
 Until Event = 0

 ClearScreen(0, 0, 0)

 ; Screen Teil ...

 FlipBuffers() 
 
ForEver
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Sahrin
Beiträge: 10
Registriert: 24.11.2008 20:12
Wohnort: Rostock
Kontaktdaten:

Beitrag von Sahrin »

Ahh =) werd dies wenn ich zuhause bin mal gleich auf diese Art versuchen,

Danke für die Schnelle Antwort :)

Aber hab noch ne Andere Frage..
Ist aber nicht unbedingt 3.3 spezifisch glaube...

Undzwar wenn ich mit mehreren PAletten Arbeiten will lade ich jene ja hoch und rufe sie je nachdem auf welche ich brauche zur genauen Darstellung.
Nun tritt bei mir aber immer ein PRoblem auf angenommen ich habe 2 verschiedene Sprites mit unterschiedlichen Palletten.
Aktiviere für die Darstellung des #Sprite 1 Palette 1 DIsplay es dann,
Aktiviere für das #Sprite 2 PAlette 2, Display....

Nun ist es so Das ich eines der Bilder Halt richtig Dargestellt bekomme, und das andere nicht Weil Bei PAlette 1 ja andere Farben auf der Position sind als auf Palette 2, In anderen Klein PRojekten hab ich eine UNIPalette dafür eingefärbt und JEdes Bild einzelnd mit dieser PAlette bearbeitet ist aber ne sehr Abartige Sache und viel fummel kram.

Gibt es ne Möglichkeit beide Bilder GLeichzeitig auf einem Screen darzustellen trotz unterschiedlicher PAletten.. keine Ahnung multippalette oder so? Denn für jenes Projekt was ich mir in den Kopf gesezt habe werde ich sicher Mehr Farben benötigen als die 255 die auf einer Palette Defieniert werden können. Code habe ich leider grade keine zu verfügung bin noch auf Arbeit in der Frühstückspause ^^

MfG Sahrin alias Jan

Edit:
So ich hab es mal auf deine Art versucht, Aber das Windowevent() lasstet den Cpu zu sehr aus teilweise auf 100 % (hab mal den Taskmanager nebenbei laufen lassen) Lässt sich das irgendwei Regulieren?
Nichts schührt Hass wie die Warheit

PB Version - 3.30
D.J.Peters
Beiträge: 87
Registriert: 28.11.2010 13:07
Computerausstattung: P4 2x3.2GKz.1GB WIXP 32Bit NVIDEA GT240 1GB DDR3, AMD XP 1.8GHz Linux 32Bit NVIDEA GT240 TIi3200
Wohnort: Germany
Kontaktdaten:

PB 3.30 TreeView Item löschen?

Beitrag von D.J.Peters »

Hallo ich benutze die ältere Version 3.30 für Windows und bekomme kein TreeViewItem gelöscht.
War das ein Bug in der Version oder mache ich etwas grundlegendes Falsch ?

Ich habe einen MIDI Kerneltreiber geschrieben
und wollte das alte PB nur für den Konfigurationsdialog im Userspace benutzen
daher bin ich nicht gewillt für die wenigen steuerelemnte die ich brauche
die aktuelle Version von PB zu erwerben.

Egal welche ID ich bei RemoveGadgetItem(#TREEVIEW, id) verwende es passiert leider nichts.

Bin dankbar für jeden klärenden Hinweis.

Joshy

PS. Kann man irgendwo in einem Changelog nachlesen was alles in V3.30 ein Bug war
und in späteren Versionen behoben wurde ?
(Dann bräuchte ich Euch nicht mit meinen Fragen zu V3.30 nerven.)

Code: Alles auswählen

#WindowWidth  = 800
#WindowHeight = 600

#MENU         = 100
#MENU_OPEN    = #MENU + 1
#MENU_SAVE    = #MENU + 2
#MENU_SAVE_AS = #MENU + 3
#MENU_EXIT    = #MENU + 4

#TOOLBAR      = #MENU + 10
#TOOLBAR_CUT  = #TOOLBAR +1

#TREEVIEW     = #TOOLBAR + 10

OpenWindow(0, 0, 0, #WindowWidth, #WindowHeight, #PB_Window_SystemMenu, "PureBasic - Menu")

If CreateMenu(#MENU, WindowID())
   MenuTitle("Datei")
   ;MenuItem( #MENU_OPEN   , "&Open...")
   ;MenuItem( #MENU_SAVE   , "&Save")
   ;MenuItem( #MENU_SAVE_AS, "Save &as...")
   ;MenuItem( #MENU_EXIT   , "E&xit")
EndIf

CreateToolBar(#TOOLBAR, WindowID())
ToolBarStandardButton(#TOOLBAR_CUT,0)


If CreateGadgetList(WindowID())
  TreeGadget(#TREEVIEW, 0,32, 320,240) ;,#PB_Tree_AlwaysShowSelection) 
  AddGadgetItem(#TREEVIEW, 0, "parent") 
  If 1
  OpenTreeGadgetNode() 
   AddGadgetItem(#TREEVIEW, 0, "child 1") 
   AddGadgetItem(#TREEVIEW, 0, "child 2") 
   AddGadgetItem(#TREEVIEW, 0, "child 3") 
  CloseTreeGadgetNode()
  
  AddGadgetItem(#TREEVIEW, 0, "1") 
  AddGadgetItem(#TREEVIEW, 0, "2") 
  AddGadgetItem(#TREEVIEW, 0, "parent") 
  OpenTreeGadgetNode() 
   AddGadgetItem(#TREEVIEW, 0, "child 1") 
   AddGadgetItem(#TREEVIEW, 0, "parent") 
   OpenTreeGadgetNode() 
    AddGadgetItem(#TREEVIEW, 0, "child 1") 
    AddGadgetItem(#TREEVIEW, 0, "child 2") 
    AddGadgetItem(#TREEVIEW, 0, "child 3") 
   CloseTreeGadgetNode() 
   AddGadgetItem(#TREEVIEW, 0, "child 2") 
  CloseTreeGadgetNode() 
  EndIf
EndIf


flag.l=0

Repeat

  EventID.l = WaitWindowEvent()
  Select EventID 
    Case #WM_CLOSE
      quit = 1
    Case #PB_EventMenu  
      MenuID.l = EventMenuID() 
      Select MenuID
        Case #MENU_EXIT
          quit = 1
        Case #TOOLBAR_CUT 
           RemoveGadgetItem(#TREEVIEW, CountGadgetItems(#TREEVIEW)-1)
          ;AddGadgetItem(#TREEVIEW, 0, "i'm new") 
      EndSelect 
    Case #PB_EventGadget
      GadgetID.l = EventGadgetID() 
      Select GadgetID
        Case 0
      EndSelect
  EndSelect
Until quit = 1
End 
PS. meine vielen Fehler der Rechtschreibung auf dem Forum könnt Ihr gerne ignorieren.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6996
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: * Für 3.3 Nutzer *

Beitrag von STARGÅTE »

Hier gibs eine Zusammenstellung der neuigkeiten (auch mit einem Klick detailiert)
http://www.purebasic.com/german/news.php

Ich glaube das TreeGadget war damals "komplett" verbugt.
Denn AddGadgetItem(#TREEVIEW, 0, "i'm new") arbeitet ja auch falsch, wenn es müsste ja ein Enitrag an den Anfang setzen (Position 0), setzt ihn aber wie bei -1 ans Ende.
Das steht ja auch in der 3.3 Hilfe:
AddGadgetItem(#Gadget, Position, Text$ [, ImageID]))
- TreeGadget(): unterstützt die ImageID. Der Parameter 'Position' wird ignoriert.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Antworten