Farbig unterlegte Gadgets.... wie ?

Anfängerfragen zum Programmieren mit PureBasic.
Jürgen
Beiträge: 26
Registriert: 27.04.2005 18:04

Farbig unterlegte Gadgets.... wie ?

Beitrag 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....
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag 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
;
Zuletzt geändert von bobobo am 27.07.2005 14:57, insgesamt 1-mal geändert.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
FGK
Beiträge: 249
Registriert: 09.01.2005 14:02
Computerausstattung: i5-4430 CPU / 8GB RAM
GeForce GT630
Windows 10 Home / 64-bit
Wohnort: Augsburg

Beitrag 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
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag 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).
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag 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 ...
Zuletzt geändert von bobobo am 28.07.2005 10:32, insgesamt 1-mal geändert.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Jürgen
Beiträge: 26
Registriert: 27.04.2005 18:04

Beitrag 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....
Jürgen
Beiträge: 26
Registriert: 27.04.2005 18:04

Beitrag 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...
Antworten