Seite 1 von 2

Gerätfarbe verändern

Verfasst: 17.04.2018 16:10
von Josef Berger
Werte Gemeinde!

Ich freue mich, Sie mitteilen zu dürfen, dass ich jetzt die Vollversion besitze und ich kann das Produkt uneingeschränkt nutzen.
Heute fing ich sofort an, mein erstes Produkt zu erschaffen, nachdem ich schon eine Produktidee gefunden habe. Ich schreibe zuerst den Gestaltungsbereich (unredl. Design) und habe schon mein erstes Problem bei der Umsetzung.
Fenster, Schnurgerät und Herausgebergerät kann ich problemlos einfärben, aber ich will auch das Rahmengerät einfärben. Leider gibt es laut Hilfe keine Möglichkeit, den Hintergrund zu verändern.
Hier mein Quelltext meines Produktes im Anfangsstadium:

Code: Alles auswählen





Define Ereignis
Define GeraetEreignis

If OpenWindow(1, 0, 0, 1000, 850, "Faden erschaffen", #PB_Window_SystemMenu)
  If ContainerGadget(1, 0, 0, 1000, 850, #PB_Container_Raised)
    If FrameGadget(2, 50, 50, 900, 750, "Faden erschaffen")
      TextGadget(3, 100, 100, 100, 20, "Betreff")
      StringGadget(4, 100, 120, 800, 20, "")
      
      ButtonGadget(7, 100, 170, 100, 20, "Fett")
      ButtonGadget(8, 100, 190, 100, 20, "Kursiv")
      ButtonGadget(9, 100, 210, 100, 20, "Unterstrichen")
      ButtonGadget(10, 100, 230, 100, 20, "Zitat")
      ButtonGadget(11, 100, 250, 100, 20, "Aufzählung")
      ButtonGadget(12, 100, 270, 100, 20, "Aufzählungspunkt")
      ButtonGadget(13, 100, 290, 100, 20, "Bild")
      ButtonGadget(14, 100, 310, 100, 20, "Adresse")
      
      ButtonGadget(16, 100, 360, 20, 20, ":D")
      ButtonGadget(17, 120, 360, 20, 20, ":)")
      ButtonGadget(18, 140, 360, 20, 20, ":(")
      ButtonGadget(19, 160, 360, 20, 20, ":p")
      ButtonGadget(20, 180, 360, 20, 20, ":?")
      ButtonGadget(21, 100, 380, 20, 20, "8)")
      ButtonGadget(22, 120, 380, 20, 20, "<)")
      ButtonGadget(23, 140, 380, 20, 20, ";)")
      ButtonGadget(24, 160, 380, 20, 20, ":|")
      ButtonGadget(25, 180, 380, 20, 20, ">:)")
      ButtonGadget(26, 100, 400, 20, 20, ":P")
      ButtonGadget(27, 120, 400, 20, 20, "xD")
      ButtonGadget(28, 140, 400, 20, 20, "^^")
      ButtonGadget(29, 160, 400, 20, 20, ":*")
      ButtonGadget(30, 180, 400, 20, 20, "-.-")
      ButtonGadget(31, 100, 420, 100, 20, "------------------------------")
      
      ComboBoxGadget(35, 100, 470, 100, 20)
      
      TextGadget(15, 100, 150, 100, 20, "Formatierung")
      TextGadget(33, 100, 450, 100, 20, "Textbausteine")
      TextGadget(34, 100, 340, 100, 20, "Emotionen")
      TextGadget(5, 220, 150, 100, 20, "Nachrichtentext")
      EditorGadget(6, 220, 170, 680, 500)
      
      ButtonGadget(32, 450, 700, 200, 50, "Publizieren")
      
    EndIf
  EndIf
  
  SetWindowColor(1, RGB(255, 237, 195))
  
  SetGadgetColor(1, 2, RGB(255, 237, 195))
  SetGadgetColor(3, 2, RGB(255, 237, 195))
  SetGadgetColor(5, 2, RGB(255, 237, 195))
  SetGadgetColor(15, 2, RGB(255, 237, 195))
  SetGadgetColor(33, 2, RGB(255, 237, 195))
  SetGadgetColor(34, 2, RGB(255, 237, 195))
  
  SetGadgetColor(4, 2, RGB(255, 242, 213))
  SetGadgetColor(6, 2, RGB(255, 242, 213))
  
  Repeat
    Ereignis = WaitWindowEvent()
    If Ereignis = #PB_Event_Gadget
      GeraetEreignis = EventGadget()
      If GeraetEreignis = 1
        
      EndIf
    EndIf
  Until Ereignis = #PB_Event_CloseWindow
EndIf




Fragend,
Josef Berger

Re: Gerätfarbe verändern

Verfasst: 17.04.2018 17:15
von Mijikai
Wie lautet die Frage unredl. ?

Antwortend und fragend,
Mijikai

Re: Gerätfarbe verändern

Verfasst: 17.04.2018 17:22
von Josh
Josef Berger hat geschrieben:Fenster, Schnurgerät und Herausgebergerät kann ich problemlos einfärben, aber ich will auch das Rahmengerät einfärben.
Sepp, i versteh nua bahnhof.

Re: Gerätfarbe verändern

Verfasst: 17.04.2018 17:44
von Kiffi
... und so uneinheitlich!

Define, If, OpenWindow, ContainerGadget, FrameGadget, TextGadget, StringGadget... Da wird mir vor lauter Unredlichkeit ganz schwummerig. :freak:

Re: Gerätfarbe verändern

Verfasst: 17.04.2018 17:52
von Bisonte
Um das mal sachlich in meiner Mundart zu beantworten :

Wenn datt nich inne Hülfe drinsteihen tut, dann geiht datt nich! :mrgreen:

Re: Gerätfarbe verändern

Verfasst: 17.04.2018 18:20
von diceman
Mal unabhängig von Ihrer Frage ... warum erstellen Sie sich nicht einfach zu jedem unredlichen Befehl ein Macro in sittlichem Hochdeutsch? :?

Re: Gerätfarbe verändern

Verfasst: 17.04.2018 18:22
von RSBasic
Ich versteh auch nur Bahnhof. :mrgreen:

Re: Gerätfarbe verändern

Verfasst: 17.04.2018 18:35
von ccode_new
Sehr geehrter Herr Berger,

ich habe für Sie hier einmal eine Lösung ohne erweiterte Fensterrahmenarbeits-Funktionen (Windows-Framework/API).

Code: Alles auswählen

Define Ereignis
Define GeraetEreignis

Procedure.i Rahmengeraet_mit_Farbe(FrameGadget, BGColor, FGColor = 0) ;Nach Erstellung von FrameGadget aufrufen. (Arbeit ohne erweiterte API)
  Protected ft, txt
  Protected h, w
  ft = TextGadget(#PB_Any,0,0,0,0,GetGadgetText(FrameGadget))
  w = GadgetWidth(ft,#PB_Gadget_RequiredSize)
  h = GadgetHeight(ft,#PB_Gadget_RequiredSize)
  txt = TextGadget(#PB_Any,GadgetX(FrameGadget)+8,GadgetY(FrameGadget),w,h,GetGadgetText(FrameGadget))
  SetGadgetText(FrameGadget,"")
  SetGadgetColor(txt,#PB_Gadget_BackColor,BGColor)
  SetGadgetColor(txt,#PB_Gadget_FrontColor,FGColor)
  FreeGadget(ft)
  ProcedureReturn txt
EndProcedure

If OpenWindow(1, 0, 0, 1000, 850, "Faden erschaffen", #PB_Window_SystemMenu)
  If ContainerGadget(1, 0, 0, 1000, 850, #PB_Container_Raised)
    If FrameGadget(2, 50, 50, 900, 750, "Faden erschaffen")
      
      Rahmengeraet_mit_Farbe(2, RGB(255, 237, 195)) ;Hier aufgerufen.
      
      TextGadget(3, 100, 100, 100, 20, "Betreff")
      StringGadget(4, 100, 120, 800, 20, "")
      
      ButtonGadget(7, 100, 170, 100, 20, "Fett")
      ButtonGadget(8, 100, 190, 100, 20, "Kursiv")
      ButtonGadget(9, 100, 210, 100, 20, "Unterstrichen")
      ButtonGadget(10, 100, 230, 100, 20, "Zitat")
      ButtonGadget(11, 100, 250, 100, 20, "Aufzählung")
      ButtonGadget(12, 100, 270, 100, 20, "Aufzählungspunkt")
      ButtonGadget(13, 100, 290, 100, 20, "Bild")
      ButtonGadget(14, 100, 310, 100, 20, "Adresse")
      
      ButtonGadget(16, 100, 360, 20, 20, ":D")
      ButtonGadget(17, 120, 360, 20, 20, ":)")
      ButtonGadget(18, 140, 360, 20, 20, ":(")
      ButtonGadget(19, 160, 360, 20, 20, ":p")
      ButtonGadget(20, 180, 360, 20, 20, ":?")
      ButtonGadget(21, 100, 380, 20, 20, "8)")
      ButtonGadget(22, 120, 380, 20, 20, "<)")
      ButtonGadget(23, 140, 380, 20, 20, ";)")
      ButtonGadget(24, 160, 380, 20, 20, ":|")
      ButtonGadget(25, 180, 380, 20, 20, ">:)")
      ButtonGadget(26, 100, 400, 20, 20, ":P")
      ButtonGadget(27, 120, 400, 20, 20, "xD")
      ButtonGadget(28, 140, 400, 20, 20, "^^")
      ButtonGadget(29, 160, 400, 20, 20, ":*")
      ButtonGadget(30, 180, 400, 20, 20, "-.-")
      ButtonGadget(31, 100, 420, 100, 20, "------------------------------")
      
      ComboBoxGadget(35, 100, 470, 100, 20)
      
      TextGadget(15, 100, 150, 100, 20, "Formatierung")
      TextGadget(33, 100, 450, 100, 20, "Textbausteine")
      TextGadget(34, 100, 340, 100, 20, "Emotionen")
      TextGadget(5, 220, 150, 100, 20, "Nachrichtentext")
      EditorGadget(6, 220, 170, 680, 500)
      
      ButtonGadget(32, 450, 700, 200, 50, "Publizieren")
      
    EndIf
  EndIf
  
  SetWindowColor(1, RGB(255, 237, 195))
  
  SetGadgetColor(1, 2, RGB(255, 237, 195))
  SetGadgetColor(3, 2, RGB(255, 237, 195))
  SetGadgetColor(5, 2, RGB(255, 237, 195))
  SetGadgetColor(15, 2, RGB(255, 237, 195))
  SetGadgetColor(33, 2, RGB(255, 237, 195))
  SetGadgetColor(34, 2, RGB(255, 237, 195))
  
  SetGadgetColor(4, 2, RGB(255, 242, 213))
  SetGadgetColor(6, 2, RGB(255, 242, 213))
  
  Repeat
    Ereignis = WaitWindowEvent()
    If Ereignis = #PB_Event_Gadget
      GeraetEreignis = EventGadget()
      If GeraetEreignis = 1
        
      EndIf
    EndIf
  Until Ereignis = #PB_Event_CloseWindow
EndIf
Ich hoffe sehr ihnen mundet mein dargelegter Quelltext in Reiner-Grundausstattung (PureBasic).

Re: Gerätfarbe verändern

Verfasst: 17.04.2018 19:10
von diceman
Wie mundet Ihnen mein (redlicher) Lösungsansatz?
Sorry, konnte nicht widerstehen ... :twisted: und jetzt wieder back to topic, ich störe nicht mehr. :wink:

Code: Alles auswählen

Macro Bestimme()
	Define
EndMacro

Macro Wenn()
	If
EndMacro
	
Macro WennEnde()
	EndIf
EndMacro

Macro Wiederhole()
	Repeat
EndMacro
	
Macro Bis()
	Until
EndMacro

Macro FensterOffen(fensterKennziffer,x,y,weit,hoch,ausdruck,unbeugsame)
	OpenWindow(fensterKennziffer, x, y, weit, hoch, ausdruck, unbeugsame)
EndMacro

Macro UnbeugsameReineGrundausstattung_Fenster_GefuegeAuswahl()
	#PB_Window_SystemMenu
EndMacro

Macro UnbeugsameReineGrundausstattung_Schatulle_Hebung()
	#PB_Container_Raised
EndMacro

Macro SchatullenGeraet(geraetKennziffer,x,y,weit,hoch,unbeugsame)
	ContainerGadget(geraetKennziffer,x,y,weit,hoch,unbeugsame)
EndMacro

Macro RahmenGeraet(geraetKennziffer,x,y,weit,hoch,ausdruck)
	FrameGadget(geraetKennzifer,x,y,weit,hoch,ausdruck)
EndMacro

Macro SchriftGeraet(geraetKennziffer,x,y,weit,hoch,ausdruck)
	TextGadget(geraetKennziffer,x,y,weit,hoch,ausdruck)
EndMacro

Macro SchnurGeraet(geraetKennziffer,x,y,weit,hoch,inhalt)
	TextGadget(geraetKennziffer,x,y,weit,hoch,inhalt)
EndMacro

Macro KnopfGeraet(geraetKennziffer,x,y,weit,hoch,ausdruck)
	ButtonGadget(geraetKennziffer,x,y,weit,hoch,ausdruck)
EndMacro

Macro AbfolgeKistenGeraet(geraetKennziffer,x,y,weit,hoch)
	ComboBoxGadget(geraetKennziffer,x,y,weit,hoch)
EndMacro

Macro VerlegerGeraet(geraetKennziffer,x,y,weit,hoch)
	EditorGadget(geraetKennziffer,x,y,weit,hoch)
EndMacro

Macro BestimmeFensterFarbe(fensterKennziffer,rot,gruen,blau)
	SetWindowColor(1, RGB(rot,gruen,blau))
EndMacro

Macro BestimmeGeraetFarbe(geraetKennziffer,farbenGrundbegriff,rot,gruen,blau)
	SetGadgetColor(geraetKennziffer, farbenGrundbegriff, RGB(rot,gruen,blau))
EndMacro

Macro ErwarteFensterEreignis()
	WaitWindowEvent()
EndMacro

Macro EreignisGeraet()
	EventGadget()
EndMacro

Macro UnbeugsameReineGrundausstattung_Ereignis_Geraet()
	#PB_Event_Gadget
EndMacro

Macro UnbeugsameReineGrundausstattung_Ereignis_FensterSchliessung()
	#PB_Event_CloseWindow
EndMacro

Code: Alles auswählen

Bestimme() Ereignis
Bestimme() GeraetEreignis


Wenn() FensterOffen(1, 0, 0, 1000, 850, "Faden erschaffen", UnbeugsameReineGrundausstattung_Fenster_GefuegeAuswahl())
  Wenn() SchatullenGeraet(1,0,0,1000,850,UnbeugsameReineGrundausstattung_Schatulle_Hebung())
    Wenn() RahmenGeraet(2, 50, 50, 900, 750, "Faden erschaffen")
      SchriftGeraet(3, 100, 100, 100, 20, "Betreff")
      SchnurGeraet(4, 100, 120, 800, 20, "")
     
      KnopfGeraet(7, 100, 170, 100, 20, "Fett")
      KnopfGeraet(8, 100, 190, 100, 20, "Kursiv")
      KnopfGeraet(9, 100, 210, 100, 20, "Unterstrichen")
      KnopfGeraet(10, 100, 230, 100, 20, "Zitat")
      KnopfGeraet(11, 100, 250, 100, 20, "Aufzählung")
      KnopfGeraet(12, 100, 270, 100, 20, "Aufzählungspunkt")
      KnopfGeraet(13, 100, 290, 100, 20, "Bild")
      KnopfGeraet(14, 100, 310, 100, 20, "Adresse")
     
      KnopfGeraet(16, 100, 360, 20, 20, ":D")
      KnopfGeraet(17, 120, 360, 20, 20, ":)")
      KnopfGeraet(18, 140, 360, 20, 20, ":(")
      KnopfGeraet(19, 160, 360, 20, 20, ":p")
      KnopfGeraet(20, 180, 360, 20, 20, ":?")
      KnopfGeraet(21, 100, 380, 20, 20, "8)")
      KnopfGeraet(22, 120, 380, 20, 20, "<)")
      KnopfGeraet(23, 140, 380, 20, 20, ";)")
      KnopfGeraet(24, 160, 380, 20, 20, ":|")
      KnopfGeraet(25, 180, 380, 20, 20, ">:)")
      KnopfGeraet(26, 100, 400, 20, 20, ":P")
      KnopfGeraet(27, 120, 400, 20, 20, "xD")
      KnopfGeraet(28, 140, 400, 20, 20, "^^")
      KnopfGeraet(29, 160, 400, 20, 20, ":*")
      KnopfGeraet(30, 180, 400, 20, 20, "-.-")
      KnopfGeraet(31, 100, 420, 100, 20, "------------------------------")
     
      AbfolgeKistenGeraet(35, 100, 470, 100, 20)
     
      SchriftGeraet(15, 100, 150, 100, 20, "Formatierung")
      SchriftGeraet(33, 100, 450, 100, 20, "Textbausteine")
      SchriftGeraet(34, 100, 340, 100, 20, "Emotionen")
      SchriftGeraet(5, 220, 150, 100, 20, "Nachrichtentext")
      VerlegerGeraet(6, 220, 170, 680, 500)
     
      KnopfGeraet(32, 450, 700, 200, 50, "Publizieren")
     
    WennEnde()
  WennEnde()
  
  BestimmeFensterFarbe(1,255,237,195)
 
  BestimmeGeraetFarbe(1,2,255,237,195)
  BestimmeGeraetFarbe(3,2,255,237,195)
  BestimmeGeraetFarbe(5,2,255,237,195)
  BestimmeGeraetFarbe(15,2,255,237,195)
  BestimmeGeraetFarbe(33,2,255,237,195)
  BestimmeGeraetFarbe(34,2,255,237,195)
 
  BestimmeGeraetFarbe(4,2,255,242,213)
  BestimmeGeraetFarbe(6,2,255,242,213)
 
  Wiederhole()
    Ereignis = ErwarteFensterEreignis()
    Wenn() Ereignis = UnbeugsameReineGrundausstattung_Ereignis_Geraet()
      GeraetEreignis = EreignisGeraet()
      Wenn() GeraetEreignis = 1
       
      WennEnde()
    WennEnde()
  Bis() Ereignis = UnbeugsameReineGrundausstattung_Ereignis_FensterSchliessung()
WennEnde()

Re: Gerätfarbe verändern

Verfasst: 17.04.2018 19:45
von ccode_new
Hallo diceman,

kleiner Fehler ;)

Code: Alles auswählen

Macro SchriftGeraet(geraetKennziffer,x,y,weit,hoch,ausdruck)
   TextGadget(geraetKennziffer,x,y,weit,hoch,ausdruck) 
EndMacro

;Hier hast du etwas versehentlich doppelt.
Macro SchnurGeraet(geraetKennziffer,x,y,weit,hoch,inhalt)
   TextGadget(geraetKennziffer,x,y,weit,hoch,inhalt) ;Ich glaube mit Schnur (oder Faden)gerät ist hier StringGadget gemeint
EndMacro
Und ich glaube das "Herausgebergerät" ist das "EditorGadget", weil "ComboBoxGadget" kann es nicht sein. (Keine Einfärbung)
Oder es ist doch das "TextGadget".