Aktuelle Zeit: 20.08.2019 19:02

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: ListImageGadget - ListGadget mit beliebig großen Images
BeitragVerfasst: 14.09.2009 02:12 
Offline
Kommando SG1
Benutzeravatar

Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Tachchen,

immer wieder habe ich versucht auf irgend eine Weise in einem ListIconGadget Ganze Bilder als 16*16 Icon darzustellen, doch da erkennt man ja nix, und der 32*32 Modus ist keine richtige Liste.

Also habe ich mit Hilfe der ScrollAreaGadget und ImageGadgets eine neuen Typen geschrieben:

Das ListImageGadget

Quellcode mit Beispiel am Ende

Zitat:
ListImageGadget(#Gadget, x, y, Width, Height) ; Erstellt ein neues ListImageGadget
AddListImageGadgetItem(#Gadget, Position, Text$, Image) ; Fügt ein Eintrag (mit 'Text$' und 'Image') hinzu (Position derzeit immer -1)
GetListImageGadgetState(#Gadget) ; Gibt die Nummer des ausgewählten Eintrags zurück
GetListImageGadgetText(#Gadget) ; Gibt den Text des ausgewählten Eintrags zurück
SetListImageGadgetState(#Gadget, State) ; Ändert den ausgewählten Eintrag auf 'State'


Hier ein Beispiel, natürlich können es beliebige Images sein, nicht nur SchwarzeRechtecke ^^
Bild

Die Funktionen für das Gadget sind noch nicht Fertig !
Derzeit kann man nur Befüllen und State und Text aus/einlesen und Navigieren (mit Tasten und Maus)

Bitte teste mal diese Funktionen ... ob das Auswählen klappt usw.
die anderen werden später kommen ...

_________________
Bild
 
BildBildBild


Zuletzt geändert von STARGÅTE am 09.07.2010 16:08, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ListImageGadget - ListGadget mit beliebig großen Images
BeitragVerfasst: 15.09.2009 16:02 
Offline
Moderator
Benutzeravatar

Registriert: 15.06.2008 18:22
Wohnort: Dresden
nette Idee :allright:

funktioniert alles gut, danke für den Code.

_________________
Win10 x64 | PB 5.70 (x86 und x64)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ListImageGadget - ListGadget mit beliebig großen Images
BeitragVerfasst: 15.09.2009 16:06 
Offline
Benutzeravatar

Registriert: 23.06.2009 00:22
Wohnort: Vorm Monitor
Jup funktioniert einwandfrei - gefällt mir!

_________________
If x = 1 and x = 2
MessageRequester("!!!", "WTF")
EndIf
Es ist möglich!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ListImageGadget - ListGadget mit beliebig großen Images
BeitragVerfasst: 16.10.2018 14:06 
Offline

Registriert: 02.09.2008 13:02
Hallo Leute,

ich wolltes das hier nutzen da ich eine Bildverwaltung erstellen muss.
Leider bekomme ich keine Bilder in die Liste.

Wie binde ich da Bilder ein?

Zitat:
Stargate schreibt:
Hier ein Beispiel, natürlich können es beliebige Images sein, nicht nur SchwarzeRechtecke ^^


Ich bekommen das nicht hin.

gruß
gnaps

_________________
PureBasic Vollversion V 5.61 für Windows - Windows 10 (64)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ListImageGadget - ListGadget mit beliebig großen Images
BeitragVerfasst: 16.10.2018 14:22 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Deutschland::Berlin()
Du musst nur die Nummer deiner erstellten oder geladenen Grafik angeben. Aso kein ImageID() o.ä.:
Code:
CreateImage(1, 100, 100, 24, RGB(255, 0, 0));oder LoadImage(1, ...)

OpenWindow(0, 0, 0, 600, 400, "Fenster", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
 ListImageGadget(1, 10, 10, 280, 380)
 ListImageGadget(2, 310, 10, 280, 380)

  For n = 1 To 20
   AddListImageGadgetItem(1, -1, Str(Random(999999)), 1);Image-Nummer 1
   AddListImageGadgetItem(2, -1, Str(Random(999999)), 1);Image-Nummer 1
  Next

[...]

_________________
BildBildBildBild(Update: 17.08.2019 (+196 Dateien, +1392 MB)) BildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ListImageGadget - ListGadget mit beliebig großen Images
BeitragVerfasst: 16.10.2018 14:43 
Offline

Registriert: 02.09.2008 13:02
Hallo,

danke RSBasic, das habe ich ja so gemacht.

Ich simpel habe

UseJPEGImageDecoder()
UsePNGImageDecoder()

aber sags niemanden wieter. :D

Manchmal steht man echt auf dem Schlauch.

gruß
gnaps

_________________
PureBasic Vollversion V 5.61 für Windows - Windows 10 (64)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ListImageGadget - ListGadget mit beliebig großen Images
BeitragVerfasst: 16.10.2018 15:06 
Offline

Registriert: 02.09.2008 13:02
Hi,

habe da doch noch ein paar Fragen zu dem Code

Was ist das ?
\Gadget
\BackgroundImageGadge



Und wie ist das zu verstehen
AddElement(ListImageGadgetItem())
\Gadget = Gadget
\State = #False
\Text$ = Text$
\Image = Image
\BackgroundImage = CreateImage(#PB_Any, GadgetWidth(Gadget)-32, ImageHeight(Image)+2)




Wie bekomme ich einen Mehrzeiligen Text?
Code:
   bildtext.s="das ist das Bild"+Chr(13)+bild
   AddListImageGadgetItem(1, -1,bildtext.s,bild)


das geht nicht?

Gruß
gnaps

_________________
PureBasic Vollversion V 5.61 für Windows - Windows 10 (64)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ListImageGadget - ListGadget mit beliebig großen Images
BeitragVerfasst: 16.10.2018 15:32 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Deutschland::Berlin()
gnaps hat geschrieben:
Was ist das ?
\Gadget
\BackgroundImageGadge

Geht es dir um die Syntax?
Das sind die Einträge (Member) einer Struktur, die mit dem Schlüsselwort "With" eingeleitet wurden.
Und ListImageGadgetItem() ist eine NewList, die mit der Struktur ListImageGadgetItem verknüpft wurde.
Man könnte auch stattdessen ohne With folgendes schreiben:
Code:
ListImageGadgetItem()\Gadget
ListImageGadgetItem()\BackgroundImageGadget


gnaps hat geschrieben:
Wie bekomme ich einen Mehrzeiligen Text?

Da der übergebene Text mit DrawText() gezeichnet wird, musst du selber mehrzeilig zeichnen. Etwa so...
Code:
For n = 1 To 20
   AddListImageGadgetItem(1, -1, "Erste Zeile" + Chr(13) + "Zweite Zeile", CreateImage(#PB_Any, Random(80)+20, Random(40)+20))
   AddListImageGadgetItem(2, -1, "Nur eine Zeile", CreateImage(#PB_Any,  Random(80)+20, Random(40)+20))
  Next


Ersetze den Code:
Code:
DrawText(ImageWidth(\Image)+6, (ImageHeight(\BackgroundImage)-TextHeight(\Text$))/2, \Text$, $000000)


Durch:
Code:
LineBreakCount = CountString(\Text$, Chr(13))
    For a=1 To LineBreakCount+1
      CurrentText$ = StringField(\Text$, a, Chr(13))
      DrawText(ImageWidth(\Image)+6, (a-1)*TextHeight(CurrentText$), CurrentText$, $000000)
    Next


Die vertikale Zentrierung des Textes musst du selber machen.

_________________
BildBildBildBild(Update: 17.08.2019 (+196 Dateien, +1392 MB)) BildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ListImageGadget - ListGadget mit beliebig großen Images
BeitragVerfasst: 16.10.2018 20:56 
Offline

Registriert: 02.09.2008 13:02
Hi,

nochmal eine Frage

wie bekomme ich nun heraus welcher Eintrag angeklickt wurde.

gruß
gnaps

_________________
PureBasic Vollversion V 5.61 für Windows - Windows 10 (64)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ListImageGadget - ListGadget mit beliebig großen Images
BeitragVerfasst: 16.10.2018 21:13 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Deutschland::Berlin()
Im Callback. Die Message mit der Nummer 273 ist der Mausklick und 256 mit dem wParam-Wert von 38 ist Pfeiltaste nach oben und 40 ist Pfeiltaste nach unten.
Mit \Gadget weißt du, auf was geklickt wurde. Wenn du stattdessen nur eine Nummer (1, 2, 3, ...) haben möchtest, dann musst du die Struktur ListImageGadgetItem erweitern und in der Funktion AddListImageGadgetItem() die aufsteigende Nummer beim Hinzufügen eintragen, so dass du später die Position abfragen kannst.

_________________
BildBildBildBild(Update: 17.08.2019 (+196 Dateien, +1392 MB)) BildBild


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 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