ListIconGadget-Abstand ändern

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

ListIconGadget-Abstand ändern

Beitrag von RSBasic »

Hallo,


man erstellt ein ListIconGadget mit der Einstellung "#PB_ListIcon_LargeIcon".
Wenn man ein paar Icon-Einträge erstellt hat, dann sieht es etwa so aus:
Bild

Ich finde, man könne den Abstand (horizontal) verringern, aber die Frage ist nur, wie man das realisieren kann, ohne es ownerdrawen zu müssen.
Hat jemand eine Idee?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: ListIconGadget-Abstand ändern

Beitrag von STARGÅTE »

Das ist der "normale" Symbolabstand von Windows:

Eigenschaften von Anzeige > Darstellung > Erweitert > Element > Symbolabstand (Horizontal) > 82
Bild

ich weiß halt nicht, ob man den nur fürs ListIconGadget privat ändern kann, sonst könnten die Nutzer zimlich sauer werden wenn ihre Symbole alle änger zusammen sind ^^
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: ListIconGadget-Abstand ändern

Beitrag von RSBasic »

Hi STARGÅTE,


vielen Dank erstmal für deine Hilfe, aber die globale Einstellung zu ändern, ist nicht mein Ziel, sorry.
Trotzdem danke nochmal ;)


@ALL: Ich habe die Lösung gefunden!
Die richtige API-Konstante, die ich gesucht habe, ist: #LVM_SETICONSPACING

Beispielcode:

Code: Alles auswählen

EnableExplicit

UsePNGImageDecoder()
  
LoadImage(1,"bildpfad....")

If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  ListIconGadget(1,10,10,480,230,"Überschrift",0,0)
  SetGadgetAttribute(1,#PB_ListIcon_DisplayMode,#PB_ListIcon_LargeIcon)
  
  AddGadgetItem(1,-1,"Item 1",ImageID(1),0)
  AddGadgetItem(1,-1,"Item 2",ImageID(1),0)
  AddGadgetItem(1,-1,"Item 3",ImageID(1),0)
  AddGadgetItem(1,-1,"Item 4",ImageID(1),0)
  AddGadgetItem(1,-1,"Item 5",ImageID(1),0)
  AddGadgetItem(1,-1,"Item 6",ImageID(1),0)
  AddGadgetItem(1,-1,"Item 7",ImageID(1),0)
  AddGadgetItem(1,-1,"Item 8",ImageID(1),0)
  AddGadgetItem(1,-1,"Item 9",ImageID(1),0)
  AddGadgetItem(1,-1,"Item 10",ImageID(1),0)
  
  SendMessage_(GadgetID(1), #LVM_SETICONSPACING, 0, 50)
  
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Screenshot:
Bild

Ich habs einfach mal zufällig mit verschiedenen API-Konstanten ausprobiert und hat sogar geklappt. :) :allright:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Christian H
Beiträge: 134
Registriert: 18.10.2005 10:22
Wohnort: Welschbillig

Re: ListIconGadget-Abstand ändern

Beitrag von Christian H »

RSBasic hat geschrieben:

Code: Alles auswählen

  
  SendMessage_(GadgetID(1), #LVM_SETICONSPACING, 0, 50)
Ich denke so ist es besser:

Code: Alles auswählen

  x = 50 
  y = 50
  SendMessage_(GadgetID(1), #LVM_SETICONSPACING, 0, x * 65536 + y)
Gruß Christian
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: ListIconGadget-Abstand ändern

Beitrag von RSBasic »

Hallo Christian H,


ah vielen Dank für die Richtigkeit für die Verwendung der WinAPI :allright:
So kann man genau einstellen, ob horizontal, vertikal oder beides.
Aber du hast x und y vertauscht.
Es muss also um genau zu sein so lauten:

Code: Alles auswählen

x = 100
y = 50
SendMessage_(GadgetID(1), #LVM_SETICONSPACING, 0, y * 65536 + x)
Dann ist es perfekt :)
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
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

Re: ListIconGadget-Abstand ändern

Beitrag von ts-soft »

RSBasic hat geschrieben:Dann ist es perfekt :)
Sehr schön :twisted:

Code: Alles auswählen

SendMessage_(GadgetID(1), #LVM_SETICONSPACING, y, x)
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.
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: ListIconGadget-Abstand ändern

Beitrag von RSBasic »

ts-soft hat geschrieben:
RSBasic hat geschrieben:Dann ist es perfekt :)
Sehr schön :twisted:

Code: Alles auswählen

SendMessage_(GadgetID(1), #LVM_SETICONSPACING, y, x)
Da gibt es bei mir keine Änderung.
Es wird nur der letzte Parameter akzeptiert und "y" wird ignoriert. :P
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Christian H
Beiträge: 134
Registriert: 18.10.2005 10:22
Wohnort: Welschbillig

Re: ListIconGadget-Abstand ändern

Beitrag von Christian H »

ts-soft hat geschrieben:

Code: Alles auswählen

SendMessage_(GadgetID(1), #LVM_SETICONSPACING, y, x)
Hab' ich auch vergeblich versucht.

Code: Alles auswählen

LoadImage(1, #PB_Compiler_Home +"\Examples\Sources\Data\CdPlayer.ico")

If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  ListIconGadget(1,10,10,480,230,"Überschrift",0,0)
  SetGadgetAttribute(1,#PB_ListIcon_DisplayMode,#PB_ListIcon_LargeIcon)
 
  AddGadgetItem(1,-1,"Item 1",ImageID(1),0)
  AddGadgetItem(1,-1,"Item 2",ImageID(1),0)
  AddGadgetItem(1,-1,"Item 3",ImageID(1),0)
  AddGadgetItem(1,-1,"Item 4",ImageID(1),0)
  AddGadgetItem(1,-1,"Item 5",ImageID(1),0)
  AddGadgetItem(1,-1,"Item 6",ImageID(1),0)
  AddGadgetItem(1,-1,"Item 7",ImageID(1),0)
  AddGadgetItem(1,-1,"Item 8",ImageID(1),0)
  AddGadgetItem(1,-1,"Item 9",ImageID(1),0)
  AddGadgetItem(1,-1,"Item 10",ImageID(1),0)
 
  x = 450
  y = 500
  SendMessage_(GadgetID(1), #LVM_SETICONSPACING, y, x)
 
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Benutzeravatar
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

Re: ListIconGadget-Abstand ändern

Beitrag von ts-soft »

So stehts in der MSDN: http://msdn.microsoft.com/en-us/library ... 85%29.aspx
und vorhin ging es auch, jetzt aber nicht mehr?
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.
Bild
Antworten