Aktuelle Zeit: 03.06.2020 21:37

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags: Re: Gadgets unter Windows
BeitragVerfasst: 20.05.2020 16:39 
Offline
Benutzeravatar

Registriert: 03.08.2005 21:06
Wohnort: Germ-any
Servus,
ich denke, ich bin schon selbst drüber gestolpert:

1.
Code:
 
  Check_Input(   #WindowTest_String_sTest)
  Check_Input(   #WindowTest_String_fFloat)
  Check_Input(   #WindowTest_String_tStringtest)

Wenn die initiale Überprüfung vor der Repeat-Schleife steht, wird keine Zeit verbraucht.
2.
Code:
        Case     #WindowTest_String_sTest,   #WindowTest_String_fFloat ,  #WindowTest_String_tStringtest
          If EventType() = #PB_EventType_Change
            Check_Input(EventGadget())
          EndIf

Diese Abfrage ist sicherlich simpler und selektiver als alle nochmal nacheinander aufzurufen.

Übrigens funktioniert es nun auch mit Delay() innerhalb der Schleife und mit getrennten Proceduren.

Und die .w, .l etc. behalte ich bei. Enableexplicit zeigt mir immer wieder die kleinen unnötigen Schlampereien.

Aber: nach wie vor vielen Dank HeXOR!! :bounce:
Wenn man sich von der funktionierenden Seite aus nähert, geht es um einiges leichter! Danke dafür!

Viele Grüße
LN

PS: Der gesamte Code nochmal.

Code:
Enumeration  3
  #Font_5
EndEnumeration

Global wFontHeight.w

Procedure.w FontLaden()            ;
  If  LoadFont(#Font_5,  "Arial"  ,  12)
  Else
    Debug "Font 5 nicht geladen"
  EndIf
EndProcedure

Enumeration 950
  #NichtsGeschehen       
  #AbbruchOhneUebernahme
  #EndeMitDatenuebernahme
  #BestehendeDatenAuslesen
  #InputGUI_OK
  #InputGUI_Cancel
 
EndEnumeration

Procedure.w CheckContent(Content.s)
  Protected result.w = 0
  If Len(Content) < 3 Or Trim(Content) = ""
    result = 5
  EndIf
  ProcedureReturn result
EndProcedure

Procedure Check_Input(GadgetNo.w)
  Protected CheckContent.s
  CheckContent = GetGadgetText(GadgetNo)
  If CheckContent(CheckContent) > 1
    SetGadgetColor(GadgetNo, #PB_Gadget_BackColor,RGB(255,0,0))
  Else
    SetGadgetColor(GadgetNo, #PB_Gadget_BackColor,RGB(255,255,255))
  EndIf
EndProcedure

Procedure FillKramComboBox(GadgetNo.w)
  AddGadgetItem(GadgetNo, -1 , "einerseits" )
  AddGadgetItem(GadgetNo, -1 , "andererseits" )
  AddGadgetItem(GadgetNo, -1 , "dannwieder" )
EndProcedure

Enumeration FormWindow
  #WindowTest
EndEnumeration

Enumeration FormGadget
  #WindowTest_Text_wTest1
  #WindowTest_Text_sTest
  #WindowTest_Text_fFloat
  #WindowTest_Text_tStringtest
  #WindowTest_Button_Ok
  #WindowTest_Button_Cancel
  #WindowTest_Button_FontPlus
  #WindowTest_Button_FontMinus
 
  #WindowTest_Combo_wTest1
  #WindowTest_String_sTest
  #WindowTest_String_fFloat
  #WindowTest_String_tStringtest
EndEnumeration

Procedure OpenWindowTest(x = 0, y = 0, width = 700, height = 500)
  OpenWindow(  #WindowTest, x, y, width, height,"Zeuges"  , #PB_Window_SystemMenu|  #PB_Window_SizeGadget  )
  StickyWindow(  #WindowTest, #True)
 
  ButtonGadget(  #WindowTest_Button_Ok, 580, 260, 100, 40, "OK")
  ButtonGadget(  #WindowTest_Button_Cancel, 450, 260, 100, 40, "Cancel")
 
  TextGadget(  #WindowTest_Text_wTest1, 20, 20, 160, 40, "Auswahl" )
  TextGadget(  #WindowTest_Text_sTest, 20, 80, 160, 40, "Text" )
  TextGadget(  #WindowTest_Text_fFloat, 20, 140, 160, 40, "Float" )
  TextGadget(  #WindowTest_Text_tStringtest, 20, 200, 160, 40, "LangText" )
  ComboBoxGadget(  #WindowTest_Combo_wTest1, 240, 20, 440, 40 )
  StringGadget(  #WindowTest_String_sTest, 240, 80, 440, 40, "")
  StringGadget(  #WindowTest_String_fFloat, 240, 140, 440, 40, "")
  EditorGadget(  #WindowTest_String_tStringtest, 240, 200, 440, 40);, "")
 
EndProcedure


Procedure FontSetzen(wInput.w)
  SetGadgetFont(   #WindowTest_Combo_wTest1, FontID(wInput))
  SetGadgetFont(   #WindowTest_Text_wTest1, FontID(wInput))
  SetGadgetFont(   #WindowTest_String_sTest, FontID(wInput))
  SetGadgetFont(   #WindowTest_Text_sTest, FontID(wInput))
  SetGadgetFont(   #WindowTest_String_fFloat, FontID(wInput))
  SetGadgetFont(   #WindowTest_Text_fFloat, FontID(wInput))
  SetGadgetFont(   #WindowTest_String_tStringtest, FontID(wInput))
  SetGadgetFont(   #WindowTest_Text_tStringtest, FontID(wInput))
EndProcedure


Procedure.w WindowTest_Event()
  Protected result.w = 0
  Protected event.w
 
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      result =  #AbbruchOhneUebernahme
     
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #WindowTest_String_sTest, #WindowTest_String_fFloat, #WindowTest_String_tStringtest
          If EventType() = #PB_EventType_Change
            Check_Input(EventGadget())
          EndIf
        Case #WindowTest_Button_Cancel, #WindowTest_Button_Ok
          result =  #AbbruchOhneUebernahme
         
      EndSelect
     
  EndSelect
  ProcedureReturn result
EndProcedure

Procedure.w STRG_MaskeTest()
  Shared wFontHeight
  wFontHeight = #Font_5
  Protected switch.w
  OpenWindowTest(0)
  FillKramComboBox(  #WindowTest_Combo_wTest1)
  FontSetzen(wFontHeight)
  ;   SetGadgetText( #WindowTest_String_sTest, "Dideldum")
  ;   SetGadgetText( #WindowTest_String_fFloat, "1.453")
  ;   SetGadgetText( #WindowTest_String_tStringtest, "BlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaBlaDideldum")
 
 
  Check_Input(   #WindowTest_String_sTest)
  Check_Input(   #WindowTest_String_fFloat)
  Check_Input(   #WindowTest_String_tStringtest)
 
 
  Repeat
    switch = WindowTest_Event()
    Delay (10)
  Until switch =  #EndeMitDatenuebernahme Or  switch =   #AbbruchOhneUebernahme
  CloseWindow(#WindowTest)
  ProcedureReturn switch
EndProcedure

; los gehts

Fontladen()

STRG_MaskeTest( )

_________________
Nullius jurare in verba magistri.
icore3 mit Ubuntu-14.04 und Win7-64


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Gadgets unter Windows
BeitragVerfasst: 20.05.2020 18:07 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Bitte das Delay raus. Sonst werden die vielen Events nicht schnell genug vom System verarbeitet und es kann zur Meldung kommen "Anwendung reagiert nicht mehr"

Darum kümmert sich schon WaitWindowEvent das nicht keine Leistung verloren geht.

_________________
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.4x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf My Webspace


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ]  Gehe zu Seite Vorherige  1, 2

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: Majestic-12 [Bot] und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye