Fensterinhalt nicht aktuell ???

Für allgemeine Fragen zur Programmierung mit PureBasic.
DerProgrammierer78
Beiträge: 126
Registriert: 24.10.2004 21:11
Wohnort: Ahlen

Fensterinhalt nicht aktuell ???

Beitrag von DerProgrammierer78 »

Hallo zusammen,

Ich schreibe gerade an einem Programm bei dem ich mehrere StringGadgets benutze. Nun versuche ich diese zeitweise zu verstecken und wieder sichtbar zu machen. Mein Problem liegt da, dass er sie zwar prima sichtbar macht, aber nicht wieder versteckt ?????

Nun kam mir der Gedanke, dass der Bildschirm evtl. nicht neu aufgebaut wird nach der Veränderung ?????

Wer kann mir da helfen ???
Der Computer ist der beste Freund des Menschen.
Aber wer so viele Freunde hat wie ich vergrault damit jede Frau!!!!!!! ;-)
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

Probiere mal eine UpdateWindow_(WindowID()). Vielleicht reicht das ja schon.
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
DerProgrammierer78
Beiträge: 126
Registriert: 24.10.2004 21:11
Wohnort: Ahlen

Beitrag von DerProgrammierer78 »

Das funktioniert leider nicht :cry:

Was nun ???
Der Computer ist der beste Freund des Menschen.
Aber wer so viele Freunde hat wie ich vergrault damit jede Frau!!!!!!! ;-)
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

Eventuell hilft dir das hier: http://www.robsite.de/php/pureboard/vie ... php?t=1431

Schau mal nach dem Post, den Danilo geschrieben hat.


Greetz Laurin
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
DerProgrammierer78
Beiträge: 126
Registriert: 24.10.2004 21:11
Wohnort: Ahlen

Beitrag von DerProgrammierer78 »

Danke, das ist nen guter Anfang, aber wenn 4 Bildschirme komplett anfangen zu flackern (Habe 4 an meinem PC), dann ist das nervig. Und in dem Beitrag steht etwas von hinzufügen zur Windowinitialisierung. Das siet bei mir so aus:

If OpenWindow(1,0,0,900,700,#PB_Window_MinimizeGadget | #PB_Window_ScreenCentered | #WS_CLIPCHILDREN,"NAME DES PROGRAMMS")

Und das hilft nicht :-(

was nun ??
Der Computer ist der beste Freund des Menschen.
Aber wer so viele Freunde hat wie ich vergrault damit jede Frau!!!!!!! ;-)
Benutzeravatar
Rob
Shadow Admin
Beiträge: 258
Registriert: 26.08.2004 01:39
Kontaktdaten:

Beitrag von Rob »

Klappt doch gut, zumindest bei mir (Win2000):

Code: Alles auswählen

win=OpenWindow(0,0,0,60,80,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"Test")

CreateGadgetList(win)
StringGadget(0,10,1,80,20,"String")
StringGadget(1,10,25,80,20,"Auch String")
ButtonGadget(2,1,50,100,25,"Hide")

Repeat
  eventid = WaitWindowEvent()
  If eventid = #PB_Event_Gadget
    If EventGadgetID() = 2
      state=1-state 
      HideGadget(1,state)
      If state=0:SetGadgetText(2,"Hide"):Else:SetGadgetText(2,"Show"):EndIf
    EndIf 
  EndIf 
Until eventid = #PB_Event_CloseWindow
Build a man a fire and he's warm for a day. Set a man on fire and he's warm for the rest of his life
DerProgrammierer78
Beiträge: 126
Registriert: 24.10.2004 21:11
Wohnort: Ahlen

Beitrag von DerProgrammierer78 »

Das funktioniert so, wie du es geschrieben hast auch ganz gut. Nur wenn ich den Code in ein Panelgadget einbaue klappt es leider nicht. Und da liegt mein Problem. Hätte ich aber evtl. beischreiben müssen. An dieser Stelle entschuldige ich mich dafür, dass ich dies vergessen habe. :|

Evtl. gibt es ja eine Routine um nur den aktivierten Bereich des Panelgadgets zu aktualisieren.
Der Computer ist der beste Freund des Menschen.
Aber wer so viele Freunde hat wie ich vergrault damit jede Frau!!!!!!! ;-)
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

Das PanelGadget hat sicherlich mehrere Panels. Schalte einfach mal zwischen diesen hin und her. Das müsste genügen.
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
DerProgrammierer78
Beiträge: 126
Registriert: 24.10.2004 21:11
Wohnort: Ahlen

Beitrag von DerProgrammierer78 »

Die Idee ist gut und funktioniert auch. Nur ist das ziemlich lästig nach jeder Eingabe (Das Aussehen ist abhängig von den Eingaben) das Panel zu wechseln und zurück zu wechseln.

Also langsam verzweifel ich :-(
Der Computer ist der beste Freund des Menschen.
Aber wer so viele Freunde hat wie ich vergrault damit jede Frau!!!!!!! ;-)
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Beitrag von Danilo »

http://robsite.de/php/pureboard-archiv/ ... php?t=3048

Und schau mal folgenden Code an:
http://www.purearea.net/pb/CodeArchiv/G ... &Height.pb

Code: Alles auswählen

  tc.TC_ITEM\mask = #TCIF_PARAM 
  If SendMessage_(GadgetID(PanelGadget),#TCM_GETITEM,item,@tc) 
    ; hWnd des Childs in tc\lParam, also refreshen
    InvalidateRect_( tc\lParam, 0, 1)
    UpdateWindow_( tc\lParam )
  EndIf
Mußt mal selbst bissl damit rumspielen.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Antworten