Seite 1 von 1

StringGadget läßt sich nicht ändern

Verfasst: 12.02.2005 15:20
von sobi
Hallo,

ich verstehe nicht, wieso ich bei folgendem Code die StringGadgets nicht ändern kann. (Sprich wenn das Programm läuft, müsste ich nach meinem Wissen den Text ändern können - Außer sie sind auf "ReadOnly" eingestellt, das sind diese aber nicht)

Wo liegt denn der Fehler?

Liebe Grüße,


Simon

Code: Alles auswählen

If OpenWindow(0, 100, 120, 500, 500, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget , "Finanzverwaltung 2005") 

CreateImage(0,700,700) 

  StartDrawing(ImageOutput())
    DrawingMode(0)
    Box(0,0,700,700,RGB(192,192,192))  
    FrontColor(0,0,0)
    DrawingMode(1)  
    DrawText("Guten")
    DrawText("Morgen")     
  StopDrawing() 


  CreateGadgetList(WindowID()) 
    ScrollAreaGadget(1,10,10,WindowWidth(),WindowHeight(),700,700,5) 
    ImageGadget(0,0,0,WindowWidth()-20,WindowHeight()-20,UseImage(0))
    ButtonGadget(2, 140, 610, 100, 20, "Speichern") 
    StringGadget(3, 330, 50,  50, 15, "Halllo ", #PB_String_BorderLess) 
    StringGadget(4, 330, 66,  50, 15, "Halllo ", #PB_String_BorderLess) 
  CloseGadgetList()  
       
Repeat 
    Select WaitWindowEvent() 
        Case #PB_Event_CloseWindow : Quit = #True 
        Case #PB_Event_SizeWindow 
            ResizeGadget(1,0,0,WindowWidth(),WindowHeight()-19) 
    EndSelect 
Until Quit = #True 

EndIf 


End 

Verfasst: 12.02.2005 15:38
von Lars
Die Textgadgets liegen über einem ImageGadget und das geht nicht, da
so das ImageGadget die Events abkriegt und nicht die Textgadgets.

Du musst also das Färben des Hintergrunds anders erledigen, da müsste
es etliche Beispiele für im Codearchiv geben.

Übrigens, ich würde die Einrückung der Gadgetliste umgestalten, so wie
das im Moment ist, ist das mehr als missverständlich, da das
CloseGadgetList() keinesfalls das Beenden des CreateGadgetList()-Blocks
darstellt, sondern des ScrollAreaGadget()-Blocks.

Verfasst: 12.02.2005 16:04
von sobi
Lars hat geschrieben:Die Textgadgets liegen über einem ImageGadget und das geht nicht, da
so das ImageGadget die Events abkriegt und nicht die Textgadgets.

Du musst also das Färben des Hintergrunds anders erledigen, da müsste
es etliche Beispiele für im Codearchiv geben.
Danke, für die Antwort.
Also wenn ich die Zeile

Code: Alles auswählen

   ;ImageGadget(0,0,0,WindowWidth()-20,WindowHeight()-20,UseImage(0))
rausstreiche, dann zeigt er mir den Text nicht mehr an! Wie bekomme ich den Text wieder?

Mit

Code: Alles auswählen

  hBrush1 = CreateSolidBrush_(RGB(255, 155, 25)) 
  SetClassLong_(WindowID(), #GCL_HBRBACKGROUND, hBrush1) 
  InvalidateRect_(hWnd2, #NULL, #TRUE)    
will ich den Hintergrund ändern, was auch "fast" geht. Nur ändert er mir die Farbe nicht in der Scrollarea. :cry:

Na ja, auch das Problem wird sterben müssen! :)

LG


Simon

Verfasst: 12.02.2005 16:05
von netfreak
Schau mal auf http://www.purearea.net unter UserLibs! Such nach der LIb "PureCOLOR" von gnozal!

mfg
netfreak

Verfasst: 12.02.2005 16:21
von sobi
netfreak hat geschrieben:Schau mal auf http://www.purearea.net unter UserLibs! Such nach der LIb "PureCOLOR" von gnozal!

mfg
netfreak
Hey danke für deinen Tipp, doch ich habe noch keine Ahnung von Libs. Ich bin noch ein Anfänger und mir hilft eine grobe Wegbeschreibung nach dem Motto "fahr mal nach norden" nicht wirklich was, kannst du das verstehen? - Ich bemüh mich ja...

Gut, deswegen meld ich mich nochmal. Zurück zum Problem. Im Moment habe ich verstanden, dass das ImageGadget im Weg ist. Wenn ich es rausstreiche, dann kann ich die Textfelder ändern, aber dafür ist mein Text weg. Wie bekomme ich den Text ohne mein ImageGadget wieder?

Liebe Grüße,


Simon

Verfasst: 12.02.2005 16:48
von 125

Code: Alles auswählen

If OpenWindow(0, 100, 120, 500, 500, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget , "Finanzverwaltung 2005") 


  CreateGadgetList(WindowID()) 
    ScrollAreaGadget(1,10,10,WindowWidth(),WindowHeight(),700,700,5) 
    TextGadget(0,0,0,WindowWidth()-20,WindowHeight()-20,"Guten Morgen") 
    ButtonGadget(2, 140, 610, 100, 20, "Speichern") 
    StringGadget(3, 330, 50,  50, 15, "Halllo ", #PB_String_BorderLess) 
    StringGadget(4, 330, 66,  50, 15, "Halllo ", #PB_String_BorderLess) 
  CloseGadgetList()  
        
Repeat 
    Select WaitWindowEvent() 
        Case #PB_Event_CloseWindow : Quit = #True 
        Case #PB_Event_SizeWindow 
            ResizeGadget(1,0,0,WindowWidth(),WindowHeight()-19) 
    EndSelect 
Until Quit = #True 

EndIf 


End

Verfasst: 12.02.2005 20:04
von sobi
hmmm...

Damit werden zwar beide Sachen angezeigt, doch nur in einer GadgetList. Ist es denn nicht möglich, in einer Datei einmal "StartDrawing(ImageOutput)" zu verwenden und einmal eine "GreateGadgetList"?

Das ist inzwischen das Problem das ich habe! (Tja, manchmal braucht man länger um sein Problem herrauszufinden! :D)

Verfasst: 12.02.2005 22:21
von sobi
sobi hat geschrieben:Damit werden zwar beide Sachen angezeigt, doch nur in einer GadgetList. Ist es denn nicht möglich, in einer Datei einmal "StartDrawing(ImageOutput)" zu verwenden und einmal eine "GreateGadgetList"?
Ja das ist es. Einfach "CreateImage(0,700,700)" auf "CreateImage(0,300,700)" ändern, sowie die Box auch auf 300 ändern.