Jump to content

Recommended Posts

If I understand your question ..... something I badly understand or you.

MSFlexGrid can be used in AutoIt (or not - not tested by myself) , but as you are talking about AutoItX DLLs in a C#  ,  then I think your question should be like this: How to use MSFlexGrid control in C#.

 

 

EDIT:
btw.

Welcome to the forum.
And please stick to one thread:

 

 

Edited by mLipok
wording

Signature beginning:
Please remember: "AutoIt".....  Wondering who uses AutoIt and what it can be used for ?
* GHAPI UDF - modest beginning - communication with GitHub REST API Forum Rules *
Include Dependency Tree (Tool for analyzing script relations)
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST APIErrorLog.au3 UDF - A logging Library *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskSchedulerIE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) *

PDF Related:How to get reference to PDF object embeded in IE *

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

I also encourage you to check awesome @trancexx code:  * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuffOnHungApp handlerAvoid "AutoIt Error" message box in unknown errors  * HTML editor

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2021-03-17

Link to post
Share on other sites

Did you read this:

https://msdn.microsoft.com/en-us/library/aa228849(v=vs.60).aspx

What you try so far ?

 

btw.

Please stick to one thread:

 

 

 

Signature beginning:
Please remember: "AutoIt".....  Wondering who uses AutoIt and what it can be used for ?
* GHAPI UDF - modest beginning - communication with GitHub REST API Forum Rules *
Include Dependency Tree (Tool for analyzing script relations)
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST APIErrorLog.au3 UDF - A logging Library *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskSchedulerIE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) *

PDF Related:How to get reference to PDF object embeded in IE *

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

I also encourage you to check awesome @trancexx code:  * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuffOnHungApp handlerAvoid "AutoIt Error" message box in unknown errors  * HTML editor

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2021-03-17

Link to post
Share on other sites
  • Developers

In how many different subforums are you planning to ask the same question?

Jos

All merged so now stick to this one please.

