Changeset 264 for ExceptionLogger
- Timestamp:
- Aug 17, 2011, 10:08:55 AM (13 years ago)
- Location:
- ExceptionLogger
- Files:
-
- 2 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
ExceptionLogger/ExceptionLogger.lpk
r222 r264 1 1 <?xml version="1.0"?> 2 2 <CONFIG> 3 <Package Version=" 3">3 <Package Version="4"> 4 4 <PathDelim Value="\"/> 5 5 <Name Value="ExceptionLogger"/> 6 <AddToProjectUsesSection Value="True"/> 6 7 <Author Value="Chronos (robie@centrum.cz)"/> 7 8 <CompilerOptions> … … 54 55 </i18n> 55 56 <Type Value="RunAndDesignTime"/> 56 <RequiredPkgs Count=" 2">57 <RequiredPkgs Count="127"> 57 58 <Item1> 58 59 <PackageName Value="LCL"/> 59 60 </Item1> 60 61 <Item2> 62 <PackageName Value="LCL"/> 63 </Item2> 64 <Item3> 65 <PackageName Value="LCL"/> 66 </Item3> 67 <Item4> 68 <PackageName Value="LCL"/> 69 </Item4> 70 <Item5> 71 <PackageName Value="LCL"/> 72 </Item5> 73 <Item6> 74 <PackageName Value="LCL"/> 75 </Item6> 76 <Item7> 77 <PackageName Value="LCL"/> 78 </Item7> 79 <Item8> 80 <PackageName Value="LCL"/> 81 </Item8> 82 <Item9> 83 <PackageName Value="LCL"/> 84 </Item9> 85 <Item10> 86 <PackageName Value="LCL"/> 87 </Item10> 88 <Item11> 89 <PackageName Value="LCL"/> 90 </Item11> 91 <Item12> 92 <PackageName Value="LCL"/> 93 </Item12> 94 <Item13> 95 <PackageName Value="LCL"/> 96 </Item13> 97 <Item14> 98 <PackageName Value="LCL"/> 99 </Item14> 100 <Item15> 101 <PackageName Value="LCL"/> 102 </Item15> 103 <Item16> 104 <PackageName Value="LCL"/> 105 </Item16> 106 <Item17> 107 <PackageName Value="LCL"/> 108 </Item17> 109 <Item18> 110 <PackageName Value="LCL"/> 111 </Item18> 112 <Item19> 113 <PackageName Value="LCL"/> 114 </Item19> 115 <Item20> 116 <PackageName Value="LCL"/> 117 </Item20> 118 <Item21> 119 <PackageName Value="LCL"/> 120 </Item21> 121 <Item22> 122 <PackageName Value="LCL"/> 123 </Item22> 124 <Item23> 125 <PackageName Value="LCL"/> 126 </Item23> 127 <Item24> 128 <PackageName Value="LCL"/> 129 </Item24> 130 <Item25> 131 <PackageName Value="LCL"/> 132 </Item25> 133 <Item26> 134 <PackageName Value="LCL"/> 135 </Item26> 136 <Item27> 137 <PackageName Value="LCL"/> 138 </Item27> 139 <Item28> 140 <PackageName Value="LCL"/> 141 </Item28> 142 <Item29> 143 <PackageName Value="LCL"/> 144 </Item29> 145 <Item30> 146 <PackageName Value="LCL"/> 147 </Item30> 148 <Item31> 149 <PackageName Value="LCL"/> 150 </Item31> 151 <Item32> 152 <PackageName Value="LCL"/> 153 </Item32> 154 <Item33> 155 <PackageName Value="LCL"/> 156 </Item33> 157 <Item34> 158 <PackageName Value="LCL"/> 159 </Item34> 160 <Item35> 161 <PackageName Value="LCL"/> 162 </Item35> 163 <Item36> 164 <PackageName Value="LCL"/> 165 </Item36> 166 <Item37> 167 <PackageName Value="LCL"/> 168 </Item37> 169 <Item38> 170 <PackageName Value="LCL"/> 171 </Item38> 172 <Item39> 173 <PackageName Value="LCL"/> 174 </Item39> 175 <Item40> 176 <PackageName Value="LCL"/> 177 </Item40> 178 <Item41> 179 <PackageName Value="LCL"/> 180 </Item41> 181 <Item42> 182 <PackageName Value="LCL"/> 183 </Item42> 184 <Item43> 185 <PackageName Value="LCL"/> 186 </Item43> 187 <Item44> 188 <PackageName Value="LCL"/> 189 </Item44> 190 <Item45> 191 <PackageName Value="LCL"/> 192 </Item45> 193 <Item46> 194 <PackageName Value="LCL"/> 195 </Item46> 196 <Item47> 197 <PackageName Value="LCL"/> 198 </Item47> 199 <Item48> 200 <PackageName Value="LCL"/> 201 </Item48> 202 <Item49> 203 <PackageName Value="LCL"/> 204 </Item49> 205 <Item50> 206 <PackageName Value="LCL"/> 207 </Item50> 208 <Item51> 209 <PackageName Value="LCL"/> 210 </Item51> 211 <Item52> 212 <PackageName Value="LCL"/> 213 </Item52> 214 <Item53> 215 <PackageName Value="LCL"/> 216 </Item53> 217 <Item54> 218 <PackageName Value="LCL"/> 219 </Item54> 220 <Item55> 221 <PackageName Value="LCL"/> 222 </Item55> 223 <Item56> 224 <PackageName Value="LCL"/> 225 </Item56> 226 <Item57> 227 <PackageName Value="LCL"/> 228 </Item57> 229 <Item58> 230 <PackageName Value="LCL"/> 231 </Item58> 232 <Item59> 233 <PackageName Value="LCL"/> 234 </Item59> 235 <Item60> 236 <PackageName Value="LCL"/> 237 </Item60> 238 <Item61> 239 <PackageName Value="LCL"/> 240 </Item61> 241 <Item62> 242 <PackageName Value="LCL"/> 243 </Item62> 244 <Item63> 245 <PackageName Value="LCL"/> 246 </Item63> 247 <Item64> 248 <PackageName Value="LCL"/> 249 </Item64> 250 <Item65> 251 <PackageName Value="LCL"/> 252 </Item65> 253 <Item66> 254 <PackageName Value="LCL"/> 255 </Item66> 256 <Item67> 257 <PackageName Value="LCL"/> 258 </Item67> 259 <Item68> 260 <PackageName Value="LCL"/> 261 </Item68> 262 <Item69> 263 <PackageName Value="LCL"/> 264 </Item69> 265 <Item70> 266 <PackageName Value="LCL"/> 267 </Item70> 268 <Item71> 269 <PackageName Value="LCL"/> 270 </Item71> 271 <Item72> 272 <PackageName Value="LCL"/> 273 </Item72> 274 <Item73> 275 <PackageName Value="LCL"/> 276 </Item73> 277 <Item74> 278 <PackageName Value="LCL"/> 279 </Item74> 280 <Item75> 281 <PackageName Value="LCL"/> 282 </Item75> 283 <Item76> 284 <PackageName Value="LCL"/> 285 </Item76> 286 <Item77> 287 <PackageName Value="LCL"/> 288 </Item77> 289 <Item78> 290 <PackageName Value="LCL"/> 291 </Item78> 292 <Item79> 293 <PackageName Value="LCL"/> 294 </Item79> 295 <Item80> 296 <PackageName Value="LCL"/> 297 </Item80> 298 <Item81> 299 <PackageName Value="LCL"/> 300 </Item81> 301 <Item82> 302 <PackageName Value="LCL"/> 303 </Item82> 304 <Item83> 305 <PackageName Value="LCL"/> 306 </Item83> 307 <Item84> 308 <PackageName Value="LCL"/> 309 </Item84> 310 <Item85> 311 <PackageName Value="LCL"/> 312 </Item85> 313 <Item86> 314 <PackageName Value="LCL"/> 315 </Item86> 316 <Item87> 317 <PackageName Value="LCL"/> 318 </Item87> 319 <Item88> 320 <PackageName Value="LCL"/> 321 </Item88> 322 <Item89> 323 <PackageName Value="LCL"/> 324 </Item89> 325 <Item90> 326 <PackageName Value="LCL"/> 327 </Item90> 328 <Item91> 329 <PackageName Value="LCL"/> 330 </Item91> 331 <Item92> 332 <PackageName Value="LCL"/> 333 </Item92> 334 <Item93> 335 <PackageName Value="LCL"/> 336 </Item93> 337 <Item94> 338 <PackageName Value="LCL"/> 339 </Item94> 340 <Item95> 341 <PackageName Value="LCL"/> 342 </Item95> 343 <Item96> 344 <PackageName Value="LCL"/> 345 </Item96> 346 <Item97> 347 <PackageName Value="LCL"/> 348 </Item97> 349 <Item98> 350 <PackageName Value="LCL"/> 351 </Item98> 352 <Item99> 353 <PackageName Value="LCL"/> 354 </Item99> 355 <Item100> 356 <PackageName Value="LCL"/> 357 </Item100> 358 <Item101> 359 <PackageName Value="LCL"/> 360 </Item101> 361 <Item102> 362 <PackageName Value="LCL"/> 363 </Item102> 364 <Item103> 365 <PackageName Value="LCL"/> 366 </Item103> 367 <Item104> 368 <PackageName Value="LCL"/> 369 </Item104> 370 <Item105> 371 <PackageName Value="LCL"/> 372 </Item105> 373 <Item106> 374 <PackageName Value="LCL"/> 375 </Item106> 376 <Item107> 377 <PackageName Value="LCL"/> 378 </Item107> 379 <Item108> 380 <PackageName Value="LCL"/> 381 </Item108> 382 <Item109> 383 <PackageName Value="LCL"/> 384 </Item109> 385 <Item110> 386 <PackageName Value="LCL"/> 387 </Item110> 388 <Item111> 389 <PackageName Value="LCL"/> 390 </Item111> 391 <Item112> 392 <PackageName Value="LCL"/> 393 </Item112> 394 <Item113> 395 <PackageName Value="LCL"/> 396 </Item113> 397 <Item114> 398 <PackageName Value="LCL"/> 399 </Item114> 400 <Item115> 401 <PackageName Value="LCL"/> 402 </Item115> 403 <Item116> 404 <PackageName Value="LCL"/> 405 </Item116> 406 <Item117> 407 <PackageName Value="LCL"/> 408 </Item117> 409 <Item118> 410 <PackageName Value="LCL"/> 411 </Item118> 412 <Item119> 413 <PackageName Value="LCL"/> 414 </Item119> 415 <Item120> 416 <PackageName Value="LCL"/> 417 </Item120> 418 <Item121> 419 <PackageName Value="LCL"/> 420 </Item121> 421 <Item122> 422 <PackageName Value="LCL"/> 423 </Item122> 424 <Item123> 425 <PackageName Value="LCL"/> 426 </Item123> 427 <Item124> 428 <PackageName Value="LCL"/> 429 </Item124> 430 <Item125> 431 <PackageName Value="LCL"/> 432 </Item125> 433 <Item126> 434 <PackageName Value="LCL"/> 435 </Item126> 436 <Item127> 61 437 <PackageName Value="FCL"/> 62 438 <MinVersion Major="1" Valid="True"/> 63 </Item 2>439 </Item127> 64 440 </RequiredPkgs> 65 441 <UsageOptions> -
ExceptionLogger/UExceptionForm.lfm
r167 r264 1 1 object ExceptionForm: TExceptionForm 2 Left = 2172 Left = 331 3 3 Height = 316 4 Top = 1 715 Width = 6914 Top = 184 5 Width = 440 6 6 Caption = 'Exception info' 7 7 ClientHeight = 316 8 ClientWidth = 6918 ClientWidth = 440 9 9 OnCreate = FormCreate 10 10 OnDestroy = FormDestroy 11 11 OnShow = FormShow 12 Position = poScreenCenter 12 13 LCLVersion = '0.9.31' 13 object ButtonClose: TButton 14 Left = 611 15 Height = 25 16 Top = 286 17 Width = 75 18 Anchors = [akRight, akBottom] 19 Caption = 'Close' 20 OnClick = ButtonCloseClick 14 object PanelBasic: TPanel 15 Left = 0 16 Height = 80 17 Top = 0 18 Width = 440 19 Align = alTop 20 BevelOuter = bvNone 21 ClientHeight = 80 22 ClientWidth = 440 21 23 TabOrder = 0 24 object Image1: TImage 25 Left = 8 26 Height = 48 27 Top = 8 28 Width = 48 29 OnClick = Image1Click 30 Picture.Data = { 31 1754506F727461626C654E6574776F726B477261706869639C0C000089504E47 32 0D0A1A0A0000000D49484452000000300000003008060000005702F987000000 33 0473424954080808087C0864880000000970485973000005310000053101B7ED 34 28520000001974455874536F667477617265007777772E696E6B73636170652E 35 6F72679BEE3C1A00000C194944415468819D997B8C15D51DC73F67662EE82A25 36 48C1A5202A015C0571450BCBC3DAB89644DBC20AD18DA08B0FDA8A6F946AFA07 37 58FF6AB4A90D88CA233654C568A5B12D52A5B0605B828DC6B0AB1850D816581E 38 AE2F28ECE3DE3B73CEE91F73CEDC33B37797DD4EF2CB9C393373E6FBFDBD6746 39 68ADE9EF562F84FFF873CFEDBE78DAB431684D6A859ED6B30F1222B9464B09A0 40 BFDCB7EFC4B3CB97573F77E8D089FE6211FD25502F84D7B070E1CECBC78E9DD2 41 75F0A08F10699CC9CAA2DBBDC29E0F437418264472E79DC7D7E79E7BF0A5575F 42 9DDC5F12FD22502F84B760C1827F4CA8ACAC291C39E277BB5308CAAE26045A29 43 741425C08521288CE4860DE3E4F0E1075FDAB0A15F24FA4CA05E08EFE6B973DF 44 BD7CE8D069D1891381EE01B09D4F8EB5464B890E43B4520968173C42208060C8 45 10DA2FBCF0E086D75E9BBC62FFFE3E91E813817A21BC1FD7D6365E397CF84C55 46 28040950D22E935D494919838FA2546CB8DACF1209060D227FE9A5875E7EE595 47 2BFB42E28C04EA85F06A274DDA523366CCF7D13AD006B43080DDBB13AB688D8A 48 A2127833EF824E80675C0920A8A8209A32E5F0FA75EBAE58D9D272F2FF26502F 49 843F63F4E8CDDF9B38B1567B5ED01368EDBA8C523178A56C96C93C51A4345F8E 50 889FCB911B3408396DDAD11757AE9CD81B891E09D40BE14F1F3D7AF335975D56 51 8B10817B4E1B229110F84E1A554AC5C04DC0BAA0BB3DD821A300DF1CFB030712 52 E47231A920405C7BEDD1F5CF3F7FF9337BF7967527AF47F0A3466DBE66FCF85A 53 2D65A0A20825254A4AA494A828E2447535A2A181BCE7A195220A43A491A85040 54 2985520AA914D2DC27A54CCD2B29F9AABA9A13757584410041009E57BABE5844 55 35368EBC7DD1A28F1EB9F4D2217DB240BD10FEB41123365F535555AB3D2F28E7 56 32A7A74CA17AC9123CDFA765C70EDAD7AE25572CA2011586E960EE45FBFFBDFA 57 6A2E5AB8103F0838F2CF7F72F6A64D0CD43AE55A1EB17B45353587376EDC58FD 58 747373CA12290216FCCCF1E36B112250388169C65D35354C32E0214E932DDBB7 59 737ACD1ABCCE4ED03A89897275C26EED53A732F6EEBB1142A04C7AFDFCBDF718 60 F0E69BE4A20861DCCB95AE89130F6EDAB66DB24B2221502F8437BDB272D38C71 61 E3666908B4035A998BF335354CFAF9CFF10D7877DBB7650B2757AD221786C99C 62 CE685F1B209D336650F5D39F26E0A513ECC777ED22F7C73F124451CA0296C437 63 2346EC6F6C6E9E6A4908AD35F54278332A2BFF347DCC981BB41081056D338C06 64 C2E9D399B874691C6065DC426BCDDEB7DFE6EB679F4D489473A5FCCC994CBCF7 65 DEE41E4B406B9DB44B9FEFDA45B0716342221143E4B8EF7FB2BDA565E6CA9696 66 931E40F5B0612BA68F1E7D839232D04EC06A13B0F9C99399F0E8A3E4060C8817 67 31E2795EEAF8B21B6F64C8FDF793F7BC2458DD40CECF9C49F5830F92CBE5F07D 68 1FCFF312719552397D3A85BA3A2229E360B7627055168B13AE1E3E7C134000F0 69 AD8A8A315AA924601331DA97070E70F2F061CE1F3F3E05D8D5BEDD5FFEA31FF1 70 91D67CB9620541B198685F5E771D572F59D2ED7A571900524AA230A473CF1E72 71 26366CE1B496F080C11515833063B4D65A3B39DC32D686F180B6360E2C5BC617 72 FBF7A70894B384E7795C317B36C31E7A887C10C4DABFEE3AA62E5D4A1004DD34 73 9FB5828C22FEBD762DE7EEDE5DB25E2615CB18A74C2C80751921509482D61DE7 74 8E1E65EF2F7E81FFD453545655F51807D6AFAF983D1B0D7CD5D4C4CCC71E4B02 75 56299510752DA14C2D39B07A35E7ECDE8D048494B1C69D2A6DC7CA8F9BE1004A 76 15D44D9B16BCD63AF63D60C0B1637CBC7429E2996718515565BC43A4DCC25A42 77 29C59573E6A067CF4E0A984B5A299590F03C8F62B1C8DE55AB38EBC30F898488 78 B38F7111E58CAD5B2B93B93CF374A5A5041BB84E17A9C2B044504A8263C7685A 79 B284B6FDFBBBB980750FAB6177ECFB3E4288D435F65C582CB267C50A721F7C90 80 0AFCC848E246C65226A0753A06A208DB32104509786DC7969494F8478FF2C17D 81 F7717CDFBE14109788056AC716BCBDDE8EA330E4C35FFF1AB56B5702389232C9 82 402E09E5C48034BD564CC009601B0F320C636B38016DADA3A4C46B6DE55F8B17 83 73FCD34F7B0C4A57D316B06B0D1945ECFAD5AF503B77A2A22806EE808E6CFF64 84 70446E3A554ABB2EA4B594605D258A1277D25296CD4E3A8AF05A5BD9F9939FD0 85 FAC927F1BC498BBD59C3CECB28E2EF4F3E49F8EEBB4452528C22A2282A3585C6 86 236414C55AB7C725523A65014C0B9CB88D03B81B196B1929E1D021FEB16811C7 87 5A5A92AA6A03B61C702B7F7BE2090A3B76C479DF00B4BE1E3969D3ED826D276C 88 89940838019B803780712BA1012FA328D5FB9F3B793243478E4CB7CB666CDD28 89 4BE6E26BAF25F4FD52809A349AF57D4BC6BA9174949AA451194528DB0E0B91A4 90 2A5B059396DA36784A254DDE5975755CFFD45371B595B25B81039274E976BE57 91 CE9983528A3D4F3E895728942AAD52E079C927188BC577F000844294EA802C16 92 9504B4E741109472AD5B0FDCB191B3EAEAA87DFAE9B86E285BF248152A2B3616 93 ECA6B566725D1D4A293EFAE52F93B6C3339F603CCF8BF37E69513044545C479C 94 4216865A866102500981F63C94EFA33D0FEDFBB1785E426EE0DCB95CFF9BDF24 95 E05DEDDA42E6565BA02C89AB6EBA090D342F5B865F2CA28C5F7B42E01B12AEE6 96 2D19690825EFBAA9C6C07ECB911249A9A550C64A036EBD951FFCF6B7B1950C78 97 2BC9CBB9F93AE1B60B5A6B82204888593257D5D521A5E4A3E5CB5324B4947842 98 101857745B6B2D84D30B3924B21D4E766E607D3D3F5CB70EA5359109E6245B39 99 16F03C8F7C6727DF1C3FCEE84B2E4911CC5AC1F77DBE3B772E52299A972F2757 100 28A4DFEAA44CDA08EB4ACAB580CBAC3722B9FA7A66AF5F1F9BB0584C9AB02443 101 39EE12160AFCF9673FA3B8772FD76FD8C0459326A580FBBE9F6AFE7CDF67EABC 102 792829695EB62C2641ECF36E105B5C61189662C03D518E8800F4BC79CC5AB306 103 CFF7136DBB005C572AE6F3BCB57831C5AD5B51C0DF162C609621612D642D612D 104 60AD3365DE3C8AF93C4D8F3FCE804201DF80F48D48B3CFC7C338461408D50BF8 105 FCAC597C6FE54A8479D372DFA05C02524ABA3A3A78EB9E7B905BB726F7CBC387 106 7967FE7CFED3DC9CEAEB2DF86CD59E317F3E973CF1442AE3653F656A03D50338 107 0C2F1F80B628033C71A3A6268E998767DB62D70A5D1D1DBC73EFBDB06D5B37F7 108 93ADADBCBD604137126E7F648914BABA38EEACE18297401B9C3A047F4F08ACD1 109 FACD2678E03368CB672CE001155F7CC1DE3BEFE4E0FBEFA71EEA92C87776B2ED 110 FEFBF11A1BCB2A4100AAB595CD652C9105FFFADD77736AFBF66EE023E0389C6E 111 81D56BB55E9E103024DED8030F7F065FB6537A89B052D1D6C6C70D0DB4BCF71E 112 52CA941B15BABA68BCEF3E7C07BC0765C7FAC811DECA90B02F355D1D1DBCD4D0 113 C0C96DDBBA7D3F2D00C7A0FD28AC5EAFF5E31677EAD3E23AAD5FFB141E38005F 114 9D328C5D00156D6D34DD761B9FEEDC9968AC98CFD3B87831B9C6C6B800F500DC 115 3DA75A5BD974EBADFCBBA92921D1D5D1C14BB7DFCEC9AD5B536F63009DB1E6DB 116 DB60F5EFB57ECCC55CF6E3EE2221EA2F805517C2B7071367015BC824D0515949 117 CD1B6F30ACAA8ABFDC761B62CB96E49CCA5CAB7A11316A14735E7F9DF3C78E65 118 434303DF6CD99200F7CDBE03F81ADA4FC19A0D5A2FCD62EDF1EBF45D42DC3212 119 9E1F0D4387664828E0746525FE8409F88D8D3D023E13016D489C3D6E1CA777EC 120 8801399A6F07BE80F64E58FBAAD68F96C3D9EBFF81BB84B8F97C7861140C3D1F 121 1870066067029C05EFA6C90490D99F043E87CE3CAC7D4DEB253D613CE31F9ABB 122 84B87908BC70010C1D090C3C03D09ECEE932E36C7EB7FF0ABE068E416711D6BC 123 AEF523BDE1EBD33FB23B84B865704CE2BC0B80B3CF40A22F04CA152805B40147 124 A13384757FD0FAE13361EBF35FCA3B84B8E51C43E26243C26ADC16982CD0DE5C 125 264B40C6C039029D511FC1F78B00C042216E390B568F8221E3808A1EC0F6E632 126 E55C27020E0387A053C1BA37FA08BEDF0420B6440ED67E07068FA37B76B202DD 127 5DA6A7DEA61538085D1AD66DD4FAA1FEE0E93701803B8598AFE0F94130D8CEB9 128 C05499B972BFAAEC760ABA04BCB851EB07FA8BA52C0111F7086E176BC5D618FF 129 06985501B38D5695E90E85B6EB6680965153C24943F35FE17794C2CA8A7B1C01 130 5267000BD387FB40CE80CB19F0FF8FF899B1ED0AAC612C10572410F6636FEF2B 131 0251CA02A639B30FB56012AD3B73D97DD65A760D1C0256EB298D668864CF9513 132 ED5AE17F98412D151886AE050000000049454E44AE426082 133 } 134 end 135 object Label1: TLabel 136 Left = 69 137 Height = 14 138 Top = 8 139 Width = 196 140 Caption = 'Error occured during program execution:' 141 ParentColor = False 142 end 143 object LabelMessage: TLabel 144 Left = 80 145 Height = 46 146 Top = 24 147 Width = 296 148 Anchors = [akTop, akLeft, akBottom] 149 AutoSize = False 150 Caption = ' ' 151 ParentColor = False 152 WordWrap = True 153 end 22 154 end 23 object ButtonKill: TButton 24 Left = 521 25 Height = 25 26 Top = 286 27 Width = 75 28 Anchors = [akRight, akBottom] 29 Caption = 'Terminate' 30 OnClick = ButtonKillClick 155 object PanelDescription: TPanel 156 Left = 0 157 Height = 204 158 Top = 80 159 Width = 440 160 Align = alClient 161 BevelOuter = bvNone 162 ClientHeight = 204 163 ClientWidth = 440 31 164 TabOrder = 1 165 object PageControl1: TPageControl 166 Left = 8 167 Height = 202 168 Top = 0 169 Width = 427 170 ActivePage = TabSheet2 171 Anchors = [akTop, akLeft, akRight, akBottom] 172 TabIndex = 1 173 TabOrder = 0 174 object TabSheet1: TTabSheet 175 Caption = 'General' 176 ClientHeight = 190 177 ClientWidth = 670 178 object MemoExceptionInfo: TMemo 179 Left = 4 180 Height = 175 181 Top = 3 182 Width = 664 183 Anchors = [akTop, akLeft, akRight, akBottom] 184 ReadOnly = True 185 ScrollBars = ssAutoBoth 186 TabOrder = 0 187 WordWrap = False 188 end 189 end 190 object TabSheet2: TTabSheet 191 Caption = 'Call stack' 192 ClientHeight = 176 193 ClientWidth = 419 194 object ListView1: TListView 195 Left = 4 196 Height = 166 197 Top = 7 198 Width = 413 199 Anchors = [akTop, akLeft, akRight, akBottom] 200 Columns = < 201 item 202 Caption = 'Index' 203 Width = 40 204 end 205 item 206 Caption = 'Address' 207 Width = 75 208 end 209 item 210 Caption = 'Line' 211 Width = 71 212 end 213 item 214 Caption = 'Class' 215 Width = 150 216 end 217 item 218 Caption = 'Procedure/method' 219 Width = 150 220 end 221 item 222 Caption = 'Unit' 223 Width = 150 224 end> 225 ReadOnly = True 226 RowSelect = True 227 TabOrder = 0 228 ViewStyle = vsReport 229 end 230 end 231 end 32 232 end 33 object PageControl1: TPageControl 34 Left = 8 35 Height = 277 36 Top = 3 37 Width = 678 38 ActivePage = TabSheet2 39 Anchors = [akTop, akLeft, akRight, akBottom] 40 TabIndex = 1 233 object PanelButtons: TPanel 234 Left = 0 235 Height = 32 236 Top = 284 237 Width = 440 238 Align = alBottom 239 BevelOuter = bvNone 240 ClientHeight = 32 241 ClientWidth = 440 41 242 TabOrder = 2 42 object TabSheet1: TTabSheet 43 Caption = 'General' 44 ClientHeight = 251 45 ClientWidth = 670 46 object MemoExceptionInfo: TMemo 47 Left = 4 48 Height = 236 49 Top = 3 50 Width = 664 51 Anchors = [akTop, akLeft, akRight, akBottom] 52 ReadOnly = True 53 ScrollBars = ssAutoBoth 54 TabOrder = 0 55 WordWrap = False 56 end 57 end 58 object TabSheet2: TTabSheet 59 Caption = 'Call stack' 60 ClientHeight = 251 61 ClientWidth = 670 62 object ListView1: TListView 63 Left = 4 64 Height = 241 65 Top = 7 66 Width = 664 67 Anchors = [akTop, akLeft, akRight, akBottom] 68 Columns = < 69 item 70 Caption = 'Index' 71 Width = 40 72 end 73 item 74 Caption = 'Address' 75 Width = 75 76 end 77 item 78 Caption = 'Line' 79 Width = 71 80 end 81 item 82 Caption = 'Class' 83 Width = 150 84 end 85 item 86 Caption = 'Procedure/method' 87 Width = 150 88 end 89 item 90 Caption = 'Unit' 91 Width = 150 92 end> 93 ReadOnly = True 94 RowSelect = True 95 TabOrder = 0 96 ViewStyle = vsReport 97 end 98 end 99 end 100 object CheckBoxIgnore: TCheckBox 101 Left = 10 102 Height = 17 103 Top = 288 104 Width = 169 105 Anchors = [akLeft, akBottom] 106 Caption = 'Next time ignore this exception' 107 TabOrder = 3 243 object ButtonKill: TButton 244 Left = 296 245 Height = 25 246 Top = 4 247 Width = 67 248 Anchors = [akRight, akBottom] 249 Caption = 'Terminate' 250 OnClick = ButtonKillClick 251 TabOrder = 0 252 end 253 object ButtonClose: TButton 254 Left = 368 255 Height = 25 256 Top = 4 257 Width = 67 258 Anchors = [akRight, akBottom] 259 Caption = 'Close' 260 OnClick = ButtonCloseClick 261 TabOrder = 1 262 end 263 object CheckBoxIgnore: TCheckBox 264 Left = 10 265 Height = 17 266 Top = 8 267 Width = 169 268 Anchors = [akLeft, akBottom] 269 Caption = 'Next time ignore this exception' 270 TabOrder = 2 271 end 272 object ButtonDetails: TButton 273 Left = 224 274 Height = 25 275 Top = 4 276 Width = 67 277 Anchors = [akRight, akBottom] 278 Caption = 'Details' 279 OnClick = ButtonDetailsClick 280 TabOrder = 3 281 end 108 282 end 109 283 end -
ExceptionLogger/UExceptionForm.lrt
r167 r264 1 1 TEXCEPTIONFORM.CAPTION=Exception info 2 TEXCEPTIONFORM. BUTTONCLOSE.CAPTION=Close3 TEXCEPTIONFORM. BUTTONKILL.CAPTION=Terminate2 TEXCEPTIONFORM.LABEL1.CAPTION=Error occured during program execution: 3 TEXCEPTIONFORM.LABELMESSAGE.CAPTION= 4 4 TEXCEPTIONFORM.TABSHEET1.CAPTION=General 5 5 TEXCEPTIONFORM.TABSHEET2.CAPTION=Call stack … … 10 10 TEXCEPTIONFORM.LISTVIEW1.COLUMNS[4].CAPTION=Procedure/method 11 11 TEXCEPTIONFORM.LISTVIEW1.COLUMNS[5].CAPTION=Unit 12 TEXCEPTIONFORM.BUTTONKILL.CAPTION=Terminate 13 TEXCEPTIONFORM.BUTTONCLOSE.CAPTION=Close 12 14 TEXCEPTIONFORM.CHECKBOXIGNORE.CAPTION=Next time ignore this exception 15 TEXCEPTIONFORM.BUTTONDETAILS.CAPTION=Details -
ExceptionLogger/UExceptionForm.pas
r167 r264 7 7 uses 8 8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, 9 CustomLineInfo, ComCtrls, UStackTrace;9 CustomLineInfo, ComCtrls, ExtCtrls, UStackTrace, UExceptionLogger; 10 10 11 11 type … … 16 16 17 17 TExceptionForm = class(TForm) 18 ButtonDetails: TButton; 19 ButtonClose: TButton; 18 20 ButtonKill: TButton; 19 ButtonClose: TButton;20 21 CheckBoxIgnore: TCheckBox; 22 Image1: TImage; 23 Label1: TLabel; 24 LabelMessage: TLabel; 21 25 ListView1: TListView; 22 26 MemoExceptionInfo: TMemo; 23 27 PageControl1: TPageControl; 28 PanelBasic: TPanel; 29 PanelDescription: TPanel; 30 PanelButtons: TPanel; 24 31 TabSheet1: TTabSheet; 25 32 TabSheet2: TTabSheet; 26 33 procedure ButtonCloseClick(Sender: TObject); 34 procedure ButtonDetailsClick(Sender: TObject); 27 35 procedure ButtonKillClick(Sender: TObject); 28 36 procedure FormCreate(Sender: TObject); 29 37 procedure FormDestroy(Sender: TObject); 30 38 procedure FormShow(Sender: TObject); 31 private39 procedure Image1Click(Sender: TObject); 32 40 public 41 Logger: TExceptionLogger; 33 42 procedure LoadStackTraceToListView(StackTrace: TStackTrace); 34 43 end; … … 43 52 procedure TExceptionForm.FormShow(Sender: TObject); 44 53 begin 54 Height := PanelBasic.Height + PanelButtons.Height; 45 55 PageControl1.ActivePageIndex := 0; 46 56 CheckBoxIgnore.Checked := False; 57 end; 58 59 procedure TExceptionForm.Image1Click(Sender: TObject); 60 begin 61 47 62 end; 48 63 … … 55 70 begin 56 71 Close; 72 end; 73 74 procedure TExceptionForm.ButtonDetailsClick(Sender: TObject); 75 begin 76 if PanelDescription.Height = 0 then 77 Height := PanelBasic.Height + PanelButtons.Height + 200 78 else Height := PanelBasic.Height + PanelButtons.Height; 79 Application.ProcessMessages; 80 if MemoExceptionInfo.Text = '' then Logger.LoadDetails; 57 81 end; 58 82 … … 72 96 NewItem: TListItem; 73 97 begin 74 with ListView1, Items do begin 98 with ListView1, Items do 99 try 75 100 BeginUpdate; 76 101 Clear; … … 87 112 end; 88 113 end; 114 finally 89 115 EndUpdate; 90 116 end; -
ExceptionLogger/UExceptionLogger.pas
r258 r264 18 18 FLogFileName: string; 19 19 function GetAppVersion: string; 20 procedure SetMaxCallStackDepth(const AValue: Integer); 20 21 procedure MakeReport; 21 procedure S etMaxCallStackDepth(const AValue: Integer);22 procedure ShowForm; 22 23 public 23 24 StackTrace: TStackTrace; 24 25 LastException: Exception; 26 ExceptionSender: TObject; 25 27 IgnoreList: TStringList; 28 procedure LoadDetails; 26 29 constructor Create(AOwner: TComponent); override; 27 30 destructor Destroy; override; … … 146 149 StackTrace.GetExceptionBackTrace; 147 150 LastException := E; 148 if Sender is TThread then TThread.Synchronize(TThread(Sender), MakeReport) 149 else MakeReport; 151 ExceptionSender := Sender; 152 if ExceptionSender is TThread then 153 TThread.Synchronize(TThread(ExceptionSender), ShowForm) 154 else ShowForm; 150 155 end; 151 156 … … 154 159 Report: TStringList; 155 160 begin 161 StackTrace.GetInfo; 156 162 if IgnoreList.IndexOf(LastException.ClassName) = -1 then begin 157 163 Report := TStringList.Create; … … 170 176 IgnoreList.Add(LastException.ClassName); 171 177 end; 178 end; 179 180 procedure TExceptionLogger.ShowForm; 181 begin 182 ExceptionForm.Logger := Self; 183 ExceptionForm.LabelMessage.Caption := LastException.Message; 184 ExceptionForm.MemoExceptionInfo.Clear; 185 if not ExceptionForm.Visible then ExceptionForm.ShowModal; 186 end; 187 188 procedure TExceptionLogger.LoadDetails; 189 begin 190 if ExceptionSender is TThread then 191 TThread.Synchronize(TThread(ExceptionSender), MakeReport) 192 else MakeReport; 172 193 end; 173 194 -
ExceptionLogger/UStackTrace.pas
r167 r264 22 22 23 23 TStackTrace = class(TObjectList) 24 Frames: array of Pointer; 24 25 MaxDepth: Integer; 25 26 procedure GetExceptionBackTrace; 26 27 procedure GetCallStack(BP: Pointer); 27 28 procedure GetCurrentCallStack; 29 procedure GetInfo; 28 30 constructor Create; 29 31 end; … … 66 68 try 67 69 I := 0; 70 SetLength(Frames, 0); 68 71 while (BP <> nil) and (I < MaxDepth) do begin 69 CallerAddress := TStackFrameInfo(get_caller_addr(BP)); 70 StackFrameInfo := TStackFrameInfo.Create; 71 StackFrameInfo.GetFrameInfo(CallerAddress); 72 StackFrameInfo.Index := I + 1; 73 Add(StackFrameInfo); 72 SetLength(Frames, Length(Frames) + 1); 73 Frames[I] := TStackFrameInfo(get_caller_addr(BP)); 74 74 Inc(I); 75 75 BP := TStackFrameInfo(get_caller_frame(BP)); … … 89 89 var 90 90 FrameCount: Integer; 91 Frames : PPointer;91 FramesList: PPointer; 92 92 FrameNumber: Integer; 93 StackFrameInfo: TStackFrameInfo;94 93 begin 95 Clear; 96 StackFrameInfo := TStackFrameInfo.Create; 97 StackFrameInfo.GetFrameInfo(ExceptAddr); 98 StackFrameInfo.Index := 1; 99 Add(StackFrameInfo); 94 SetLength(Frames, 1); 95 Frames[0] := ExceptAddr; 100 96 FrameCount := ExceptFrameCount; 101 Frames := ExceptFrames;97 FramesList := ExceptFrames; 102 98 if FrameCount > MaxDepth then FrameCount := MaxDepth; 99 SetLength(Frames, FrameCount + 1); 103 100 for FrameNumber := 0 to FrameCount - 1 do begin 104 StackFrameInfo := TStackFrameInfo.Create; 105 StackFrameInfo.GetFrameInfo(Frames[FrameNumber]); 106 StackFrameInfo.Index := FrameNumber + 1; 107 Add(StackFrameInfo); 101 Frames[FrameNumber + 1] := FramesList[FrameNumber] 108 102 end; 109 103 end; … … 114 108 end; 115 109 110 procedure TStackTrace.GetInfo; 111 var 112 I: Integer; 113 StackFrameInfo: TStackFrameInfo; 114 begin 115 Clear; 116 for I := 0 to High(Frames) do begin 117 StackFrameInfo := TStackFrameInfo.Create; 118 StackFrameInfo.GetFrameInfo(Frames[I]); 119 StackFrameInfo.Index := I + 1; 120 Add(StackFrameInfo); 121 end; 122 end; 123 116 124 end. 117 125 -
ExceptionLogger/languages/UExceptionLogger.cs.po
r155 r264 5 5 "POT-Creation-Date: \n" 6 6 "PO-Revision-Date: \n" 7 "Last-Translator: Jiří Hajda <software@mezservis.cz>\n"7 "Last-Translator: Chronos <robie@centrum.cz>\n" 8 8 "Language-Team: \n" 9 9 "MIME-Version: 1.0\n" … … 36 36 #: uexceptionlogger.sversion 37 37 msgid "Version" 38 msgstr " "38 msgstr "Verze" 39 39
Note:
See TracChangeset
for help on using the changeset viewer.