Seite 1 von 1

Farbig unterlegte Gadgets.... wie ?

Verfasst: 27.07.2005 07:06
von Jürgen
Hallo,

mal wieder eine Frage an alle Profis:

Ich möchte in einem Programm, in einem Fenster, zusammengehörende Gadgets wie SpinGadget, ListViewGadget und ButtonGadget farbig hinterlegen. Meine Zeichenversuche mit Box.... schlugen bislang fehl.
Ich stelle mir das so vor, dass ich ein Fenster öffne (OpenWindow) und dann CreateGadgetList....
Jetzt wollte ich, etwas größer als der Bereich in welchem sich die zusammengehörenden Gadgets befinden, eine bestimmte Fläche farbig ausfüllen damit man erkennen kann welche Gadgets zu einer bestimmten Funktion gehören.
Weis hier jemand einen Rat?

Vielen Dank für Eure Hilfe und alles Gute von Jürgen....

Verfasst: 27.07.2005 13:12
von bobobo
mit nem selbstbemalten Imagegadget vielleicht..

Siehe aber auch mal hier
http://forums.purebasic.com/german/view ... eihenfolge

Code: Alles auswählen

Enumeration
  #Window_0
  #Image
  #Button_0
  #Text_0
  #Image_0
EndEnumeration

If CreateImage(#Image, 140,80)
  StartDrawing(ImageOutput())
  Box(0,0,140,80,RGB(255,222,192))
  FrontColor(128,0,0)
  DrawingMode(1)
  DrawText("ich bin gemalt")
  StopDrawing()
EndIf
If OpenWindow(#Window_0, 216, 0, 600, 300,  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "New window ( 0 )")
  If CreateGadgetList(WindowID())
    ButtonGadget(#Button_0, 105, 50, 55, 20, "Gnobf")
    TextGadget(#Text_0, 140, 70, 80, 25, "Degsd")
    ImageGadget(#Image_0, 100, 35, 140, 83, UseImage(#image))
  EndIf
EndIf
DisableGadget(#Image_0,1)
Repeat
  Event = WaitWindowEvent()
  WindowID = EventWindowID()
  GadgetID = EventGadgetID()
  EventType = EventType()
  If Event = #PB_EventGadget
    If GadgetID = #Image_0
    ElseIf GadgetID = #Button_0
      MessageRequester("huch","HUCH                   "+Chr(10)+Chr(10)+Chr(10)+Chr(10)+Chr(10)+Chr(10)+Chr(10)+Chr(10)+Chr(10)+Chr(10)+Chr(10)+Chr(10)+"                   HCUH",48)
    EndIf
  EndIf
Until Event = #PB_Event_CloseWindow ; End of the event loop
End
;

Verfasst: 27.07.2005 13:42
von FGK
Hi Jürgen,

würd das so lösen. Mir persönlich gefällt aber so ein GUI Design nicht.

Gruß

FGK


Code: Alles auswählen

If OpenWindow(0, 100, 200, 640,480,#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_WindowCentered , "PureBasic Window")
  
  CreateImage(0,320,300)
  StartDrawing(ImageOutput())
    Box(0,0,ImageWidth(),ImageHeight(),RGB(255,255,0))
  StopDrawing()
  CreateImage(1,320,300)
  StartDrawing(ImageOutput())
    Box(0,0,ImageWidth(),ImageHeight(),RGB(0,255,0))
  StopDrawing()
  CreateImage(2,640,180)
  StartDrawing(ImageOutput())
    Box(0,0,ImageWidth(),ImageHeight(),RGB(0,0,255))
  StopDrawing()
  
  If CreateGadgetList(WindowID(0))
    ContainerGadget(99,0,0,320,300,#PB_Container_Raised)
    ButtonGadget(1,10,10,50,25,"Bereich 1")
    TrackBarGadget(5,10,100,150,20,1,100)
    ImageGadget(3,0,0,320,300,UseImage(0))
    CloseGadgetList()
    ContainerGadget(98,320,0,320,300,#PB_Container_Raised)
    ButtonGadget(2,10,10,50,25,"Bereich 2")
    TextGadget(7,10,100,100,15,"TEST")
    ImageGadget(4,0,0,320,300,UseImage(1))
    CloseGadgetList()
    ContainerGadget(97,0,300,640,180,#PB_Container_Raised)
    ButtonGadget(6,10,10,50,25,"Bereich 3")
    ImageGadget(8,0,0,640,180,UseImage(2))
    CloseGadgetList()
    ;BG=CreateSolidBrush_(RGB(255,255,0)) 
    ;SetClassLong_(GadgetID(99), #GCL_HBRBACKGROUND, BG) 
    ;InvalidateRect_(GadgetID(99), 0, #True)
    Repeat
    EventID.l = WaitWindowEvent()
    
    If EventID = #PB_Event_CloseWindow  ; If the user has pressed on the close button
      Quit = 1
    EndIf
    
    Until Quit = 1
  EndIf  
EndIf

End 
Mist! BoBoBo war schneller *ggg

Verfasst: 27.07.2005 17:02
von Ynnus
Wobei man den Rand des Imagegadgets (EDIT: Container meine ich) vielleicht komplett entfernen sollte um diese Klufften zwischen den Farbzonen zu verhindern (wenn die denn nicht gewollt waren).

Verfasst: 27.07.2005 17:28
von bobobo
HA!

da gibt es die E2D Lib (userlibs in purearea.net) vom Stefan Möbius

damit kann man auf Gadgets mittles startdrawing() und so malen.

ist ein Demo dabei und mit nem containergadget wuppt das auch.

allerdings nicht so ganz wie gewünscht ...

Verfasst: 27.07.2005 21:57
von Jürgen
Hallo,

Recht vielen Dank für Eure zahlreichen Hinweise und Vorschläge. War den Tag über unterwegs und habe jetzt gerade mal reingeschaut....

Werde mich mal damit befassen und mal sehen was mir am meisten zusagt.

Danke nochmals an Alle.....

Tschüß und zerlauft am kommenden Do. u. Fr. nicht bei der Hitze....

Verfasst: 30.07.2005 13:05
von Jürgen
Hallo,

ich habe mal die Variante von bobobo getestet. Es funktioniert, nur mit dem kleinen Fehler, nachdem der Bildschirmschoner aktiv war erscheinen die Buttons nicht mehr ????

Kann man da noch etwas tun dagegen ??

Alles Gute von Jürgen...