Edited by Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By DJ143
      I have a autoit exe file which is used in upload/browse file functionality.  This has been integrated with selenium framework and I am invoking the autoit exe using Java process and runtime. 
      Now the issue is when I run the scripts and invoke the autoit exe in local it works perfectly.  But when I use selenium grid or jenkins to run the scripts in another windows server it is not working.
      Can anyone please suggest any solution for this?
    • By robertocm
      Trying to get a working example from code by funkey:
      Added declarations from cited references, but the control looks empty, without returning errors:
      #cs ---------------------------------------------------------------------------- funkey, Feb 8, 2012 https://www.autoitscript.com/forum/topic/137333-ragriddll/?do=findComment&comment=961420 RaGrid download: ;KetilO, 2009 ;http://www.asmcommunity.net/forums/topic/?id=29679 Code examples: https://bcxbasiccoders.com/bcxusers/ian/Miscellaneous%20Code.html bcx_raGridWrappers.inc https://maul-esel.github.io/FormsFramework/files/RaGrid/RaGrid-ahk.html ;https://www.purebasic.fr/english/viewtopic.php?t=47141 #ce ---------------------------------------------------------------------------- #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <WinAPI.au3> #include <Color.au3> ; #CONSTANTS# =================================================================================================================== ;gnozal, Aug 11, 2011 ;https://www.purebasic.fr/english/viewtopic.php?t=47141 ;http://www.pbosl.purearea.net/pbosl_examples.zip [in .\pbosl_examples\PBOSL4\EXAMPLES\PBOSL_CreateGadget\ ] ;Messages Global Const $GM_ADDCOL = $WM_USER + 1 ;wParam=0, lParam=lpCOLUMN Global Const $GM_ADDROW = $WM_USER + 2 ;wParam=0, lParam=lpROWDATA (can be NULL) Global Const $GM_INSROW = $WM_USER + 3 ;wParam=nRow, lParam=lpROWDATA (can be NULL) Global Const $GM_DELROW = $WM_USER + 4 ;wParam=nRow, lParam=0 Global Const $GM_MOVEROW = $WM_USER + 5 ;wParam=nFromRow, lParam=nToRow Global Const $GM_COMBOADDSTRING = $WM_USER + 6 ;wParam=nCol, lParam=lpszString Global Const $GM_COMBOCLEAR = $WM_USER + 7 ;wParam=nCol, lParam=0 Global Const $GM_GETCURSEL = $WM_USER + 8 ;wParam=0, lParam=0 Global Const $GM_SETCURSEL = $WM_USER + 9 ;wParam=nCol, lParam=nRow Global Const $GM_GETCURCOL = $WM_USER + 10 ;wParam=0, lParam=0 Global Const $GM_SETCURCOL = $WM_USER + 11 ;wParam=nCol, lParam=0 Global Const $GM_GETCURROW = $WM_USER + 12 ;wParam=0, lParam=0 Global Const $GM_SETCURROW = $WM_USER + 13 ;wParam=nRow, lParam=0 Global Const $GM_GETCOLCOUNT = $WM_USER + 14 ;wParam=0, lParam=0 Global Const $GM_GETROWCOUNT = $WM_USER + 15 ;wParam=0, lParam=0 Global Const $GM_GETCELLDATA = $WM_USER + 16 ;wParam=nRowCol, lParam=lpData Global Const $GM_SETCELLDATA = $WM_USER + 17 ;wParam=nRowCol, lParam=lpData (can be NULL) Global Const $GM_GETCELLRECT = $WM_USER + 18 ;wParam=nRowCol, lParam=lpRECT Global Const $GM_SCROLLCELL = $WM_USER + 19 ;wParam=0, lParam=0 Global Const $GM_GETBACKCOLOR = $WM_USER + 20 ;wParam=0, lParam=0 Global Const $GM_SETBACKCOLOR = $WM_USER + 21 ;wParam=nColor, lParam=0 Global Const $GM_GETGRIDCOLOR = $WM_USER + 22 ;wParam=0, lParam=0 Global Const $GM_SETGRIDCOLOR = $WM_USER + 23 ;wParam=nColor, lParam=0 Global Const $GM_GETTEXTCOLOR = $WM_USER + 24 ;wParam=0, lParam=0 Global Const $GM_SETTEXTCOLOR = $WM_USER + 25 ;wParam=nColor, lParam=0 Global Const $GM_ENTEREDIT = $WM_USER + 26 ;wParam=nCol, lParam=nRow Global Const $GM_ENDEDIT = $WM_USER + 27 ;wParam=nRowCol, lParam=fCancel Global Const $GM_GETCOLWIDTH = $WM_USER + 28 ;wParam=nCol, lParam=0 Global Const $GM_SETCOLWIDTH = $WM_USER + 29 ;wParam=nCol, lParam=nWidth Global Const $GM_GETHDRHEIGHT = $WM_USER + 30 ;wParam=0, lParam=0 Global Const $GM_SETHDRHEIGHT = $WM_USER + 31 ;wParam=0, lParam=nHeight Global Const $GM_GETROWHEIGHT = $WM_USER + 32 ;wParam=0, lParam=0 Global Const $GM_SETROWHEIGHT = $WM_USER + 33 ;wParam=0, lParam=nHeight Global Const $GM_RESETCONTENT = $WM_USER + 34 ;wParam=0, lParam=0 Global Const $GM_COLUMNSORT = $WM_USER + 35 ;wParam=nCol, lParam=0=Ascending, 1=Descending, 2=Invert Global Const $GM_GETHDRTEXT = $WM_USER + 36 ;wParam=nCol, lParam=lpBuffer Global Const $GM_SETHDRTEXT = $WM_USER + 37 ;wParam=nCol, lParam=lpszText Global Const $GM_GETCOLFORMAT = $WM_USER + 38 ;wParam=nCol, lParam=lpBuffer Global Const $GM_SETCOLFORMAT = $WM_USER + 39 ;wParam=nCol, lParam=lpszText Global Const $GM_CELLCONVERT = $WM_USER + 40 ;wParam=nRowCol, lParam=lpBuffer Global Const $GM_RESETCOLUMNS = $WM_USER + 41 ;wParam=0, lParam=0 Global Const $GM_GETROWCOLOR = $WM_USER + 42 ;wParam=nRow, lParam=lpROWCOLOR Global Const $GM_SETROWCOLOR = $WM_USER + 43 ;wParam=nRow, lParam=lpROWCOLOR Global Const $GM_GETCOLDATA = $WM_USER + 44 ;wParam=nCol, lParam=lpCOLUMN ;Column alignment Global Const $GA_ALIGN_LEFT = 0 Global Const $GA_ALIGN_CENTER = 1 Global Const $GA_ALIGN_RIGHT = 2 ;Column types Global Const $TYPE_EDITTEXT = 0 ;String Global Const $TYPE_EDITLONG = 1 ;Long Global Const $TYPE_CHECKBOX = 2 ;Long Global Const $TYPE_COMBOBOX = 3 ;Long Global Const $TYPE_HOTKEY = 4 ;Long Global Const $TYPE_BUTTON = 5 ;String Global Const $TYPE_IMAGE = 6 ;Long Global Const $TYPE_DATE = 7 ;Long Global Const $TYPE_TIME = 8 ;Long Global Const $TYPE_USER = 9 ;0=String, 1 to 512 bytes binary data Global Const $TYPE_EDITBUTTON = 10 ;String ;Column sorting Global Const $SORT_ASCENDING = 0 Global Const $SORT_DESCENDING = 1 Global Const $SORT_INVERT = 2 ;Window styles Global Const $STYLE_NOSEL = 0x1 Global Const $STYLE_NOFOCUS = 0x2 Global Const $STYLE_HGRIDLINES = 0x4 Global Const $STYLE_VGRIDLINES = 0x8 Global Const $STYLE_GRIDFRAME = 0x10 Global Const $STYLE_NOCOLSIZE = 0x20 Global Const $ODT_GRID = 6 ;~ Global Const $PB_EventType_Grid_HeaderClick = 1 ;User clicked header ;~ Global Const $PB_EventType_Grid_ButtonClick = 2 ;Sendt when user clicks the button in a button cell ;~ Global Const $PB_EventType_Grid_CheckClick = 3 ;Sendt when user double clicks the checkbox in a checkbox cell ;~ Global Const $PB_EventType_Grid_ImageClick = 4 ;Sendt when user double clicks the image in an image cell ;~ Global Const $PB_EventType_Grid_BeforeSelChange = 5 ;Sendt when user request a selection change ;~ Global Const $PB_EventType_Grid_AfterSelChange = 6 ;Sendt after a selection change ;~ Global Const $PB_EventType_Grid_BeforeEdit = 7 ;Sendt before the cell edit control shows ;~ Global Const $PB_EventType_Grid_AfterEdit = 8 ;Sendt when the cell edit control is about to close ;~ Global Const $PB_EventType_Grid_BeforeUpdate = 9 ;Sendt before a cell updates grid data ;~ Global Const $PB_EventType_Grid_AfterUpdate = 10 ;Sendt after grid data has been updated ;~ Global Const $PB_EventType_Grid_UserConvert = 11 ;Sendt when user cell needs to be converted. ;funkey, Feb 8, 2012 ;https://www.autoitscript.com/forum/topic/137333-ragriddll/?do=findComment&comment=961420 Global Const $__RAGRIDCONSTANT_DEFAULT_GUI_FONT = 17 Global Const $GN_HEADERCLICK = 1 ;User clicked header Global Const $GN_BUTTONCLICK = 2 ;Sendt when user clicks the button in a button cell Global Const $GN_CHECKCLICK = 3 ;Sendt when user double clicks the checkbox in a checkbox cell Global Const $GN_IMAGECLICK = 4 ;Sendt when user double clicks the image in an image cell Global Const $GN_BEFORESELCHANGE = 5 ;Sendt when user request a selection change Global Const $GN_AFTERSELCHANGE = 6 ;Sendt after a selection change Global Const $GN_BEFOREEDIT = 7 ;Sendt before the cell edit control shows Global Const $GN_AFTEREDIT = 8 ;Sendt when the cell edit control is about to close Global Const $GN_BEFOREUPDATE = 9 ;Sendt before a cell updates grid data Global Const $GN_AFTERUPDATE = 10 ;Sendt after grid data has been updated Global Const $GN_USERCONVERT = 11 ;Sendt when user cell needs to be converted. Global $Form Global $hGrid Global $hLib Global $hFont Global $lf = DllStructCreate($tagLOGFONT) Global Const $IDC_GRID = 101 Global $hWndSaveFocus = 0 ;take a little time to fill grid on startup with a large number Global Const $iRows = 500 Main() Func Main() FormLoad() If @error = 0 Then ;WinFlash($Form) GUIRegisterMsg($WM_NCACTIVATE, "MY_WM_COMMAND") GUIRegisterMsg($WM_NOTIFY, "MY_WM_COMMAND") GUIRegisterMsg($WM_DESTROY, "MY_WM_COMMAND") While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE ExitLoop ;Case $IDC_GRID ;WinFlash($Form) EndSwitch WEnd GUIRegisterMsg($WM_NCACTIVATE, "") GUIRegisterMsg($WM_NOTIFY, "") GUIRegisterMsg($WM_DESTROY, "") EndIf $lf =0 EndFunc ;==>Main Func FormLoad() Local $wx = 700 Local $wh = 500 $Form = GUICreate("RAGrid Sample Program", $wx, $wh, 0, 0) $hLib = DllOpen(@ScriptDir & "\RAGrid.dll") If $hLib <> -1 Then Local $style = BitOR($WS_CHILD, $WS_VISIBLE, $STYLE_HGRIDLINES, $STYLE_VGRIDLINES, $STYLE_GRIDFRAME, $STYLE_NOSEL) $hGrid = _WinAPI_CreateWindowEx(0, "RAGRID", "", $style, 10, 10, $wx - 15, $wh - 35, $Form, $IDC_GRID) If $hGrid Then GridSetup($hGrid) ColorTheGrid($hGrid, $iRows) EndIf Else MsgBox(266288, "Error", "RaGrid.dll failed to load") GUIDelete($Form) Return SetError(1, 0, 0) EndIf GUISetState(@SW_SHOW) EndFunc ;==>FormLoad Func MY_WM_COMMAND($hWnd, $CBMSG, $wParam, $lParam) Switch $CBMSG Case $WM_NCACTIVATE If Not $wParam Then ; Save control focus $hWndSaveFocus = _WinAPI_GetFocus() ElseIf $hWndSaveFocus Then ; Restore control focus _WinAPI_SetFocus($hWndSaveFocus) $hWndSaveFocus = 0 EndIf Case $WM_NOTIFY ; Process grid notifications Local $pnmh = DllStructCreate("GRIDNOTIFY", $lParam) If DllStructGetData($pnmh, "hwndFrom") = $hGrid Then Switch DllStructGetData($pnmh, "Code") Case $GN_HEADERCLICK ; Sort the grid by column, invert sorting order _SendMessage($hGrid, $GM_COLUMNSORT, DllStructGetData($pnmh, "col"), $SORT_INVERT) ColorTheGrid($hGrid, $iRows) EndSwitch EndIf Case $WM_DESTROY _WinAPI_DeleteObject($hFont) EndSwitch EndFunc ;==>MY_WM_COMMAND Func GridSetup($hWnd) Local $lpzhdrtext, $lpsz, $r, $c, $z Local $col = DllStructCreate("double;double;double;double;double;double;double;double;double;double;double;double") ;Local $col = DllStructCreate("long;long;long;long;long;long;long;long;long;long;long;long") If @error Then MsgBox(BitOR($MB_SYSTEMMODAL, $MB_ICONHAND), Default, "Error in DllStructCreate, Code: " & @error) EndIf For $i = 1 To 5 ; Create and format 5 columns $lpzhdrtext = DllStructCreate("wchar") DllStructSetData($lpzhdrtext, 1, Chr(64 + $i)) DllStructSetData($col, "colwt", 130) DllStructSetData($col, "lpszhdrtext", DllStructGetPtr($lpzhdrtext)) DllStructSetData($col, "halign", $GA_ALIGN_CENTER) DllStructSetData($col, "calign", $GA_ALIGN_CENTER) DllStructSetData($col, "ctype", $TYPE_EDITTEXT) DllStructSetData($col, "ctextmax", 31) DllStructSetData($col, "lpszformat", 0) DllStructSetData($col, "himl", 0) DllStructSetData($col, "hdrflag", 0) _SendMessage($hWnd, $GM_ADDCOL, 0, DllStructGetPtr($col)) Next DllStructSetData($lf, "Height", -12) ; Our grid will use 10 point Arial font DllStructSetData($lf, "FaceName", "Arial") $hFont = _WinAPI_CreateFontIndirect($lf) _SendMessage($hGrid, $WM_SETFONT, $hFont, 0) For $i = 1 To $iRows ; Create 32,765 blank rows _SendMessage($hGrid, $GM_ADDROW, 0, 0) Next For $r = 0 To $iRows - 1; Fill our grid with some data For $c = 0 To 4 $z = String(Random(0, $iRows)) $lpsz = DllStructCreate("char[" & StringLen($z) + 1 & "]") DllStructSetData($lpsz, 1, $z) _SendMessage($hGrid, $GM_SETCELLDATA, _WinAPI_MakeLong($c, $r), DllStructGetPtr($lpsz)) Next Next EndFunc ;==>GridSetup Func ColorTheGrid($hWnd, $Rows) Local $grc = DllStructCreate("double;double") ;Local $grc = DllStructCreate("long;long") DllStructSetData($grc, "backcolor", _MakeRGB(0, 240, 230)) DllStructSetData($grc, "textcolor", 0) For $i = 0 To $Rows - 1 Step 2 _SendMessage($hWnd, $GM_SETROWCOLOR, $i, DllStructGetPtr($grc)) Next DllStructSetData($grc, "backcolor", _MakeRGB(255, 255, 255)) DllStructSetData($grc, "textcolor", 0) For $i = 1 To $Rows Step 2 _SendMessage($hWnd, $GM_SETROWCOLOR, $i, DllStructGetPtr($grc)) Next $grc = 0 EndFunc ;==>ColorTheGrid Func _MakeRGB($b, $g, $r) Local $aRGB[3] $aRGB[0] = $r $aRGB[1] = $g $aRGB[2] = $b Return _ColorSetRGB($aRGB) EndFunc ;==>_MakeRGB
    • By t0nZ
      Often I need to create a panel to monitor a lot of things (users, files, items etc) so I use this piece of code to create a dynamic grid of buttons.
      The number of buttons is variable, and it's related to the size of the gui, the size of the buttons and the distance between buttons.
      Every "button" is a set of three with a real button stacked on the top of two labels, imagine reading a .CSV file or an array or a database and displaying all the things using the labels (Text and COLOR too) and clickin' on the relative button you can call further info on the item or call a particular function.
      So you can decide the number of the buttons, the width of the buttons, and also the distance  between buttons.
      It's quick and dirty, simple  and very improvable (I know..) so fell free to play with the code.
      ;TEST ;GOL-Grill ;Grill test/template ; (c) 2019 NSC ; V.0.6 #Region ;************ Includes ************ #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <StaticConstants.au3> #include <EditConstants.au3> #include <ProgressConstants.au3> #include <_GOLLOG.au3>; NSC first UDF #EndRegion ;************ Includes ************ Dim $agButton[1] Global $ButtonU, $rProgress, $form1, $labeltot, $ntotButtonS ; the number of buttons is variable based on the guisize, the button size and button distance, three examples.... ;Global $guiwidth = 850, $guiheight = 500, $buttonW = 150, $buttonHDistance = 10, $buttonVDistance = 20 ; SMALL GUI / BIG BUTTONS <- try it ! Global $guiwidth = 1500, $guiheight = 700, $buttonW = 90 , $buttonHDistance = 29, $buttonVDistance = 3; BIG GUI / SMALL BUTTONS ;Global $guiwidth = 1200, $guiheight = 800, $buttonW = 300, $buttonHDistance = 30, $buttonVDistance = 7; last two variables are horizontal and vertical distance between buttons Global $ver = "V.0.6" Gollog(">>>>> START") Dim $aResult[11] = [10, "a", "b", "c", "d", "e", "f", "g", "h", "i", "j"] ; this is an example, it can be an array, a DB, a .text file read in real time. Gui() Gollog("start analyzing...") Monitor() While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE CLOSEClicked() Exit Case $ButtonU Monitor() Case Else For $i = 1 To $ntotButtonS If $nMsg = $agButton[$i] Then $Bhit = GUICtrlRead($agButton[$i]) infoB($Bhit) EndIf Next EndSwitch WEnd Func Gui() $form1 = GUICreate("Buttons on a grill " & $ver & " (c) NSC 2019", $guiwidth, $guiheight, 90, 10) $ButtonU = GUICtrlCreateButton("Update", 2, 2, 170, 50) $labeltot = GUICtrlCreateLabel("Total found", 5, 55) $Gollogedit = GUICtrlCreateEdit("", 2, $guiheight - 255, 180, 250, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_WANTRETURN, $WS_BORDER)) $rProgress = GUICtrlCreateProgress($guiwidth - 18, 5, 16, $guiheight - 7, BitOR($PBS_SMOOTH, $PBS_VERTICAL, $WS_BORDER)) GUICtrlSetColor(-1, 0x00FF00) GUICtrlSetBkColor(-1, 0x000000) GUISetState(@SW_SHOW) EndFunc ;==>Gui Func Monitor() GUIDelete($form1) Gui() $leftSTART = 186 ;left align $topSTART = 5 ;start from top $lineDOWN = 45 + $buttonVDistance ; vertical line distance 45 is buttons very near $extraHSTEP = 3 ; extra line distance $buttonSEMIH = 15 ; height of one of the 3 vertical impiled semibuttons $separatorSEMIH = 2 ;vertical distance between 3 semibuttons $separatorW = 2 ;aux horizontal distance ;---------- derived measures $rightLIMIT = $guiwidth - 123 ; right limit befor Carriage Return $leftINCREMENT = $buttonHDistance + $buttonW ; horizontal increment button after button $leftSTEP = $leftSTART ;incremental horizontal $topSTEP = $topSTART ;incremental vertical $foundB = $aResult[0] GUICtrlSetData($labeltot, "Found n°" & $foundB) $ntotButtonS = 0 $nomorebuttons = 0 For $i = 1 To $foundB Local $itemFound = $aResult[$i] ;\TA1000 Gollog($itemFound) GUICtrlCreateGroup('', $leftSTEP, $topSTEP - 3, $buttonW + 3, 50) ;______first-----------------------------_______line___________________UNO________11111_____\\\\\\\\\\------------ Local $textbutton = "button n°" & $i _ArrayAdd($agButton, GUICtrlCreateButton($textbutton, $leftSTEP + $separatorSEMIH, $topSTEP + $extraHSTEP, $buttonW, $buttonSEMIH, $BS_flat)) GUICtrlSetBkColor(-1, 0xccffcc) ;green, sort of GUICtrlSetFont(-1, 7, -1, -1, 'verdana') GUICtrlSetColor(-1, 0x000000) ;___second__________line___________________DUE ________222222-------------------------------------------------------------------- Local $textLINE2 = $itemFound GUICtrlCreateLabel($textLINE2, $leftSTEP + $separatorW, $topSTEP + $buttonSEMIH + $separatorSEMIH, $buttonW, $buttonSEMIH, BitOR($SS_CENTER, $SS_CENTERIMAGE)) GUICtrlSetBkColor(-1, 0xD2D7A8) GUICtrlSetFont(-1, 7, -1, -1, 'verdana') GUICtrlSetColor(-1, 0x000000) ; __third______line________tre___________________________________________________________333333-3333333-333333333-333333-33333-33333-3333-------------------------------- Local $textLINE3 = "line3" GUICtrlCreateLabel($textLINE3, $leftSTEP + $separatorW, $topSTEP + $buttonSEMIH + $buttonSEMIH + $separatorSEMIH, $buttonW, $buttonSEMIH, BitOR($SS_CENTER, $SS_CENTERIMAGE)) ; NSC modify GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) GUICtrlSetFont(-1, 7, -1, -1, 'verdana') GUICtrlSetColor(-1, 0x000000) $ntotButtonS += 1 GUICtrlSetData($rProgress, (100 * $ntotButtonS / $foundB)) If $leftSTEP + $buttonW < $rightLIMIT Then ; $leftSTEP += $leftINCREMENT ;53 Else $leftSTEP = $leftSTART $topSTEP += $lineDOWN If $topSTEP >= $guiheight - 50 Then $nomorebuttons = 1 Gollog("displayed " & $ntotButtonS & " buttons") Gollog("NO more buttons !") EndIf EndIf Sleep(100) ; REMOVE is only for demo Next While $nomorebuttons = 0 ; draw empty buttons (nice to do) $ntotButtonS += 1 _ArrayAdd($agButton, GUICtrlCreateButton("B-" & $ntotButtonS, $leftSTEP + $separatorSEMIH, $topSTEP + $extraHSTEP, $buttonW, $buttonSEMIH, $BS_flat)) If $leftSTEP + $buttonW < $rightLIMIT Then ; $leftSTEP += $leftINCREMENT Else $leftSTEP = $leftSTART $topSTEP += $lineDOWN If $topSTEP >= $guiheight - 50 Then $nomorebuttons = 1 Gollog("displayed " & $ntotButtonS & " buttons") Gollog("NO more buttons !") EndIf EndIf WEnd GUISetState(@SW_SHOW) EndFunc ;==>Monitor Func infoB($Bhit) ; this function act on the pressed button, it's an example so assign the task you need. gollog("infoB -> " & $Bhit) EndFunc ;==>infoB Func CLOSEClicked() MsgBox(64, "exit", "program exiting", 1) Gollog("<---STOP") Exit EndFunc ;==>CLOSEClicked You will need also the Include from this post for the LOG (Gollog) instructions, but you can also just remove the gollog and the EDIT box.
      Look at the screenshot, It's from an APP made using this code.

      21/11/2019 V.0.6
      Script lightly updated with better management of buttons size and distance.
       
    • By mike2003
      Is it possible to combine this?

      like this
      #include <GUIConstantsEx.au3> #include <ListViewConstants.au3> #include <WindowsConstants.au3> Example() Func Example() GUICreate("listview items", 220, 250, 100, 200, -1) ;~ Local $idListview = GUICtrlCreateListView("col1 |col2|col3 ", 10, 10, 200, 150, -1, $LVS_EX_GRIDLINES) Local $idListview = GUICtrlCreateListView("col1 |col2|col3 ", 10, 10, 200, 150, $LVS_LIST, $LVS_EX_GRIDLINES) Local $idItem1 = GUICtrlCreateListViewItem("item2|col22|col23", $idListview) Local $idItem2 = GUICtrlCreateListViewItem("item1|col12|col13", $idListview) Local $idItem3 = GUICtrlCreateListViewItem("item3|col32|col33", $idListview) GUISetState(@SW_SHOW) GUICtrlDelete($idItem1) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop EndSwitch WEnd EndFunc ;==>Example  
    • By redrider81
      I have taken a look at GUICtrlCreateListView and the Table.UDF created by AndyBiochem (great job). I can't see any sign or mention of whether or not there is any way to build a table or grid view where the data in the boxes can be updated. I also don't see anywhere that says they are read only, so I am not sure. 
      Thanks to anyone who can confirm my assumption that it's not possible to edit any grid or table view in AutoIt.
×
×
  • Create New...