ListIconGadget

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Pure_Beginner
Beiträge: 247
Registriert: 29.09.2011 21:49
Computerausstattung: i7 9XX 4000 MHZ / 12 GB RAM / Win 8.1 64Bit / Win 7 64Bit
Wohnort: Brühl

ListIconGadget

Beitrag 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
PureBasic 5.30 Beta 3 (X64/X86) | Win 8 (64) Pro / Win 7 (64) Pro | Es ist der Hobbyist[/col
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: ListIconGadget

Beitrag von RSBasic »

Abfragen, ob auf Header geklickt wurde: http://www.rsbasic.de/aktualisierung/wi ... bfragen.pb
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Pure_Beginner
Beiträge: 247
Registriert: 29.09.2011 21:49
Computerausstattung: i7 9XX 4000 MHZ / 12 GB RAM / Win 8.1 64Bit / Win 7 64Bit
Wohnort: Brühl

Re: ListIconGadget

Beitrag 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
PureBasic 5.30 Beta 3 (X64/X86) | Win 8 (64) Pro / Win 7 (64) Pro | Es ist der Hobbyist[/col
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: ListIconGadget

Beitrag 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
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: ListIconGadget

Beitrag 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
a²+b²=mc²
Benutzeravatar
Pure_Beginner
Beiträge: 247
Registriert: 29.09.2011 21:49
Computerausstattung: i7 9XX 4000 MHZ / 12 GB RAM / Win 8.1 64Bit / Win 7 64Bit
Wohnort: Brühl

Re: ListIconGadget

Beitrag 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
PureBasic 5.30 Beta 3 (X64/X86) | Win 8 (64) Pro / Win 7 (64) Pro | Es ist der Hobbyist[/col
Benutzeravatar
Pure_Beginner
Beiträge: 247
Registriert: 29.09.2011 21:49
Computerausstattung: i7 9XX 4000 MHZ / 12 GB RAM / Win 8.1 64Bit / Win 7 64Bit
Wohnort: Brühl

Re: ListIconGadget

Beitrag 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
PureBasic 5.30 Beta 3 (X64/X86) | Win 8 (64) Pro / Win 7 (64) Pro | Es ist der Hobbyist[/col
Antworten