Erweiterte Items [X]

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:

Erweiterte Items [X]

Beitrag von RSBasic »

Hallo Leute,

wie kann man solche Items erstellen?
Bild

Vielen Dank im Vorraus
Zuletzt geändert von RSBasic am 26.04.2009 19:28, insgesamt 2-mal geändert.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
milan1612
Beiträge: 810
Registriert: 15.04.2007 17:58

Beitrag von milan1612 »

Ganz einfach: Selber zeichnen oder ListViewGadget subclassen :wink:
Das "Ganz einfach" ist Ironie...
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Naja, wenn ein Item zusätzliche Elemente wie Buttons oder Forttschrittsbalken hat kommst du mit einem List-View Control nicht weit. Da würde ich für jedes Item ein separates Fenster benutzen.
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

@Fluid Byte
Kann man nicht mit Setparent_() die extra Gadgets einsetzen/einfügen?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

Beitrag von gnasen »

Du könntest auch mit einem ScrollAreaGadget arbeiten.
Allerdings könnte es, wenn der Inhalt immer neu aufgebaut werden müsste, etwas schwierig werden.

Bei Sachen API kann ich dir allerdings jetzt nicht helfen. Aber kannst ja trotzdem schauen obs dir was nützt.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

der ansatz über das Parent scheint mit am vielversprechendsten, also
> ListViewGadget subclassen
weil ja eigentlich jedes Gadget nur ein Window ist, also auch ein element einer Liste.

dürfte dann aber sehr API-spezifisch werden, nix mit PB-Bordmitteln.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

Schade, dass PB sowas noch nicht kann.

Ich versuch' grad' mit API sowas zu ermöglichen, aber hab' natürlich einige Probleme, wie z.B.:

Code: Alles auswählen

If OpenWindow(0,0,0,500,500,"tst",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  If CreateGadgetList(WindowID(0)) 
    ListViewGadget(1,10,10,200,200,0)
    ButtonGadget(2,10,0,100,20,"abc",0)
  EndIf
  AddGadgetItem(1,-1,"abc",0,0)
  AddGadgetItem(1,-1,"xyz",0,0)
  CreateStatusBar(0, WindowID(0)) 
  SetParent_(GadgetID(2),GadgetID(1)) 
  
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Es gibt ja ein PB_Befehl: GadgetItemID(), aber dieser gilt nur für TreeGadget.

Frage: Gibt es dafür ne API für GadgetItemID() (natürlich für ViewControl)?

Danke im Vorraus :)
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

So einfach dürfte das nicht werden, denn Windows versteht ja nichts von den PB-IDs.
Also musst du eine eigene Liste per WinAPI aus der Liste kitzeln und dann den Handle suchen...

Mal sehn ob ich einen Code zusammenbringe...
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Mit SetParent_() kannst du zwar für alle Gadgets das OwnerWindow ändern aber was bringt das? Das List-View Control von Windows hat ja den Vorteil das nur sichtbare Items angezeigt werden. Was ist wenn du circa 50 items hast aber nur 5 davon ins Fenster passen? Wie soll das z. B. mit den Buttons geregelt werden? Du kannst sie ja nicht für alle 50 items vorher schon erstellen. Das ist absolut nicht performant.

Die einzige Möglichkeit die ich sehe wäre zu ermitteln ob ein Item gerade sichtbar ist oder nicht und dann extra Controls wie Buttons und Ladebalken On-The-Fly zu erstellen / löschen.
Es gibt ja ein PB_Befehl: GadgetItemID(), aber dieser gilt nur für TreeGadget.

Frage: Gibt es dafür ne API für GadgetItemID() (natürlich für ViewControl)?
Nein, aber selbst wenn kannst du damit nix anfangen da es kein Fenster Handle ist.
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

gnasen hat geschrieben:Du könntest auch mit einem ScrollAreaGadget arbeiten.
Okay habs mal rasch gemacht.
Das ist eine gute Alternative, aber beim Resizen der Gadgets ist das nicht gut.
Wenn ich viele Gadgets in dem ScrollAreaGadget erstelle und alle gleichzeitig resize, dann flackert das Fenster.

Schade, dass es nicht ne einfache API für sowas gibt :(
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Antworten