Re: Własne bitmapy w mxgrid
W AmBasic nie ma typu Picture, który potrzebny jest do załadowania bitmapy do Image List. Nie ma także polecenia LoadPicture jak w VBA.
Rozwiązaniem jest zastosowanie załączonej kontrolki do załadowania grafiki do ImageList.
Zarejestruj ją w systemie
Załącznik:
mxgridpic01.jpg [ 26.27 KiB | Przeglądany 3147 razy ]
Przykładowy kod w AMBasic
Kod:
#define EC_EXTRENAL_BITMAP 29
dispatch dGrid
Dispatch dImg
Dispatch dVBA
dImg = "MSComctlLib.ImageListCtrl"
dVBA = "MixCtrl.Picture"
dVBA.MixLoadPicture(KatalogFirmy()+"comp01.jpg")
dImg.ListImages.Add(1, "comp01", dVBA.MixGetPicture)
dVBA.MixLoadPicture(KatalogFirmy()+"comp02.jpg")
dImg.ListImages.Add(2, "comp02", dVBA.MixGetPicture)
int sub OnCommand(int id, int msg)
if id == 0 && msg == 0 then
dGrid.ColHeader = 0
dGrid.RowHeader = 0
dGrid.ColumnCount = 1
dGrid.RowCount = 2
dGrid.RowHeight = 200
dGrid.Columns(0).FieldType( 17, 1001)
dGrid.Columns(0).Width = 200
dGrid.Execute (EC_EXTRENAL_BITMAP, dImg.ListImages, "")
dGrid.Rows(0).Cell(0).Value = 1001
dGrid.Rows(1).Cell(0).Value = 1002
endif
endsub
form "AMBasic WIOSNA w mxGrid", 340, 460
Control "grid", dGrid, 5, 5, 320, 420
execform OnCommand
error ""
Wynik działania przykładowego kodu
Załącznik:
mxgridpic02.jpg [ 29.88 KiB | Przeglądany 3147 razy ]
Kontrolka musi być zainstalowana na każdej stacji roboczej Symfonii lub FORTE