schwere Geburt
Hintergrundbild im Programm
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
>> Habe ich das richtig verstanden
schwere Geburt
, ja haste Du 
schwere Geburt
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- HeX0R
- Beiträge: 3054
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3 - Kontaktdaten:
>>Ist es möglich fest zu legen das das Bild unter die anderen Gagedelemente kommt, ich meinte das mein Bild immer im Hintergrund bleibt?
Das geht schon, dazu kommst du aber um ein wenig Win-Api nicht rum (oder SkinWin-Lib (o.ä.) im PBOSL). Beides finde ich persönlich etwas zu heftig für dieses Projekt.
Vielleicht solltest du mal ein wenig mit SetGadgetColor() und SetWindowColor() spielen. Evtl. noch verschiedene ContainerGadgets benutzen, deren Hintergrund du dann auch noch farblich umgestalten kannst.
Das geht schon, dazu kommst du aber um ein wenig Win-Api nicht rum (oder SkinWin-Lib (o.ä.) im PBOSL). Beides finde ich persönlich etwas zu heftig für dieses Projekt.
Vielleicht solltest du mal ein wenig mit SetGadgetColor() und SetWindowColor() spielen. Evtl. noch verschiedene ContainerGadgets benutzen, deren Hintergrund du dann auch noch farblich umgestalten kannst.
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Nah, dazu brauchste keine extra LIB's. Das sind lediglich zwei Befehle: CreatePatternBrush_() und SetClassLong_(). Aber wie du gesagt hast ist es wohl besser sich erst mal mit den Basics zu beschäftigen anstatt mit der API zumzudaddeln.Das geht schon, dazu kommst du aber um ein wenig Win-Api nicht rum (oder SkinWin-Lib (o.ä.) im PBOSL)
Windows 10 Pro, 64-Bit / Outtakes | Derek
Danke für die Hinweise
Für mich ist das aber ziemlich zentrall Oberflächen mit Hintergrundbildern, dass wird in den meinsten Anwendungen die ich mache wichtig sein, will doch etwas Creatives erschaffen und nicht nur Flächenfarben verwenden.
Ist es möglich das die Textgadgets so zu machen das sie transparent sind?
Danke für euere Aufmerksamkeit.
gruss Duli
Für mich ist das aber ziemlich zentrall Oberflächen mit Hintergrundbildern, dass wird in den meinsten Anwendungen die ich mache wichtig sein, will doch etwas Creatives erschaffen und nicht nur Flächenfarben verwenden.
Ist es möglich das die Textgadgets so zu machen das sie transparent sind?
Danke für euere Aufmerksamkeit.
gruss Duli
Man kann nicht wissen was man nicht weiss..
Hallo zusammen
Ich habe noch mehr im Forum gesucht und bin mit dem Begriff Durchsichtig fündig geworden.
Ich habe diesen Code ausprobiert, er macht genau was ich will, aber ich habe keine Ahnung warum.
könnte mir jemand erklären wieso und wie es funktioniert, danke.
Ich habe noch mehr im Forum gesucht und bin mit dem Begriff Durchsichtig fündig geworden.
Ich habe diesen Code ausprobiert, er macht genau was ich will, aber ich habe keine Ahnung warum.
könnte mir jemand erklären wieso und wie es funktioniert, danke.
Code: Alles auswählen
Procedure WCB(WindowID, Message, wParam, lParam)
Result = #PB_ProcessPureBasicEvents
Select Message
Case #WM_CTLCOLORSTATIC
Select lparam
Case GadgetID(1)
SetBkMode_(wparam,#TRANSPARENT)
ProcedureReturn GetStockObject_(#HOLLOW_BRUSH)
EndSelect
EndSelect
ProcedureReturn Result
EndProcedure
CreateImage(0, 100,100)
StartDrawing( ImageOutput(0) )
Circle(0,0,110,$00ff00)
StopDrawing()
hWin=OpenWindow(0, 50,150,400,400, "")
CreateGadgetList(hWin)
ImageGadget(0, 0,0, 200,100, ImageID(0) , #PB_Image_Border)
TextGadget(1, 10,20, 300,20, "hach wie lustig, ich bin ja doch durchsichtig", $0)
TextGadget(2, 10,40, 300,20, "hach wie lustig, ich bin nicht durchsichtig", $0)
SetGadgetColor(1, #PB_Gadget_FrontColor, $009900)
SetGadgetColor(2, #PB_Gadget_FrontColor, $009900)
SetWindowCallback(@WCB(),0)
Repeat
event=WindowEvent()
Select event
Case #PB_Event_CloseWindow
quit=1
EndSelect
Until quitMan kann nicht wissen was man nicht weiss..
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Windows 10 Pro, 64-Bit / Outtakes | Derek
Wenn ich es richtig verstanden habe kann in ich in Gadgets, Flags setzten mit welchen man bestimmte Werte und Einstellungen festgelegt werden.
Wenn ich Hintergrundfarbe festelgen kann, gibt es den keinen Farbwert welcher Durchsichtig bedeuted.
TextGadget(#Gadget, x, y, Breite, Hoehe, Text$ [, Flags])
#PB_Gadget_BackColor
Oder auch im Gadget
SetGadgetColor(0, #PB_Gadget_BackColor, $00FFFF) einen Wert welcher den Gadgethintergrund Durchsichtig macht.
Man kann nicht wissen was man nicht weiss..
-
Bayernhans
- Beiträge: 20
- Registriert: 09.04.2006 15:56
- Wohnort: Bayern
Warum klappt so etwas in Pb nicht ? OHNE Imagegadget !
Was ist falsch ? Ist die Idee falsch, das Image (bmp) direkt ins Window zu zeichnen und dann z. B. Gadgets drüberzulegen, usw.
Code: Alles auswählen
Repeat
OpenWindow(0, 100, 250, 600, 580, "Background direct included", #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#WS_CLIPCHILDREN)
If LoadImage(0, "irgendein-Bitmap.bmp") <> 0 ; "irgendein Bitmap"-Bild ins gleiche Verzeichnis wie diese PB-PRogramm stellen.
ID_Background1=ImageID(0) ; Geladenes Bild ...
StartDrawing(WindowOutput(0)) ; ... direkt zum Fenster ausgeben ...
DrawImage(ID_Background1, 0, 0) ; und dort zeichnen
StopDrawing()
Else
MessageRequester("Error","Kann Bitmap nicht finden/laden !!", #PB_MessageRequester_Ok)
Break
EndIf
Until event=#PB_Event_CloseWindow
vitamine, Vitamine, VITAMINE, ...
Vitamin PB - the best
PB 4.x
Vitamin PB - the best
PB 4.x
Was ist falsch ?
Fast dein ganzer Source...
Warum klappt so etwas in Pb nicht ?
Geht doch ohne ImageGadget, man darf's nur nicht minimieren, aus dem Desktop-Bereich schieben oder mit einem anderen Fenster überlagern...
Fast dein ganzer Source...
Code: Alles auswählen
If OpenWindow(0, 100, 250, 600, 580, "Background direct included", #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#WS_CLIPCHILDREN)
If LoadImage(0, #PB_Compiler_Home + "Examples\Sources\Data\Background.bmp")
ID_Background1=ImageID(0)
StartDrawing(WindowOutput(0))
For x = 0 To WindowWidth(0) / ImageWidth(0)
For y = 0 To WindowHeight(0) / ImageHeight(0)
DrawImage(ID_Background1, x * ImageWidth(0), y * ImageHeight(0))
Next y
Next x
StopDrawing()
Else
MessageRequester("Error","Kann Bitmap nicht finden/laden !!", #PB_MessageRequester_Ok)
End
EndIf
Repeat
Event = WaitWindowEvent(100)
If event = #PB_Event_CloseWindow Or GetAsyncKeyState_(#VK_ESCAPE)
quit = 1
EndIf
Until quit = 1
EndIfGeht doch ohne ImageGadget, man darf's nur nicht minimieren, aus dem Desktop-Bereich schieben oder mit einem anderen Fenster überlagern...
Zu GIF noch mal. Ich glaube, da liegt noch eine Lizenz dran.
Jede Programm das dieses Format verwendet darf dafür blechen.
Jede Programm das dieses Format verwendet darf dafür blechen.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive