Logikproblem Schleife

Anfängerfragen zum Programmieren mit PureBasic.
smateja
Beiträge: 250
Registriert: 25.11.2004 19:51
Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS

Logikproblem Schleife

Beitrag von smateja »

Hallo zusammen - ich mal wieder - ich experimentiere gerade ein wenig herum mit einer Statusbar - da hab ich folgendes Problem: wenn ich das Fenster mit einem Rechtsklick öffne schaff ich es entweder dass A) die Uhrzeit in der STatusbar nicht weiterläuft oder b) die Uhrzeit weiter läuft - jedoch kein Button mehr geht - ich klemm quasi - vielleicht hat mir hier jeamdn n guten Tipp - bzw. gleich nen richtigen Code ;)

Code: Alles auswählen


LoadFont(0, "Tahoma", 8)
SetGadgetFont(#PB_Default, FontID(0))   

If OpenWindow(0001, 100, 150, 300, 100, "(H)iveworx (C)lient", #PB_Window_Invisible|#PB_Window_SystemMenu)
CreateGadgetList(WindowID(0001))
  AddSysTrayIcon(1, WindowID(0001), LoadImage(0, "bin\icons\cherry.ico"))
  SysTrayIconToolTip(1, "(H)iveworx (E)ngine (C)lient")
  
  Repeat
    Event = WaitWindowEvent()
    
    If Event = #PB_Event_SysTray
      If EventType() = #PB_EventType_RightClick
        OpenWindow(0002,1,1,640,480,"(H)iveworx (E)ngine (C)lient",#PB_Window_ScreenCentered)
          CreateGadgetList(WindowID(0002))
          
          ContainerGadget(0003, 0, 420, 640, 40,#PB_Container_Single) 
          SetGadgetColor(0003, #PB_Gadget_BackColor ,RGB(255, 255, 255))
              ButtonGadget(0004,534,20,100,16,"Minimieren")
              ButtonGadget(0007,534,3,100,16,"Beenden")
              TextGadget(0005,4,2,400,30,"Created 2006 by Hiveworx - Engine V.1.24 (Earthlink)")
              SetGadgetColor(0005, #PB_Gadget_BackColor ,RGB(0, 0, 0))
              SetGadgetColor(0003, #PB_Gadget_BackColor ,RGB(0, 0, 0))
               SetGadgetColor(0005,#PB_Gadget_FrontColor,RGB(128, 128, 128))
          CloseGadgetList() 
          
          CreateStatusBar(0009, WindowID(0002))
              AddStatusBarField(100)
              AddStatusBarField(540)
          
          PanelGadget     (0, 2, 2, 636, 414)
              AddGadgetItem (0, -1, "Status")
                Frame3DGadget(0010, 4, 4, 624, 380, "Status")
              AddGadgetItem (0, -1, "Account")
                Frame3DGadget(0011, 4, 4, 624, 380, "Account")
              AddGadgetItem (0, -1, "Einstellungen")
                Frame3DGadget(0012, 4, 4, 624, 380, "Einstelungen")
              AddGadgetItem (0, -1, "Update")
                Frame3DGadget(0013, 4, 4, 624, 380, "Update")
              AddGadgetItem (0, -1, "Log")
                Frame3DGadget(0014, 4, 4, 624, 380, "Log")
              AddGadgetItem (0, -1, "Neuigkeiten")
                Frame3DGadget(0008, 4, 4, 624, 380, "Neuigkeiten") 

                WebGadget(0006, 8, 18, 616, 360, "hiveworx.dyndns.org", #PB_Web_Mozilla) 
                
                Repeat
          
          Event =WindowEvent()
          
          If Event = #PB_Event_Gadget
      ;Debug EventGadget()

      Select EventGadget()

        Case 0004:
           CloseWindow(0002)
           
        Case 0007:
            End
      EndSelect
    EndIf
          StatusBarText(0009, 0, FormatDate("%hh:%ii:%ss", Date())) 
          
          
                Until Quit = 1
      EndIf  
    EndIf
    
    If Event = #PB_Event_Gadget
      ;Debug EventGadget()

      Select EventGadget()

        Case 0004:
           CloseWindow(0002)
           
        Case 0007:
            End
      EndSelect
    EndIf
    
  Until Quit=1
  
EndIf 

Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

Das Probelm ist folgendes:

So was wie

Code: Alles auswählen

ButtonGadget(0004,534,20,100,16,"Minimieren")
; oder
CreateStatusBar(0009, WindowID(0002)) 
              AddStatusBarField(100) 
              AddStatusBarField(540)
gehöhrt alles außerhalb der Schleife:

- Festermachen
- Buttons und andere Dinge setzten
* REPEAT
- WaitWindowEvent()
- Abfragen wie GetGadgetText() oder Befehle wie SetGadgetColor()
* UNTIL

EDIT :

sry ist ja so aber ´dafür ein anderes PROBLEM :

du hast ja eine Hauptschleife, und wenn er dann in die Kleine wechselt das hält er sich doch in der kleinen Schleife auf, dass heißt das das erste Fenster nicht mehr erneuert wird, also das WindowEvent nur für das 2. Fenster gilt. Du müsstest als alles den Inhalt der kleinen Schleife in die Haupschleife machen und dann vor WindowEvent() sagen welches Fenster du meinst.
Zuletzt geändert von STARGÅTE am 30.06.2006 12:16, insgesamt 1-mal geändert.
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
smateja
Beiträge: 250
Registriert: 25.11.2004 19:51
Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS

RE:

Beitrag von smateja »

verseh ich nun nicht ganz - da ich ja das ganze fenster on-the-fly oder by-the -way kp wie manns nennt - halt zur laufzeit erstellen lasse!? macht das echt n unterschied - dass wenn ich den button erst innerhlab der schleife erstellen lasse ? - *planlosbin*
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

ich habe das was ge-Edit !!
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
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Logikproblem Schleife

Beitrag von Kiffi »

Hallo smateja,

Ein Delay(0) nach dem StatusBarText() sollte das Redraw-Problem lösen.

... und benenne das Quit des inneren Fensters um, denn ansonsten schliesst
Du mit dem inneren Fenster auch sofort das äussere.

Grüße ... Kiffi
a²+b²=mc²
smateja
Beiträge: 250
Registriert: 25.11.2004 19:51
Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS

RE:

Beitrag von smateja »

nice try aber nö - *G mit delay (1) flackerts nimmer so schlimm - super merci für den tipp - aber DAS IST NicHT MEIN PROBLEM *G lol -
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: RE:

Beitrag von Kiffi »

smateja hat geschrieben:nice try aber nö - *G mit delay (1) flackerts nimmer so schlimm - super merci für den tipp - aber DAS IST NicHT MEIN PROBLEM *G lol -
Ägypten? Wenn Du möchtest, dass man Dir hilft, solltest Du Dich schon ein
wenig verständlicher ausdrücken.

Grüße ... Kiffi
a²+b²=mc²
smateja
Beiträge: 250
Registriert: 25.11.2004 19:51
Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS

RE:

Beitrag von smateja »

einfach den obersten post lesen - es geht darum dass hier - ach - code klemmt - also a) entweder geht die updategeschichte nicht von der anzeige her - oder b) wenn ich den code änder wie oben - geht der update der zeit - wollen die buttons nimmer - gerade der der minimiert - mhmm ?! - ich hab zwar kein plan von proggen - aber ich kann lesen - nicht persönlich nehmen.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> ich hab zwar kein plan von proggen - aber ich kann lesen

:lol: :lol: :lol:

aber von schreiben hast du auch keinen plan?

www.albinoblacksheep.com/flash/posting.php

wenn du hilfe suchst, solltest du dein problem möglichst genau und umfassend schildern, weil unsere kristallkugeln grad beim polieren sind.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
smateja
Beiträge: 250
Registriert: 25.11.2004 19:51
Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS

RE:

Beitrag von smateja »

mkay - also ich versuchs nochmal so zu schildern dass man es verstehen könnte - ALSO -

Schritt 1: Code gucken - dieser funktioniert zwar insoweit - dass auf der STatusbar die Zeit geupdated wird - jedoch klemmt sich der "minimiren button" - laß ich die ganze geschichte mit der schleife dort weg - aktualisiert sich zwar die statusbar nimmer - aber dafür gehen die buttons - was mach ich falsch -

anbei bei unklarheiten bitte mich auch via skype oder msn kontaktieren *G oder icq - oder handy oder wie auch immer - fals hier noch probleme im verständnis mit meinem post auftreten.

PS: war klar das die aussage kommt mit dem schreiben - ich sag nur - schulz von thun - Kommunikationsprobleme - sender - empfänger etc - egal - hoffe es war nun verständlich - ansonsten nochmals sagen - dann versuch ich ne kleine bildergeschichte als nächsten move - könnte auch interessant werden!?



Nachtrag: der minimieren button geht eigentlich auch - nur gelingt es mir nicht den code so zu verändern dass wenn ich ja das fenster zerstöre - gibts auch keine statusbar mehr die er updaten kann und bricht somit ab - SO - jemand ne idee wie man das am besten lösen könnte ? nett wären hier auch div. codevorschläge
Antworten