Gene
Active Members-
Posts
478 -
Joined
-
Last visited
Profile Information
-
Location
North Carolina, USA
Gene's Achievements
Universalist (7/7)
0
Reputation
-
Con is a reserved word, it goes back as far as DOS 2.11 You could use Kon, it would sound the same. Gene
-
List view works great, even when I change tabs.
Gene replied to Gene's topic in AutoIt GUI Help and Support
Thanks for the quick reply. I have tried setting the position 2000 pixels to the left and right, but nothing with the X axis. I continued to get the smear on the other tabs which was better than having the listview in front of them, but not much. I remembered using a listviiew a couple years ago with no problem. I've been reviewing that code since my post and have not yet seen anything. There is of course 3 differences. That was a loop, this is event mode, the method of populating it, that was a long list, changed in frequently and this is a short one and is revised every time a different record is viewed. Gene -
This is in a people tracking program. TAB 0 is the contact info. The others cover personal life details. The listview (LV) is on TAB 0, it displays the record with the focus and the 8 adjacent records on either side of it, 17 all together. Works great. Problem is, when another TAB is clicked, it paints and is immediately partially obscured by the LV. Graphic below. I've tried Setting the state disabled and/or hide, I even tried deleting the list view. Suggestions are welcome. Some code snippets.... <!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1--> $tTabGroupClick = GUICtrlRead($tTabGroup) Select Case $tTabGroupClick = 0 _Lv_Show() GUICtrlSetState($sT0SerchName, $GUI_FOCUS) _DisplayRec() Case $tTabGroupClick = 1 _Lv_Show() GUICtrlSetState($sT1SerchName, $GUI_FOCUS) _DisplayRec() ;===================================== Func _Lv_Show() If $tTabGroupClick = 0 Then GUICtrlSetState($sT0SerchResult, $GUI_ENABLE + $GUI_SHOW) $k = 0 Return 0 Else GUICtrlSetState($sT0SerchResult, $GUI_DISABLE + $GUI_Hide ) $k = 1 Return 1 EndIf EndFunc ;==>_Lv_Show ;=========================================== Func _DispLview() If $tTabGroupClick = 0 Then Local $sT0SerchResult = GUICtrlCreateListView("L. Name|F. Name|Initial|Address|City|State|Zip", 340, 70, 351, 306, $LVS_SORTASCENDING,$LVS_SHOWSELALWAYS) GUICtrlSetState($sT0SerchResult, $GUI_ENABLE + $GUI_SHOW) Else GUICtrlDelete ( $sT0SerchResult ) _DisplayRec() EndIf If $RecNmbr - 8 > -1 Then $aLVRecs17 = StringSplit($aAtData[$RecNmbr - 8], "|") $aLVitems[17] = $aLVRecs17[1] & "|" & $aLVRecs17[2] & "|" & $aLVRecs17[3] & "|" & $aLVRecs17[6] & "|" & $aLVRecs17[8] & "|" & $aLVRecs17[9] $sT0SerchResult_17 = GUICtrlCreateListViewItem($aLVitems[17], $sT0SerchResult) EndIf If $RecNmbr - 7 > -1 Then $aLVRecs16 = StringSplit($aAtData[$RecNmbr - 7], "|") $aLVitems[16] = $aLVRecs16[1] & "|" & $aLVRecs16[2] & "|" & $aLVRecs16[3] & "|" & $aLVRecs16[6] & "|" & $aLVRecs16[8] & "|" & $aLVRecs16[9] $sT0SerchResult_16 = GUICtrlCreateListViewItem($aLVitems[16], $sT0SerchResult) EndIf If $RecNmbr - 6 > -1 Then $aLVRecs1 = StringSplit($aAtData[$RecNmbr - 6], "|") $aLVitems[1] = $aLVRecs1[1] & "|" & $aLVRecs1[2] & "|" & $aLVRecs1[3] & "|" & $aLVRecs1[6] & "|" & $aLVRecs1[8] & "|" & $aLVRecs1[9] $sT0SerchResult_1 = GUICtrlCreateListViewItem($aLVitems[1], $sT0SerchResult) EndIf If $RecNmbr - 5 > -1 Then $aLVRecs2 = StringSplit($aAtData[$RecNmbr - 5], "|") $aLVitems[2] = $aLVRecs2[1] & "|" & $aLVRecs2[2] & "|" & $aLVRecs2[3] & "|" & $aLVRecs2[6] & "|" & $aLVRecs2[8] & "|" & $aLVRecs2[9] $sT0SerchResult_2 = GUICtrlCreateListViewItem($aLVitems[2], $sT0SerchResult) EndIf If $RecNmbr - 4 > -1 Then $aLVRecs3 = StringSplit($aAtData[$RecNmbr - 4], "|") $aLVitems[3] = $aLVRecs3[1] & "|" & $aLVRecs3[2] & "|" & $aLVRecs3[3] & "|" & $aLVRecs3[6] & "|" & $aLVRecs3[8] & "|" & $aLVRecs3[9] $sT0SerchResult_3 = GUICtrlCreateListViewItem($aLVitems[3], $sT0SerchResult) EndIf If $RecNmbr - 3 > -1 Then $aLVRecs4 = StringSplit($aAtData[$RecNmbr - 3], "|") $aLVitems[4] = $aLVRecs4[1] & "|" & $aLVRecs4[2] & "|" & $aLVRecs4[3] & "|" & $aLVRecs4[6] & "|" & $aLVRecs4[8] & "|" & $aLVRecs4[9] $sT0SerchResult_4 = GUICtrlCreateListViewItem($aLVitems[4], $sT0SerchResult) EndIf If $RecNmbr - 2 > -1 Then $aLVRecs5 = StringSplit($aAtData[$RecNmbr - 2], "|") $aLVitems[5] = $aLVRecs5[1] & "|" & $aLVRecs5[2] & "|" & $aLVRecs5[3] & "|" & $aLVRecs5[6] & "|" & $aLVRecs5[8] & "|" & $aLVRecs5[9] $sT0SerchResult_5 = GUICtrlCreateListViewItem($aLVitems[5], $sT0SerchResult) EndIf If $RecNmbr - 1 > -1 Then $aLVRecs6 = StringSplit($aAtData[$RecNmbr - 1], "|") $aLVitems[6] = $aLVRecs6[1] & "|" & $aLVRecs6[2] & "|" & $aLVRecs6[3] & "|" & $aLVRecs6[6] & "|" & $aLVRecs6[8] & "|" & $aLVRecs6[9] $sT0SerchResult_6 = GUICtrlCreateListViewItem($aLVitems[6], $sT0SerchResult) EndIf $aLVRecs7 = StringSplit($aAtData[$RecNmbr], "|") $aLVitems[7] = $aLVRecs7[1] & "|" & $aLVRecs7[2] & "|" & $aLVRecs7[3] & "|" & $aLVRecs7[6] & "|" & $aLVRecs7[8] & "|" & $aLVRecs7[9] $sT0SerchResult_7 = GUICtrlCreateListViewItem($aLVitems[7], $sT0SerchResult) GUICtrlSetColor ( -1, 0xff0000) GUICtrlSetBkColor(-1,0x00ff00) If $RecNmbr + 1 < UBound($aAtData) Then $aLVRecs8 = StringSplit($aAtData[$RecNmbr + 1], "|") $aLVitems[8] = $aLVRecs8[1] & "|" & $aLVRecs8[2] & "|" & $aLVRecs8[3] & "|" & $aLVRecs8[6] & "|" & $aLVRecs8[8] & "|" & $aLVRecs8[9] $sT0SerchResult_8 = GUICtrlCreateListViewItem($aLVitems[8], $sT0SerchResult) EndIf If $RecNmbr + 2 < UBound($aAtData) Then $aLVRecs9 = StringSplit($aAtData[$RecNmbr + 2], "|") $aLVitems[9] = $aLVRecs9[1] & "|" & $aLVRecs9[2] & "|" & $aLVRecs9[3] & "|" & $aLVRecs9[6] & "|" & $aLVRecs9[8] & "|" & $aLVRecs9[9] $sT0SerchResult_9 = GUICtrlCreateListViewItem($aLVitems[9], $sT0SerchResult) EndIf If $RecNmbr + 3 < UBound($aAtData) Then $aLVRecs10 = StringSplit($aAtData[$RecNmbr + 3], "|") $aLVitems[10] = $aLVRecs10[1] & "|" & $aLVRecs10[2] & "|" & $aLVRecs10[3] & "|" & $aLVRecs10[6] & "|" & $aLVRecs10[8] & "|" & $aLVRecs10[9] $sT0SerchResult_10 = GUICtrlCreateListViewItem($aLVitems[10], $sT0SerchResult) EndIf If $RecNmbr + 4 < UBound($aAtData) Then $aLVRecs11 = StringSplit($aAtData[$RecNmbr + 4], "|") $aLVitems[11] = $aLVRecs11[1] & "|" & $aLVRecs11[2] & "|" & $aLVRecs11[3] & "|" & $aLVRecs11[6] & "|" & $aLVRecs11[8] & "|" & $aLVRecs11[9] $sT0SerchResult_11 = GUICtrlCreateListViewItem($aLVitems[11], $sT0SerchResult) EndIf If $RecNmbr + 5 < UBound($aAtData) Then $aLVRecs12 = StringSplit($aAtData[$RecNmbr + 5], "|") $aLVitems[12] = $aLVRecs12[1] & "|" & $aLVRecs12[2] & "|" & $aLVRecs12[3] & "|" & $aLVRecs12[6] & "|" & $aLVRecs12[8] & "|" & $aLVRecs12[9] $sT0SerchResult_12 = GUICtrlCreateListViewItem($aLVitems[12], $sT0SerchResult) EndIf If $RecNmbr + 6 < UBound($aAtData) Then $aLVRecs13 = StringSplit($aAtData[$RecNmbr + 6], "|") $aLVitems[13] = $aLVRecs13[1] & "|" & $aLVRecs13[2] & "|" & $aLVRecs13[3] & "|" & $aLVRecs13[6] & "|" & $aLVRecs13[8] & "|" & $aLVRecs13[9] $sT0SerchResult_13 = GUICtrlCreateListViewItem($aLVitems[13], $sT0SerchResult) EndIf If $RecNmbr + 7 < UBound($aAtData) Then $aLVRecs14 = StringSplit($aAtData[$RecNmbr + 7], "|") $aLVitems[14] = $aLVRecs14[1] & "|" & $aLVRecs14[2] & "|" & $aLVRecs14[3] & "|" & $aLVRecs14[6] & "|" & $aLVRecs14[8] & "|" & $aLVRecs14[9] $sT0SerchResult_14 = GUICtrlCreateListViewItem($aLVitems[14], $sT0SerchResult) EndIf If $RecNmbr + 8 < UBound($aAtData) Then $aLVRecs15 = StringSplit($aAtData[$RecNmbr + 8], "|") $aLVitems[15] = $aLVRecs15[1] & "|" & $aLVRecs15[2] & "|" & $aLVRecs15[3] & "|" & $aLVRecs15[6] & "|" & $aLVRecs15[8] & "|" & $aLVRecs15[9] $sT0SerchResult_15 = GUICtrlCreateListViewItem($aLVitems[15], $sT0SerchResult) EndIf EndFunc ;==>_DispLview ;======================================== Func _DisplayRec() $sWrkvar = $aAtData [$RecNmbr] $a_Record = StringSplit($sWrkvar, "|") $j = 1 $sT0_LName = $a_Record[$j] $j = $j + 1 $sT0_Fname = $a_Record[$j] $j = $j + 1 $sT0_Initial = $a_Record[$j] $j = $j + 1 $sT0_Computer = $a_Record[$j] $j = $j + 1 $dT0_DateTimeofRecord = $a_Record[$j] $j = $j + 1 $sT0_Addr1 = $a_Record[$j] $j = $j + 1 $sT0_Addr2 = $a_Record[$j] . . . . . . snipped $rT5_Administrator = $a_Record[$j] $j = $j + 1 $rT5_Deceased = $a_Record[$j] $j = $j + 1 $rT5_NoContact = $a_Record[$j] $j = $j + 1 $rT5_Current = $a_Record[$j] GUICtrlSetData($sT0LName, $sT0_LName) GUICtrlSetData($sT0Fname, $sT0_Fname) GUICtrlSetData($sT0Initial, $sT0_Initial) GUICtrlSetData($sT0Addr1, $sT0_Addr1) . . . . . . snipped GUICtrlSetData($rT4Administrator, $rT4_Administrator) GUICtrlSetData($rT4Deceased, $rT4_Deceased) GUICtrlSetData($rT4NoContact, $rT4_NoContact) GUICtrlSetData($rT4Current, $r_Current) sT0CurrentNameChange() _DispLview() EndFunc ;==>_DisplayRec<!--c2--></div><!--ec2-->
-
I'm adding context sensitive help. To do that, as data is being entered the user tabs from field to field or clicks on fields as needed. I'd, like to set a variable to the context of the field with the foucus when it gets the focus in case the user presses the F1 key. I can make code execute when I tab out of a field or when I click out of a field, but not on tabbing or clicking into a field. Some example code is below. The line tabbed in above the ellipsis and the 4th UDF below it (also tabbed in) are examples of something like what I want to do, but don't know how. I could be approaching it from the wrong direction too. Gene Edit 2007/03/16 I discovered ControlGetFocus ( "title" [, "text"] ), I think I can use it to set the Help Topic and to run any other code that would benefit from GotFocus. If there is a better way, I'd like to know it. <!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->Local $sT0LName = GUICtrlCreateInput("", 14, 84, 121, 21) GUICtrlSetOnEvent(-1, "sT0LNameChange") #cs GUICtrlSetOnEvent($sT0LName, sT0LNameonfocus) ; Functionality I'm looking for. #ce Local $sT0Fname = GUICtrlCreateInput("", 145, 84, 121, 21) GUICtrlSetOnEvent(-1, "sT0FnameChange") Local $sT0Initial = GUICtrlCreateInput("", 270, 84, 35, 21) GUICtrlSetOnEvent(-1, "sT0InitialChange") . . . Func sT0LNameChange() $sT0_LName = GUICtrlRead($sT0LName) _StringProper($sT0_LName) GUICtrlSetData($sT0LName, $sT0_LName) EndFunc ;==>sT0LNameChange Func sT0FnameChange() $sT0_Fname = GUICtrlRead($sT0Fname) _StringProper($sT0_Fname) GUICtrlSetData($sT0Fname, $sT0_Fname) EndFunc ;==>sT0FnameChange Func sT0InitialChange() $sT0_Initial = GUICtrlRead($sT0Initial) $sT0_Initial = StringUpper($sT0_Initial) GUICtrlSetData($sT0Initial, $sT0_Initial) EndFunc ;==>sT0InitialChange #cs Func sT0LNameonfocus() $sHelpTopic = '"LName"' EndFunc ;==>sT0LNameChange #ce<!--c2--></div><!--ec2-->
-
Is Koda supposed to generate Event UDFs for Menu events (in event mode)? Gene
-
Hi, I'm using Koda Ver 1.6.0.2 I used Save As to save my project when I started. Now I've done quite a bit of work and when I try to Save or Save As, I get the error below. I've already written off this work. Hope to hear from you soon. Gene >>>>>>>>>>>> Window Details <<<<<<<<<<<<< Title: Koda FormDesigner Class: #32770 Size: X: 335 Y: 366 W: 489 H: 126 >>>>>>>>>>> Mouse Details <<<<<<<<<<< Screen: X: 645 Y: 387 Cursor ID: 2 >>>>>>>>>>> Pixel Color Under Mouse <<<<<<<<<<< RGB: Hex: 0x026AFE Dec: 158462 >>>>>>>>>>> Control Under Mouse <<<<<<<<<<< Size: Control ID: ClassNameNN: Text: >>>>>>>>>>> Status Bar Text <<<<<<<<<<< >>>>>>>>>>> Visible Window Text <<<<<<<<<<< OK Access violation at address 00403B00 in module 'FD.exe'. Read of address FFFFFFDD. >>>>>>>>>>> Hidden Window Text <<<<<<<<<<< {Edit Mar 3, 2007} I have used it again gingerly once since the error above, saving about every 2 minutes. The error did not repeat. I didn't finish the GUI and haven't had s chance to work on it today.
-
No. I don't think he embeds this in each script. I used to use a similar scheme. To put it into effect, the update script was separate from the script to be compliled. From Win Explorer I would run "Compile with Options" after a right click. The first time I compiled a given script, I would click the compiler's "Run" Tab then I pasted a call like "UpDateVerNo.exe "ScriptToBeCompiledFileName.au3" into the "Run Before" text box. Then when I clicked the "Compile" button the ScriptToBeCompiled would be updated just before it was compiled. Of course you would have to code the updater script to take the "ScriptToBeCompiledFileName" from its command line. The only problem with this was that if the compile failed for any reason, I had to reset the version number in the script that failed. That said, I don't use this method any more and all of the above is from memory. Since I started using Component Software's RCS I'm back to manually setting the version at compile time because I haven't figured out how to get the version out of it programmatically. Didn't say I couldn't, said I haven't. Gene {edit 2/28/07a} Left out a sentence. {edit 2/28/07b} I had another thought, you could create an edited version of @GEOSOFT's UDF to decrement the version if the "new" ScriptToBeCompiledFileName.EXE does not exist and call it from the "Run after" text box. You could also embed the ScriptToBeCompiledFileName.au3.ini file in your ScriptToBeCompiledFileName.au3 (the names of the compiler directives change when embeded and you'd need to look them up). Then turn on Auto Incremnt Version and the compiler wrapper would increment the version each time you compile using the wrapper.
-
It does do that, and produces an HTML log file with the latest data at the top of the list, so you don't have to spend a lot of time scrolling down to see what has been happening lately. It puts in column headers every X number of rows (you can change X in the INI) MaxRows=20 is the default. For each day/week/month that IP Address changes occur it inserts a Total Row for the appropriate time unit. That row shows the current date, thenumber of IP Address changes including downtime changes, thenumber of times the connection went down, theamount of downtime in seconds and theaverage number of seconds per time down.If you have a gmail account and configure Jdeb's Send Mail UDF, you can run it on another PC/Server on your network and each time MaxRows is reached, it will send you an emai. No email = nothing serious going on with your connection. Gene
-
I try hard to avoid too much maturity, most people wear it poorly. Thanks for the script comment. Gene
-
Thanks for fixing the balloon issue! Gene
-
I can read size 2 and above just fine. If I remember from your Valik Avatar thread correctly, I'm probably older than your Dad. My Avatar shows how old I feel. Gene
-
Thank you Valik! Gene
-
This is nice, I especially like the 12 month calendar. Some suggestions follow: The tip at the bottom of the screen (BOS) is too terse, non-computer people would be confused. I had to read it twice. Check the punctuation. (Same for the Help box)Why not use the "FileOpenDialog ( )" function to select the file to open instead of requiring the user to type it in from memory?Alternatively you could read the "journals" folder and populate a ComboBox for the user to select from.If you used the "yyyy-mm-dd" format, the files would almost always be in date order for the user.You could also use a key logger to allow the user to type in a date and with each character they type, re-populate a list of days until the one of interest appears. If you added a field for "Key Words" you could use this same method to search the Key Word fields to re-populate a list of the records with those words. DO NOT ASK for help with a key logger, if you develop one DO NOT POST IT, you will be in deep doodoo. I'm probably going to get some flack for mentioning one here, even though this would be a legitimate use of one.You could use the calendar UDF to save the file by the date the user selects from a popup calendar of the current month, this would insure that the format is always the same. This would also let you remove the date format instructions.You should remove one of "date format instructions" and relocate the other in any case.You might want to add a config dialog and allow the user to select colors and fonts they like.An option to change passwords would be appropriate too.Given your tip at the BOS, you might want to popup a warning message box if the user attempts to overwrite an existing file.I didn't check to see if you can set a style for wordwrap, but you should.Instead of having a file for each day, you could put them all in one file, encrypt the date and use the date as the KEY field. This would add to the security.Alternatively you could encrypt the date and use that for the file name if you don't want to use a single file.Using either 7.0 or 7.1 above, you could use the" FileSetTime ( )" function to obscure the dates of all data files so Mr. or Mrs Nosey would have nearly nothing to go on.All the suggestions not withstanding, I do like your Diary. Gene PS. Obviously the foregoing is a stream of conciousness kind of thing. {edit 2/27/07} As regards dates, if you make the program handle the dates, you can extend them to the time as well. hh:mm:ss would virtually guarantee no date-time collisions, and all entries would be chronological. That would make it difficult for most users to purposly mis-date an entry. You could disallow any post dated entries to stymie anyone who would set the computer clock ahead to make an entry and then set it back to the correct time and date. If there is an open Internet connection, you could include a freebie Inet time-n-date setter and compare the Inet Time and date to the computer time and date.
-
Thanks for the reminder, I have 7-Zip on a jump drive and had forgotten it. Gene
-
I hate to whine, but I don't have a RAR tool, can do ZIPs, have not seen a free RAR tool. Gene