Aktuelle Zeit: 10.07.2020 17:55

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 20 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Fensterhintergrund ein Bild (Image)
BeitragVerfasst: 22.10.2014 13:02 
Offline

Registriert: 19.10.2014 15:51
Ich möchte ein Bild als Fensterhintergrund nehmen.
Dafür benutze ich den PUT-Befehl in anderen Basic-Dialekten. Wie kann ich das hier umsetzen?
Und wie kann ich das Bild der Fenstergröße anpassen?

_________________
Ich programmiere plattformunabhängig und suche immer Lösungen für alle Plattformen.
Win 7/10, Linux Mint Cindy 3 (Debian), Mint 18.3 / 19.1


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fensterhintergrund ein Bild (Image)
BeitragVerfasst: 22.10.2014 13:13 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
http://www.rsbasic.de/aktualisierung/wi ... 3%BCgen.pb

Die Größe des geladenen Bildes kannst du einfach mit ResizeImage() auf deine Fenstergröße anpassen. Die Größe deines Fensters ermittelst du mit WindowWidth() und WindowHeight().

_________________
BildBildBildBild BildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fensterhintergrund ein Bild (Image)
BeitragVerfasst: 22.10.2014 13:23 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
<OT>

@stevie1401: Kannst Du in Deine Signatur schreiben, dass Du crossplatform - Lösungen suchst?

</OT>

_________________
Schrödingers Smiley :):


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fensterhintergrund ein Bild (Image)
BeitragVerfasst: 22.10.2014 16:18 
Offline

Registriert: 19.10.2014 15:51
Das werde ich tun, sobald ich herausgefunden habe, wie ich das machen kann^^
Das obige Beispiel funktioniert leider nicht unter Linux.
Ich suche IMMER Möglichkeiten bzw. Beispiele, die auf allen Plattformen laufen :-)

Es muss ja nicht unbedingt nur eine Lösung sein.
If Windows

endif
If Linux

endif
If OSX

endif

_________________
Ich programmiere plattformunabhängig und suche immer Lösungen für alle Plattformen.
Win 7/10, Linux Mint Cindy 3 (Debian), Mint 18.3 / 19.1


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fensterhintergrund ein Bild (Image)
BeitragVerfasst: 22.10.2014 16:50 
Offline
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
Bild selber anpassen, siehe Posting von RSBasic!
Code:
EnableExplicit

InitNetwork()
UseJPEGImageDecoder()

