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
Tommy
Spassvogel
Beiträge: 319
Registriert: 17.10.2013 14:36

Toggle (Anfänger-Tip)

Beitrag von Tommy »

Hab eine universale Funktion gebaut die folgendes machen kann:
-Gadget aktivieren oder deaktivieren
-Gadget verstecken oder anzeigen
-Gadget Breite und Höhe vertauschen
-Fenster aktivieren oder deaktivieren
-Fenster verstecken oder anzeigen
-Fenster Breite und Höhe vertauschen
-Nummer Vorzeichen umkehren
-Farbe umkehren
-Text Groß und Kleinschreibung umkehren
-Text vorwärts oder rückwärts
Vorteil: Man muss nicht wissen ob zum beispiel gerade deaktiviert ist, einfach toggeln.
Mein Code leider teilweise nur für Windows!

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
Zuletzt geändert von Tommy am 27.01.2015 14:28, insgesamt 5-mal geändert.
PB 5.41 x64
Benutzeravatar
JMaker
Beiträge: 102
Registriert: 19.01.2015 10:18

Re: Toggle

Beitrag von JMaker »

Coool, gefällt mir, danke fürs teilen :)
Ich benutze Pure Basic 5.30 auf Microsoft Windows 7.
Gruß
JM
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Toggle

Beitrag von NicTheQuick »

Nur eine Frage: Warum 'Value/-1' und nicht einfach '-Value'?
Benutzeravatar
Tommy
Spassvogel
Beiträge: 319
Registriert: 17.10.2013 14:36

Re: Toggle

Beitrag von Tommy »

/-1 hab ich in Mathe gelernt. -Value kannte ich noch nich.
Danke für den Tip. :allright:
Zuletzt geändert von Tommy am 26.01.2015 14:52, insgesamt 1-mal geändert.
PB 5.41 x64
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 »

JMaker hat geschrieben:Coool, gefällt mir, danke fürs teilen :)
Vorsicht JM,

alle Codes von Tommy sind nur zum MIT-teilen , ohne Erlaubnis, darfst Du keinen davon nutzen
Tommy hat geschrieben:;(c) Tommy
Es sind keine herzlichen Geschenke an die Gemeinschaft :(
Tommy hat geschrieben:Mein Code leider teilweise nur für Windows!
Ja ... und selbst wenn man es berücksichtigen würde ...

Code: Alles auswählen

CompilerIf #PB_Compiler_OS = #PB_OS_Windows
Select
  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
... gäb's auch nix zu sehen. 8)

cheers ~ Vera
°
<°)))o><
~~~~~~~~~
echo "Don't worry"
echo "Keep quiet"
@echo off
format forum:\
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Toggle

Beitrag von NicTheQuick »

Das Copyright hat in Deutschland nichts zu sagen. Hier gilt das Urheberrecht. Außerdem ist (c) die falsche Schreibweise. (C) wäre richtig, wenn man schon nicht © benutzen möchte. Aber ausgeschrieben ist es eh vorzuziehen. Zudem steht da nur sein Nickname und nicht sein richtiger Name und das Datum fehlt.

Streng genommen muss man Tommy natürlich um Erlaubnis bitten, wenn man seinen Code in kommerziellen Projekten nutzen möchte. Andererseits kann man sich darüber streiten, ob die Schöpfungshöhe erreicht wurde um überhaupt das Urheberrecht gelten machen zu können.

Was ich damit sagen will: Bei allen Codes hier im Forum muss man um Erlaubnis fragen, wenn man sie benutzen möchte, da das Urheberrecht in Deutschland immer existiert. Der Vermerk "(c) Tommy" sagt also genau so viel aus wie wenn er einfach nichts dahin geschrieben hätte. :wink:
Benutzeravatar
Tommy
Spassvogel
Beiträge: 319
Registriert: 17.10.2013 14:36

Re: Toggle

Beitrag von Tommy »

@Vera
Mein (C) Vermerk bedeutet nur das ich der Urheber bin mehr nicht. Andere machen es auch.
Natürlich dürfen alle meine Codes benutzen, verändern und verteilen, auch ohne Namensnennung.
Keine Sorge ich lege für meine Codes keine Nutzungseinschränkungen fest. :)
Zuletzt geändert von Tommy am 26.01.2015 14:51, insgesamt 1-mal geändert.
PB 5.41 x64
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Toggle

Beitrag von NicTheQuick »

-= Thread abgeschnitten =-
Schon wieder viel sauberer hier :)
Benutzeravatar
Tommy
Spassvogel
Beiträge: 319
Registriert: 17.10.2013 14:36

Re: Toggle (Anfänger-Tip)

Beitrag von Tommy »

Ich habe mein Code verbessert und habe bei Winsachen Compilerif hinzugefügt und es wird "-Value" genutzt.

Code: Alles auswählen

Code siehe oben
Zuletzt geändert von Tommy am 27.01.2015 14:28, insgesamt 1-mal geändert.
PB 5.41 x64
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Toggle (Anfänger-Tip)

Beitrag von Nino »

Cave: Dies ist kein Anfänger-Tipp!

Es ist überhaupt kein Tipp, sondern ein Anti-Tipp.
Er zeigt, wie man es gerade nicht machen sollte: diverse Dinge, die nichts miteinander zu tun haben, in einem Topf werfen (in eine Prozedur schreiben).
Antworten