Gerätfarbe verändern

Anfängerfragen zum Programmieren mit PureBasic.
Josef Berger
Beiträge: 7
Registriert: 12.04.2018 13:01

Gerätfarbe verändern

Beitrag 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
Josef Berger benutzt die Programmierungssprache in der Version 5.62 auf einem Windows-Heimrechner!
Benutzeravatar
Mijikai
Beiträge: 754
Registriert: 25.09.2016 01:42

Re: Gerätfarbe verändern

Beitrag von Mijikai »

Wie lautet die Frage unredl. ?

Antwortend und fragend,
Mijikai
Benutzeravatar
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

Re: Gerätfarbe verändern

Beitrag 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.
Benutzeravatar
Kiffi
Beiträge: 10620
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Gerätfarbe verändern

Beitrag von Kiffi »

... und so uneinheitlich!

Define, If, OpenWindow, ContainerGadget, FrameGadget, TextGadget, StringGadget... Da wird mir vor lauter Unredlichkeit ganz schwummerig. :freak:
Hygge
Benutzeravatar
Bisonte
Beiträge: 2425
Registriert: 01.04.2007 20:18

Re: Gerätfarbe verändern

Beitrag von Bisonte »

Um das mal sachlich in meiner Mundart zu beantworten :

Wenn datt nich inne Hülfe drinsteihen tut, dann geiht datt nich! :mrgreen:
PureBasic 6.04 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
Benutzeravatar
diceman
Beiträge: 347
Registriert: 06.07.2017 12:24
Kontaktdaten:

Re: Gerätfarbe verändern

Beitrag von diceman »

Mal unabhängig von Ihrer Frage ... warum erstellen Sie sich nicht einfach zu jedem unredlichen Befehl ein Macro in sittlichem Hochdeutsch? :?
Now these points of data make a beautiful line,
And we're out of Beta, we're releasing on time.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Gerätfarbe verändern

Beitrag von RSBasic »

Ich versteh auch nur Bahnhof. :mrgreen:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Gerätfarbe verändern

Beitrag 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).
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
diceman
Beiträge: 347
Registriert: 06.07.2017 12:24
Kontaktdaten:

Re: Gerätfarbe verändern

Beitrag 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()
Now these points of data make a beautiful line,
And we're out of Beta, we're releasing on time.
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Gerätfarbe verändern

Beitrag 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".
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Antworten