Procedure SetWindowBackgroundImage(hWnd.i, hImage.i)
  CompilerSelect #PB_Compiler_OS
    CompilerCase #PB_OS_Linux
      Protected *Background
      Protected FixedBox.i
      Protected *Style.GtkStyle
      gdk_pixbuf_render_pixmap_and_mask_(hImage, @*Background, 0, 0)
      *Style = gtk_style_new_()
      *Style\bg_pixmap[0] = *Background
      FixedBox = g_list_nth_data_(gtk_container_get_children_(gtk_bin_get_child_(hWnd)), 0)
      gtk_widget_set_style_(FixedBox, *Style)
   
    CompilerCase #PB_OS_Windows
      Protected hBrush = CreatePatternBrush_(hImage)
      If hBrush
        SetClassLongPtr_(hWnd, #GCL_HBRBACKGROUND, hBrush)
        InvalidateRect_(hWnd, 0, #True)
        UpdateWindow_(hWnd)
      EndIf
     
    CompilerCase #PB_OS_MacOS
      CompilerError "sollte jemand mit Mac hinzufügen!"
  CompilerEndSelect
EndProcedure

If ReceiveHTTPFile("http://realsource.de/images/stargate_atlantis.jpg", GetTemporaryDirectory() + "stargate_atlantis.jpg")
  LoadImage(0, GetTemporaryDirectory() + "stargate_atlantis.jpg")
  OpenWindow(0, #PB_Ignore, #PB_Ignore, 800, 450, "")
  SetWindowBackgroundImage(WindowID(0), ImageID(0))
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf

_________________
PureBasic 5.71 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 19.3 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fensterhintergrund ein Bild (Image)
BeitragVerfasst: 22.10.2014 17:10 
Offline

Registriert: 19.10.2014 15:51
Das Beispiel von ts-soft funktioniert nicht mit einer Demo-Version, aber ich werde mir wohl demnächst die Vollversion bestellen.
Erst einmal muss ich noch herausfinden, ob ich mein Projekt (DokoClient für www.doko-lounge.de mit PB für alle Plattformen erstellen) mit PB überhaupt umsetzen kann.
Dabei hat erste Priorität das Funktionieren, dann kommt das Aufhübschen ;-)

Erst einmal vielen Dank!

_________________
Ich programmiere plattformunabhängig und suche immer Lösungen für alle Plattformen.
Win 7/10, Linux Mint Cindy 3 (Debian), Mint 18.3 / 19.1


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fensterhintergrund ein Bild (Image)
BeitragVerfasst: 22.10.2014 17:36 
Offline
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
Ohne API gehts nicht, Vollversion ist anzuraten :wink:
Aber hier schon mal ein Blick darauf:
Bild

Gruß

Thomas

_________________
PureBasic 5.71 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 19.3 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fensterhintergrund ein Bild (Image)
BeitragVerfasst: 22.10.2014 19:55 
Offline
Benutzeravatar

Registriert: 25.01.2005 12:19
Ich habe ts-softs Beispiel um den Mac-spezifischen Teil ergänzt:
Code:
EnableExplicit

InitNetwork()
UseJPEGImageDecoder()

Procedure SetWindowBackgroundImage(hWnd.i, hImage.i)
  CompilerSelect #PB_Compiler_OS
    CompilerCase #PB_OS_Linux
      Protected *Background
      Protected FixedBox.i
      Protected *Style.GtkStyle
      gdk_pixbuf_render_pixmap_and_mask_(hImage, @*Background, 0, 0)
      *Style = gtk_style_new_()
      *Style\bg_pixmap[0] = *Background
      FixedBox = g_list_nth_data_(gtk_container_get_children_(gtk_bin_get_child_(hWnd)), 0)
      gtk_widget_set_style_(FixedBox, *Style)
   
    CompilerCase #PB_OS_Windows
      Protected hBrush = CreatePatternBrush_(hImage)
      If hBrush
        SetClassLongPtr_(hWnd, #GCL_HBRBACKGROUND, hBrush)
        InvalidateRect_(hWnd, 0, #True)
        UpdateWindow_(hWnd)
      EndIf
     
    CompilerCase #PB_OS_MacOS
      CocoaMessage(0, hWnd, "setBackgroundColor:",
        CocoaMessage(0, 0, "NSColor colorWithPatternImage:", hImage))
  CompilerEndSelect
EndProcedure

If ReceiveHTTPFile("http://realsource.de/images/stargate_atlantis.jpg", GetTemporaryDirectory() + "stargate_atlantis.jpg")
  LoadImage(0, GetTemporaryDirectory() + "stargate_atlantis.jpg")
  OpenWindow(0, #PB_Ignore, #PB_Ignore, 800, 450, "")
  SetWindowBackgroundImage(WindowID(0), ImageID(0))
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf


Bild

Ich möchte übrigens noch eine fehlende Quellenangabe von ts-softs Linux-Teil nachreichen, denn es stammt von mir... :mrgreen:
http://www.purebasic.fr/english/viewtop ... 38&start=1

Zu Plattform-unabhängigen Beispielen mit jeweils betriebssystemspezifischen Funktionsaufrufen, die in PureBasic (noch) nicht implementiert sind, habe ich übrigens im englischen Forum eine Sammlung von Lösungen zusammengestellt:
http://www.purebasic.fr/english/viewtop ... 3&start=11

Für MacOS X hat wilbert im englischen Forum eine Lösungssammlung zusammengestellt:
http://www.purebasic.fr/english/viewtop ... 19&t=50795

Und für Linux kann ich nur einen Blick in Charly "Omi" Bauers Sammlung empfehlen:
http://www.chabba.de/ (unter Linux-PureBasic-API)

RSBasic hat in seinem Posting ja schon auf seine riesige WinAPI-Bibliothek für Windows hingewiesen:
http://www.rsbasic.de/winapi-library


Zuletzt geändert von Shardik am 22.10.2014 21:56, insgesamt 2-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fensterhintergrund ein Bild (Image)
BeitragVerfasst: 22.10.2014 21:39 
Offline

Registriert: 19.10.2014 15:51
Tolles Forum, danke für eure Hilfe!

_________________
Ich programmiere plattformunabhängig und suche immer Lösungen für alle Plattformen.
Win 7/10, Linux Mint Cindy 3 (Debian), Mint 18.3 / 19.1


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fensterhintergrund ein Bild (Image)
BeitragVerfasst: 22.10.2014 21:45 
Offline
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
Naja, wenn Du mir dafür Doppelkopf beibringst 8)

_________________
PureBasic 5.71 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 19.3 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 20 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 20 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye