Seite 1 von 1

ListIconGadget

Verfasst: 19.07.2013 21:19
von Pure_Beginner
Hallo zusammen,

komme mal wieder trotz erheblicher Anstrengungen nicht weiter :).

Folgendes Problem, habe ein ListIconGadget mit Gonzal's PureLVSORT aufgemotzt.
Um das Ganze erkennbarer zu machen habe ich jede zweite Zeile eingefärbt.
Lasse ich nun die Spalten sortieren werden die eingefärbten Zeilen durcheinander gewürfelt.
Leider konnte ich kein geeignetes Ereignis finden z.B. HeaderKlick o.ä. um es in meine Ereignisschleife einzubinden und beim auftreten die Zeilen neu einzufärben.
Hat jemand eine Tipp für mich ?

Grüße
Christian

Re: ListIconGadget

Verfasst: 19.07.2013 21:24
von RSBasic
Abfragen, ob auf Header geklickt wurde: http://www.rsbasic.de/aktualisierung/wi ... bfragen.pb

Re: ListIconGadget

Verfasst: 19.07.2013 21:32
von Pure_Beginner
Hallo RSBasic,

danke für die schnelle Antwort.
Leider Funktioniert das Beispiel nicht.

Das Programm wird mit folgendem Fehler unterbrochen

Ungültiger Speicherzugriff (Schreibfehler an der Adresse XXXXXXXXXX)
Zeile 9.

meine PB Version 5.20 Beta 6 Win 8

NACHTRAG:
x86 Funktioniert

Re: ListIconGadget

Verfasst: 19.07.2013 21:37
von RSBasic
Danke fürs Melden.

Verbesserter Code:

Code: Alles auswählen

EnableExplicit

Global MyOldList
Declare ListCB(hWnd, Message, wParam, lParam)
Declare GetListColumnClicked()

Procedure ListCB(hWnd, Message, wParam, lParam)
  Protected *Header.HD_NOTIFY
  Protected Result=CallWindowProc_(MyOldList, hWnd, Message, wParam, lParam)
  Protected ListCB_Column_Clicked
  
  Select Message
    Case #WM_NOTIFY
      *Header=lParam
      If *Header\hdr\code=#HDN_ITEMCLICK
         ListCB_Column_Clicked=*Header\iItem
         MessageRequester("","Spalte "+Str(ListCB_Column_Clicked)+" wurde geklickt.",0)
      EndIf
  EndSelect

  ProcedureReturn Result
EndProcedure

