Toggle (Anfänger-Tip)

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Vera
Beiträge: 928
Registriert: 18.03.2009 14:47
Computerausstattung: Win XP SP2, Suse 11.1
Wohnort: Essen

Re: Toggle

Beitrag von Vera »

NicTheQuick hat geschrieben:-= Thread abgeschnitten =-
Schon wieder viel sauberer hier :)
der abgetrennte Teil geht hier weiter: Alltagsdiskussionen über Copyright, Orthogonalität...

und Tommy den Thread zu säubern, bei dem was die letzten zwei Tage danach abgelaufen ist, war vergebene Liebesmüh
°
<°)))o><
~~~~~~~~~
echo "Don't worry"
echo "Keep quiet"
@echo off
format forum:\
Benutzeravatar
Tommy
Spassvogel
Beiträge: 319
Registriert: 17.10.2013 14:36

Re: Toggle (Anfänger-Tip)

Beitrag von Tommy »

Hab etwas neues hinzugefügt: #PB_Toggle_String_URL

Code: Alles auswählen

;(c) Tommy
Enumeration Toggle
  #PB_Toggle_Gadget_EnableDisable;Nur Windows
  #PB_Toggle_Gadget_ShowHide;Nur Windows
  #PB_Toggle_Gadget_Size
  #PB_Toggle_Window_EnableDisable;Nur Windows
  #PB_Toggle_Window_ShowHide;Nur Windows
  #PB_Toggle_Window_Size
  #PB_Toggle_Number
  #PB_Toggle_Color
  #PB_Toggle_String_ULCase
  #PB_Toggle_String_Reverse
  #PB_Toggle_String_URL
EndEnumeration

Procedure Toogle(Value, Type)
  Protected i, Str.s, Str2.s
 
  CompilerIf #PB_Compiler_OS = #PB_OS_Windows
    Select Type
      Case #PB_Toggle_Gadget_EnableDisable
        DisableGadget(Value, IsWindowEnabled_(GadgetID(Value)))
      Case #PB_Toggle_Gadget_ShowHide
        HideGadget(Value, IsWindowVisible_(GadgetID(Value)))
      Case #PB_Toggle_Window_EnableDisable
        DisableWindow(Value, IsWindowEnabled_(WindowID(Value)))
      Case #PB_Toggle_Window_ShowHide
        HideWindow(Value, IsWindowVisible_(WindowID(Value)))
    EndSelect
  CompilerEndIf
  Select Type
    Case #PB_Toggle_Number
      ProcedureReturn -Value
    Case #PB_Toggle_Color
      ProcedureReturn $FFFFFF - Value
    Case #PB_Toggle_String_ULCase
      Str = PeekS(Value)
      For i=1 To Len(Str)
        If Asc(Mid(Str, i, 1)) < 97 : Str2 + LCase(Mid(Str, i, 1))
        Else : Str2 + UCase(Mid(Str, i, 1))
        EndIf
      Next i
      PokeS(Value, Str2)
    Case #PB_Toggle_String_Reverse
      PokeS(Value, ReverseString(PeekS(Value)))
    Case #PB_Toggle_Gadget_Size
      ResizeGadget(Value, #PB_Ignore, #PB_Ignore, GadgetHeight(Value), GadgetWidth(Value))
    Case #PB_Toggle_Window_Size
      ResizeWindow(Value, #PB_Ignore, #PB_Ignore, WindowHeight(Value), WindowWidth(Value))
    Case #PB_Toggle_String_URL
      Str = PeekS(Value)
      If FindString(Str, "%")
        PokeS(Value, URLDecoder(Str))
      Else
        PokeS(Value, URLEncoder(Str))
      EndIf
  EndSelect
EndProcedure

Define event

OpenWindow(0, 0, 0, 200, 500, "", #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_Invisible)
ButtonGadget(0, 60, 75, 75, 20, "OK")
HideGadget(0, 1)
Toogle(0, #PB_Toggle_Gadget_EnableDisable)
Toogle(0, #PB_Toggle_Gadget_ShowHide)

Define TestString.s = "Hallo"
Toogle(@TestString, #PB_Toggle_String_ULCase)
Debug TestString
Toogle(@TestString, #PB_Toggle_String_Reverse)
Debug TestString
Debug Toogle(RGB(255, 0, 0), #PB_Toggle_Color)
Toogle(0, #PB_Toggle_Window_ShowHide)
Toogle(0, #PB_Toggle_Window_Size)
TestString = "http://www.äpfelstrraße.com"
Toogle(@TestString, #PB_Toggle_String_URL)
Debug TestString
Toogle(@TestString, #PB_Toggle_String_URL)
Debug TestString

Repeat
  event = WaitWindowEvent()
Until event = #PB_Event_CloseWindow
So kann man URL hin und her kodieren.
PB 5.41 x64
Antworten