ts-soft hat geschrieben:Wäre doch ne Sache für Deine FASM_modded.exe
geht sogar.
Code: Alles auswählen
Goto END_DRCTIVE
;!include 'PROC32.INC'
!extrn _GridInstall@4
!section '.drectve' drectve hidden
!DB 'RAGrid.lib '
!section '.text' code readable executable
END_DRCTIVE:
IncludeFile "..\res\rsrc.pbi"
IncludeFile "RAGrid.pbi"
Structure ROWDATA
lpszName.l
Entry00.l
Entry01.l
Entry02.l
Image.l
EndStructure
Procedure SetupGridData(hDlg.l)
SendDlgItemMessage_(hDlg,#IDC_GRD1, #GM_SETBACKCOLOR, $C0C0C0, 0)
SendDlgItemMessage_(hDlg,#IDC_GRD1, #GM_SETGRIDCOLOR, $000000, 0)
SendDlgItemMessage_(hDlg,#IDC_GRD1, #GM_SETTEXTCOLOR, $800000, 0)
SendDlgItemMessage_(hDlg,#IDC_GRD1, #GM_SETHDRHEIGHT, 0, 24)
col.COLUMN
col\ColumnWidth = 150
col\Headertext = @"Name"
col\HeaderAlign = #GA_ALIGN_CENTER
col\Columnalign = #GA_ALIGN_LEFT
col\ColumnType = #TYPE_EDITTEXT
col\ColumnMaxTextLen = 31
col\FormatString = 0
col\HndImgList = 0
col\HeaderFlag = 0
SendDlgItemMessage_(hDlg,#IDC_GRD1, #GM_ADDCOL, 0, @col)
col\ColumnWidth = 60
For i = 0 To 2
col\ColumnWidth = 115
col\ColumnType = i
HdCaption.s="#"+Str(i)
col\Headertext = @HdCaption
SendDlgItemMessage_(hDlg,#IDC_GRD1, #GM_ADDCOL, 0, @col)
Next i
himl = ImageList_Create_(15,15,#ILC_COLOR24|#ILC_MASK,8,8)
hbm= LoadBitmap_(GetModuleHandle_(0),#IDB_BITMAP)
ImageList_AddMasked_(himl,hbm,$0FFFFFF)
DeleteObject_(hbm)
col\ColumnMaxTextLen = 0
col\Columnalign = #GA_ALIGN_CENTER
col\ColumnWidth = 40
col\ColumnType = #TYPE_IMAGE
col\FormatString=0
col\Headertext = #Null ;@"#3"
col\HndImgList = himl
col\HeaderFlag = 0
SendDlgItemMessage_(hDlg,#IDC_GRD1, #GM_ADDCOL, 0, @col)
rowcol.ROWCOLOR
rowcol\BackColor=$0802010
rowcol\TextColor=$0FFFFFF
row.ROWDATA
row\Entry00 = #Null
row\Entry02 = #Null
For i = 0 To 24
Name.s="Name #"+RSet(Str(i),2,"0")
row\lpszName=@Name
row\Entry01 = i+Random(1000)
row\Image = (row\Image +1) %8
rowcol\BackColor=rowcol\BackColor+$0000404
SendDlgItemMessage_(hDlg,#IDC_GRD1, #GM_ADDROW, 0,@row)
SendDlgItemMessage_(hDlg,#IDC_GRD1, #GM_SETROWHEIGHT, 0, 24)
SendDlgItemMessage_(hDlg,#IDC_GRD1, #GM_SETROWCOLOR,i,@rowcol)
Next i
EndProcedure
Procedure GetResDialog(DialogId.l, *DialogProcedure.l, hParent.l)
ProcedureReturn DialogBoxParam_(GetModuleHandle_(0), DialogId, 0, *DialogProcedure, hParent)
EndProcedure
Procedure MainDlgProc(hDlg, uMsg, wParam, lParam)
result = #PB_ProcessPureBasicEvents
Select uMsg
Case #WM_INITDIALOG
SetupGridData(hDlg)
MessageBeep_(#MB_ICONINFORMATION)
Case #WM_SIZE
Case #WM_NOTIFY
hGrid=GetDlgItem_(hDlg,#IDC_GRD1)
*gn.GRIDNOTIFY = lParam ; now the structure members hold the necessary data
If *gn\nmhdr\hwndFrom = hGrid
Select *gn\nmhdr\code
Case #GN_HEADERCLICK
SendDlgItemMessage_(hDlg,#IDC_GRD1,#GM_COLUMNSORT,*gn\col,#SORT_INVERT)
EndSelect
EndIf
Case #WM_MOUSEMOVE
SetWindowText_(hDlg, "X: "+Str(lParam&$FFFF)+", Y: "+Str(lParam>>16))
Case #WM_CLOSE
EndDialog_(hDlg, 0)
Case #WM_COMMAND
id = wParam & $FFFF
Select id
Case #IDC_BTN1
EndDialog_(hDlg, #IDC_BTN1)
EndSelect
EndSelect
;ProcedureReturn result
EndProcedure
hInstance.l = GetModuleHandle_(0)
!pushd [v_hInstance]
!CALL _GridInstall@4
GetResDialog(#IDD_DLG1, @MainDlgProc(), 0)
dafür wird zum modifizierten fasm noch eine modifizierte RAGrid.lib
benötigt. ->
http://rzserv2.fhnon.de/~lg016586/downl ... RAGrid.lib
warum: die DLL benutzt als ClassName für RegisterClassEx "RAGrid"
(somit auch ResEd) und die lib "MyRAGrid". da der ClassName in der
resource auftaucht, müssen diese übereinstimmen.
ts-soft hat geschrieben:
Nachtrag: Damit die Demo läuft, mußte ich in der Resource den kompletten Pfad zur BMP angeben (mit ""). In jaPBe ist dies nicht nötig!!!
da hab ich ne weile gebraucht
FGK hat geschrieben:
ja ich nutze die DLL da ich nicht weis wie ich die Lib-Version benutzen muß. Vorschläge dazu?
womit erstellst du die lib?
/EDIT:
"!include 'PROC32.INC'" auskommentiert. war wohl noch vom testen im
source.