If OpenWindow(0, 0, 0, 500, 250, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ListIconGadget(1, 10, 10, 480, 230, "Spalte 0", 100, 0)
  AddGadgetColumn(1, 1, "Spalte 1", 100)
  AddGadgetColumn(1, 2, "Spalte 2", 100)
  
  MyOldList = SetWindowLongPtr_(GadgetID(1), #GWL_WNDPROC, @ListCB())
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf

Re: ListIconGadget

Verfasst: 19.07.2013 21:40
von Kiffi
@Pure_Beginner:

alternativ meine ich mich erinnern zu können, dass die
Reihenfolge der farbigen Zeilen beibehalten wird, wenn
Du PureCOLOR von gnozal verwendest.

Hierfür kann man das PureCOLOR_LV_AlternateColors-Flag
von PureCOLOR_SetGadgetColorEx() verwenden.

Grüße ... Kiffi

Re: ListIconGadget

Verfasst: 19.07.2013 21:52
von Pure_Beginner
@RSBasic
Funktioniert super, steige noch nicht ganz durch aber das kommt noch nach mehrmaligem lesen.
nochmals besten Dank. :allright:

@Kiffi
Danke für die Alternative, werde sie auf jeden fall ausprobieren. :allright:
Schönes Wochenende
Christian

Re: ListIconGadget

Verfasst: 21.07.2013 12:35
von Pure_Beginner
@Kiffi

Hab das PureCOLOR_SetGadgetColorEx ausprobiert,

bekomme aber folgende Fehlermeldung

PureCOLOR_SetGadgetColorEx () ist keine Funktion, Array, Makro oder LinkedList

Hier mein Code:

Code: Alles auswählen

Procedure.l Window_frm_Haupt()
  If OpenWindow(#Window_frm_Haupt,80,80,1133,884,"Baureihe E",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_Invisible)
    CreateImageMenu(#MenuBar_frm_Haupt,WindowID(#Window_frm_Haupt))
    MenuTitle("Datei")
    MenuItem(#MenuBar_frm_Haupt_Laden,"Laden",ImageID(#MenuBarIcon_frm_Haupt_Laden))
    MenuItem(#MenuBar_frm_Haupt_Speichern,"Speichern",ImageID(#MenuBarIcon_frm_Haupt_Speichern))
    MenuBar()
    MenuItem(#MenuBar_frm_Haupt_Drucken,"Drucken",ImageID(#MenuBarIcon_frm_Haupt_Drucken))
    MenuBar()
    MenuItem(#MenuBar_frm_Haupt_Beenden,"Beenden",ImageID(#MenuBarIcon_frm_Haupt_Beenden))
    MenuTitle("Bearbeiten")
    MenuItem(#MenuBar_frm_Haupt_Senden,"Senden",ImageID(#MenuBarIcon_frm_Haupt_Senden))
    MenuItem(#MenuBar_frm_Haupt_Weiterleiten,"Weiterleiten",ImageID(#MenuBarIcon_frm_Haupt_Weiterleiten))
    MenuTitle("Hilfe")
    MenuItem(#MenuBar_frm_Haupt_Info,"Info",ImageID(#MenuBarIcon_frm_Haupt_Info))
    Frame3DGadget(#Gadget_frm_Haupt_frm_Preisgruppe,1030,35,75,65,"Preisgruppe:")
    ListViewGadget(#Gadget_frm_Haupt_lstv_Artikel,25,110,80,180)
    AddGadgetItem(#Gadget_frm_Haupt_lstv_Artikel, 0, "SA" )
    AddGadgetItem(#Gadget_frm_Haupt_lstv_Artikel, 1, "SI" )
    AddGadgetItem(#Gadget_frm_Haupt_lstv_Artikel, 2, "KB" )
    AddGadgetItem(#Gadget_frm_Haupt_lstv_Artikel, 3, "KB_TAB" )
    AddGadgetItem(#Gadget_frm_Haupt_lstv_Artikel, 4, "FB" )
    AddGadgetItem(#Gadget_frm_Haupt_lstv_Artikel, 5, "FB_TAB" )
    AddGadgetItem(#Gadget_frm_Haupt_lstv_Artikel, 6, "RW" )
    AddGadgetItem(#Gadget_frm_Haupt_lstv_Artikel, 7, "SR" )
    AddGadgetItem(#Gadget_frm_Haupt_lstv_Artikel, 8, "SO" )
    AddGadgetItem(#Gadget_frm_Haupt_lstv_Artikel, 9, "PL" )
    AddGadgetItem(#Gadget_frm_Haupt_lstv_Artikel, 10, "B" )
    AddGadgetItem(#Gadget_frm_Haupt_lstv_Artikel, 11, "DTR" )
    AddGadgetItem(#Gadget_frm_Haupt_lstv_Artikel, 12, "DTL" )
    StringGadget(#Gadget_frm_Haupt_str_Anzahl,120,65,80,20,"", #PB_String_Numeric|#PB_Text_Center)
    StringGadget(#Gadget_frm_Haupt_str_Laenge,215,65,80,20,"", #PB_String_Numeric|#PB_Text_Center)
    StringGadget(#Gadget_frm_Haupt_str_Breite,310,65,80,20,"", #PB_String_Numeric|#PB_Text_Center)
    PanelGadget(#Gadget_frm_Haupt_Panel_Haupt,120,110,895,680)
    AddGadgetItem(#Gadget_frm_Haupt_Panel_Haupt,-1,"Holzteile")
    ListIconGadget(#Gadget_frm_Haupt_ListIcon,10,10,865,630,"Lf.Nr.",63,#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
    AddGadgetColumn(#Gadget_frm_Haupt_ListIcon,1,"Artikel",65)
    AddGadgetColumn(#Gadget_frm_Haupt_ListIcon,2,"Anzahl",45)
    AddGadgetColumn(#Gadget_frm_Haupt_ListIcon,3,"Länge",45)
    AddGadgetColumn(#Gadget_frm_Haupt_ListIcon,4,"Breite",45)
    AddGadgetColumn(#Gadget_frm_Haupt_ListIcon,5,"Dicke",40)
    AddGadgetColumn(#Gadget_frm_Haupt_ListIcon,6,"Material",50)
    AddGadgetColumn(#Gadget_frm_Haupt_ListIcon,7,"Programm",70)
    AddGadgetColumn(#Gadget_frm_Haupt_ListIcon,8,"Kante 1",50)
    AddGadgetColumn(#Gadget_frm_Haupt_ListIcon,9,"Kante 2",50)
    AddGadgetColumn(#Gadget_frm_Haupt_ListIcon,10,"Kante 3",50)
    AddGadgetColumn(#Gadget_frm_Haupt_ListIcon,11,"Kante 4",50)
    AddGadgetColumn(#Gadget_frm_Haupt_ListIcon,12,"Preis",65)
    AddGadgetColumn(#Gadget_frm_Haupt_ListIcon,13,"Summe",80)
    AddGadgetColumn(#Gadget_frm_Haupt_ListIcon,14,"Gruppe",75)
    PureCOLOR_SetGadgetColorEx(#Gadget_frm_Haupt_ListIcon, RGB(0,0,0), RGB(255, 255, 255), RGB(255, 255, 223), #PureCOLOR_LV_AlternateColors)


    If PureLVSORT_SelectGadgetToSort(#Gadget_frm_Haupt_ListIcon, #PureLVSORT_ShowClickedHeader_IconLeft) = #PureLVSORT_Ok 
      PureLVSORT_SetColumnType(#Gadget_frm_Haupt_ListIcon, 0, #PureLVSORT_Numeric)
      PureLVSORT_SetColumnType(#Gadget_frm_Haupt_ListIcon, 1, #PureLVSORT_String) 
      PureLVSORT_SetColumnType(#Gadget_frm_Haupt_ListIcon, 2, #PureLVSORT_NoSorting)
      PureLVSORT_SetColumnType(#Gadget_frm_Haupt_ListIcon, 3, #PureLVSORT_NoSorting)
      PureLVSORT_SetColumnType(#Gadget_frm_Haupt_ListIcon, 4, #PureLVSORT_NoSorting)
      PureLVSORT_SetColumnType(#Gadget_frm_Haupt_ListIcon, 5, #PureLVSORT_NoSorting)
      PureLVSORT_SetColumnType(#Gadget_frm_Haupt_ListIcon, 6, #PureLVSORT_NoSorting)
      PureLVSORT_SetColumnType(#Gadget_frm_Haupt_ListIcon, 7, #PureLVSORT_NoSorting)
      PureLVSORT_SetColumnType(#Gadget_frm_Haupt_ListIcon, 8, #PureLVSORT_NoSorting)
      PureLVSORT_SetColumnType(#Gadget_frm_Haupt_ListIcon, 9, #PureLVSORT_NoSorting)
      PureLVSORT_SetColumnType(#Gadget_frm_Haupt_ListIcon, 10, #PureLVSORT_NoSorting)
      PureLVSORT_SetColumnType(#Gadget_frm_Haupt_ListIcon, 11, #PureLVSORT_NoSorting)
      PureLVSORT_SetColumnType(#Gadget_frm_Haupt_ListIcon, 12, #PureLVSORT_Float)
      PureLVSORT_SetColumnType(#Gadget_frm_Haupt_ListIcon, 13, #PureLVSORT_Float)
      PureLVSORT_SetColumnType(#Gadget_frm_Haupt_ListIcon, 14, #PureLVSORT_Numeric)
    EndIf


    Center.LV_COLUMN\mask=#LVCF_FMT
    Center\fmt=#LVCFMT_RIGHT
    SendMessage_(GadgetID(#Gadget_frm_Haupt_ListIcon),#LVM_SETCOLUMN,0,@Center)
    SendMessage_(GadgetID(#Gadget_frm_Haupt_ListIcon),#LVM_SETCOLUMN,2,@Center)
    SendMessage_(GadgetID(#Gadget_frm_Haupt_ListIcon),#LVM_SETCOLUMN,3,@Center)
    SendMessage_(GadgetID(#Gadget_frm_Haupt_ListIcon),#LVM_SETCOLUMN,4,@Center)
    SendMessage_(GadgetID(#Gadget_frm_Haupt_ListIcon),#LVM_SETCOLUMN,5,@Center)
    SendMessage_(GadgetID(#Gadget_frm_Haupt_ListIcon),#LVM_SETCOLUMN,8,@Center)
    SendMessage_(GadgetID(#Gadget_frm_Haupt_ListIcon),#LVM_SETCOLUMN,9,@Center)
    SendMessage_(GadgetID(#Gadget_frm_Haupt_ListIcon),#LVM_SETCOLUMN,10,@Center)
    SendMessage_(GadgetID(#Gadget_frm_Haupt_ListIcon),#LVM_SETCOLUMN,11,@Center)
    SendMessage_(GadgetID(#Gadget_frm_Haupt_ListIcon),#LVM_SETCOLUMN,12,@Center)
    SendMessage_(GadgetID(#Gadget_frm_Haupt_ListIcon),#LVM_SETCOLUMN,13,@Center)
    SendMessage_(GadgetID(#Gadget_frm_Haupt_ListIcon),#LVM_SETCOLUMN,14,@Center)
   
    AddGadgetItem(#Gadget_frm_Haupt_Panel_Haupt,-1,"Richtliste")
    TextGadget(#Gadget_frm_Haupt_txt_Flach,120,240,60,15,"",#PB_Text_Right)
    TextGadget(#Gadget_frm_Haupt_txt_Grundplatten,120,215,60,15,"",#PB_Text_Right)
    TextGadget(#Gadget_frm_Haupt_txt_Zapfen,120,265,60,15,"",#PB_Text_Right)
    TextGadget(#Gadget_frm_Haupt_Text20,30,215,80,15,"Grundplatten:",#PB_Text_Right)
    TextGadget(#Gadget_frm_Haupt_Text22,50,90,60,15,"Kappen:",#PB_Text_Right)
    TextGadget(#Gadget_frm_Haupt_Text24,50,140,60,15,"Senkkopf:",#PB_Text_Right)
    TextGadget(#Gadget_frm_Haupt_Text28,50,240,60,15,"FB_Flach:",#PB_Text_Right)
    TextGadget(#Gadget_frm_Haupt_Text26,50,190,60,15,"Bänder:",#PB_Text_Right)
    TextGadget(#Gadget_frm_Haupt_Text21,50,65,60,15,"Winkel:",#PB_Text_Right)
    TextGadget(#Gadget_frm_Haupt_Text23,50,115,60,15,"Euros:",#PB_Text_Right)
    TextGadget(#Gadget_frm_Haupt_Text25,50,165,60,15,"Tab:",#PB_Text_Right)
    TextGadget(#Gadget_frm_Haupt_Text29,50,265,60,15,"FB_Zapfen:",#PB_Text_Right)
    Frame3DGadget(#Gadget_frm_Haupt_Frame3D35,25,50,265,240,"")
    TextGadget(#Gadget_frm_Haupt_txt_Winkel,120,65,60,15,"",#PB_Text_Right)
    TextGadget(#Gadget_frm_Haupt_txt_Kappen,120,90,60,15,"",#PB_Text_Right)
    TextGadget(#Gadget_frm_Haupt_txt_Euros,120,115,60,15,"",#PB_Text_Right)
    TextGadget(#Gadget_frm_Haupt_txt_Senkkopf,120,140,60,15,"",#PB_Text_Right)
    TextGadget(#Gadget_frm_Haupt_txt_Tab,120,165,60,15,"",#PB_Text_Right)
    TextGadget(#Gadget_frm_Haupt_txt_Baender,120,190,60,15,"",#PB_Text_Right)
    CloseGadgetList()
    ButtonGadget(#Gadget_frm_Haupt_btn_Hinzufuegen,1040,128,60,40,"<")
    SetGadgetFont(#Gadget_frm_Haupt_btn_Hinzufuegen,LoadFont(#Gadget_frm_Haupt_btn_Hinzufuegen,"Arial Rounded MT Bold",16,0))
    GadgetToolTip(#Gadget_frm_Haupt_btn_Hinzufuegen,"fügt Eintrag hinzu")
    ButtonGadget(#Gadget_frm_Haupt_btn_Update,1040,193,60,40,"< >")
    SetGadgetFont(#Gadget_frm_Haupt_btn_Update,LoadFont(#Gadget_frm_Haupt_btn_Update,"Arial Rounded MT Bold",16,0))
    GadgetToolTip(#Gadget_frm_Haupt_btn_Update,"Eingabe Andern")
    
    
    ButtonGadget(#Gadget_frm_Haupt_btn_entfernen,1040,345,60,40,">")
    SetGadgetFont(#Gadget_frm_Haupt_btn_entfernen,LoadFont(#Gadget_frm_Haupt_btn_entfernen,"Arial Rounded MT Bold",16,0))
    GadgetToolTip(#Gadget_frm_Haupt_btn_entfernen,"löscht markierten Eintrag")
    ButtonGadget(#Gadget_frm_Haupt_btn_Loeschen,1040,410,60,40,">>")
    SetGadgetFont(#Gadget_frm_Haupt_btn_Loeschen,LoadFont(#Gadget_frm_Haupt_btn_Loeschen,"Arial Rounded MT Bold",16,0))
    GadgetToolTip(#Gadget_frm_Haupt_btn_Loeschen,"löscht alle Einträge")
    TextGadget(#Gadget_frm_Haupt_Text9,25,50,60,15,"Artikel")
    TextGadget(#Gadget_frm_Haupt_Text7,215,50,60,15,"Länge")
    OptionGadget(#Gadget_frm_Haupt_opt_Gruppe1,1035,55,65,15,"Gruppe 1")
    OptionGadget(#Gadget_frm_Haupt_opt_Gruppe3,1035,75,65,15,"Gruppe 3")
    TextGadget(#Gadget_frm_Haupt_Text6,310,50,60,15,"Breite")
    TextGadget(#Gadget_frm_Haupt_Text8,120,50,60,15,"Anzahl")
    StringGadget(#Gadget_frm_Haupt_str_Artikel,25,65,80,20,"",#PB_String_ReadOnly)
    CreateStatusBar(#StatusBar_frm_Haupt,WindowID(#Window_frm_Haupt))
    AddStatusBarField(#PB_Ignore)
    AddStatusBarField(#PB_Ignore)
    AddStatusBarField(#PB_Ignore)
    AddStatusBarField(#PB_Ignore)
    AddStatusBarField(#PB_Ignore)
    HideWindow(#Window_frm_Haupt,0)
    SetWindowLong_(GadgetID(#Gadget_frm_Haupt_btn_entfernen),#GWL_STYLE, GetWindowLong_(GadgetID(#Gadget_frm_Haupt_btn_entfernen), #GWL_STYLE) & (~#WS_TABSTOP))
    SetWindowLong_(GadgetID(#Gadget_frm_Haupt_btn_Loeschen),#GWL_STYLE, GetWindowLong_(GadgetID(#Gadget_frm_Haupt_btn_Loeschen), #GWL_STYLE) & (~#WS_TABSTOP))
    SetWindowLong_(GadgetID(#Gadget_frm_Haupt_Panel_Haupt),#GWL_STYLE, GetWindowLong_(GadgetID(#Gadget_frm_Haupt_Panel_Haupt), #GWL_STYLE) & (~#WS_TABSTOP))
    SetWindowLong_(GadgetID(#Gadget_frm_Haupt_opt_Gruppe1),#GWL_STYLE, GetWindowLong_(GadgetID(#Gadget_frm_Haupt_opt_Gruppe1), #GWL_STYLE) & (~#WS_TABSTOP))
    SetWindowLong_(GadgetID(#Gadget_frm_Haupt_opt_Gruppe3),#GWL_STYLE, GetWindowLong_(GadgetID(#Gadget_frm_Haupt_opt_Gruppe3), #GWL_STYLE) & (~#WS_TABSTOP))
    SetWindowLong_(GadgetID(#Gadget_frm_Haupt_str_Artikel),#GWL_STYLE, GetWindowLong_(GadgetID(#Gadget_frm_Haupt_Text9), #GWL_STYLE) & (~#WS_TABSTOP))
    SetWindowLong_(GadgetID(#Gadget_frm_Haupt_frm_Preisgruppe),#GWL_STYLE, GetWindowLong_(GadgetID(#Gadget_frm_Haupt_frm_Preisgruppe), #GWL_STYLE) & (~#WS_TABSTOP))
    
    ProcedureReturn WindowID(#Window_frm_Haupt)
  EndIf
EndProcedure
Hätte jemand evtl. einen Tipp für mich ? /:->

Grüße
Christian


Edit:
habs hin bekommen funktioniert nicht mit 5.2 Beta
mit 5.11 funzts