修订版 | f0b538d47ce881be451bd4e6ee1fd0d58896bd43 (tree) |
---|---|
时间 | 2019-02-21 18:23:48 |
作者 | kentamaken <kentamaken@gmai...> |
Commiter | kentamaken |
リスト名変更
@@ -5,7 +5,7 @@ | ||
5 | 5 | <FrameworkType>VCL</FrameworkType> |
6 | 6 | <MainSource>textdefind.dpr</MainSource> |
7 | 7 | <Base>True</Base> |
8 | - <Config Condition="'$(Config)'==''">Release</Config> | |
8 | + <Config Condition="'$(Config)'==''">Debug</Config> | |
9 | 9 | <Platform Condition="'$(Platform)'==''">Win32</Platform> |
10 | 10 | <TargetedPlatforms>1</TargetedPlatforms> |
11 | 11 | <AppType>Application</AppType> |
@@ -91,6 +91,7 @@ | ||
91 | 91 | <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> |
92 | 92 | <VerInfo_Locale>1033</VerInfo_Locale> |
93 | 93 | <AppDPIAwarenessMode>PerMonitor</AppDPIAwarenessMode> |
94 | + <BT_BuildType>Debug</BT_BuildType> | |
94 | 95 | </PropertyGroup> |
95 | 96 | <ItemGroup> |
96 | 97 | <DelphiCompile Include="$(MainSource)"> |
@@ -20,18 +20,18 @@ object TextDeFindForm: TTextDeFindForm | ||
20 | 20 | TextHeight = 16 |
21 | 21 | object Splitter1: TSplitter |
22 | 22 | Left = 185 |
23 | - Top = 311 | |
23 | + Top = 328 | |
24 | 24 | Width = 9 |
25 | - Height = 180 | |
25 | + Height = 163 | |
26 | 26 | ExplicitLeft = 232 |
27 | 27 | ExplicitTop = 200 |
28 | 28 | ExplicitHeight = 65 |
29 | 29 | end |
30 | 30 | object Web: TWebBrowser |
31 | 31 | Left = 194 |
32 | - Top = 311 | |
32 | + Top = 328 | |
33 | 33 | Width = 548 |
34 | - Height = 180 | |
34 | + Height = 163 | |
35 | 35 | Align = alClient |
36 | 36 | TabOrder = 7 |
37 | 37 | ExplicitLeft = 242 |
@@ -39,7 +39,7 @@ object TextDeFindForm: TTextDeFindForm | ||
39 | 39 | ExplicitWidth = 300 |
40 | 40 | ExplicitHeight = 150 |
41 | 41 | ControlData = { |
42 | - 4C000000A33800009B1200000000000000000000000000000000000000000000 | |
42 | + 4C000000A3380000D91000000000000000000000000000000000000000000000 | |
43 | 43 | 000000004C000000000000000000000001000000E0D057007335CF11AE690800 |
44 | 44 | 2B2E126208000000000000004C0000000114020000000000C000000000000046 |
45 | 45 | 8000000000000000000000000000000000000000000000000000000000000000 |
@@ -47,27 +47,22 @@ object TextDeFindForm: TTextDeFindForm | ||
47 | 47 | end |
48 | 48 | object Memo1: TMemo |
49 | 49 | Left = 194 |
50 | - Top = 311 | |
50 | + Top = 328 | |
51 | 51 | Width = 548 |
52 | - Height = 180 | |
52 | + Height = 163 | |
53 | 53 | Align = alClient |
54 | 54 | Lines.Strings = ( |
55 | 55 | 'Memo1') |
56 | 56 | TabOrder = 8 |
57 | - ExplicitTop = 294 | |
58 | - ExplicitWidth = 541 | |
59 | - ExplicitHeight = 198 | |
60 | 57 | end |
61 | 58 | object LeftPanel: TPanel |
62 | 59 | Left = 0 |
63 | - Top = 311 | |
60 | + Top = 328 | |
64 | 61 | Width = 185 |
65 | - Height = 180 | |
62 | + Height = 163 | |
66 | 63 | Align = alLeft |
67 | 64 | Caption = 'LeftPanel' |
68 | 65 | TabOrder = 4 |
69 | - ExplicitTop = 294 | |
70 | - ExplicitHeight = 198 | |
71 | 66 | object ListName: TComboBox |
72 | 67 | Left = 1 |
73 | 68 | Top = 1 |
@@ -86,7 +81,7 @@ object TextDeFindForm: TTextDeFindForm | ||
86 | 81 | Left = 1 |
87 | 82 | Top = 51 |
88 | 83 | Width = 183 |
89 | - Height = 128 | |
84 | + Height = 111 | |
90 | 85 | Align = alClient |
91 | 86 | Font.Charset = SHIFTJIS_CHARSET |
92 | 87 | Font.Color = clWindowText |
@@ -101,7 +96,6 @@ object TextDeFindForm: TTextDeFindForm | ||
101 | 96 | TabOrder = 1 |
102 | 97 | Zoom = 100 |
103 | 98 | OnMouseUp = TextMouseUp |
104 | - ExplicitHeight = 146 | |
105 | 99 | end |
106 | 100 | object Tree: TTreeView |
107 | 101 | Left = 1 |
@@ -122,7 +116,6 @@ object TextDeFindForm: TTextDeFindForm | ||
122 | 116 | Height = 25 |
123 | 117 | Align = alTop |
124 | 118 | TabOrder = 0 |
125 | - ExplicitWidth = 735 | |
126 | 119 | object Path: TComboBox |
127 | 120 | Left = 166 |
128 | 121 | Top = 1 |
@@ -135,7 +128,6 @@ object TextDeFindForm: TTextDeFindForm | ||
135 | 128 | Items.Strings = ( |
136 | 129 | 'D:\Music\' |
137 | 130 | 'D:\Music\%'#12522#12473#12488#21517'%') |
138 | - ExplicitWidth = 460 | |
139 | 131 | end |
140 | 132 | object Find: TButton |
141 | 133 | Left = 1 |
@@ -167,7 +159,6 @@ object TextDeFindForm: TTextDeFindForm | ||
167 | 159 | Caption = #32232#38598 |
168 | 160 | TabOrder = 3 |
169 | 161 | OnClick = PathEditButtonClick |
170 | - ExplicitLeft = 680 | |
171 | 162 | end |
172 | 163 | object PathSelButton: TButton |
173 | 164 | Left = 633 |
@@ -178,14 +169,13 @@ object TextDeFindForm: TTextDeFindForm | ||
178 | 169 | Caption = #36984#25246 |
179 | 170 | TabOrder = 4 |
180 | 171 | OnClick = PathSelButtonClick |
181 | - ExplicitLeft = 626 | |
182 | 172 | end |
183 | 173 | end |
184 | 174 | object GridFiles: TStringGrid |
185 | 175 | Left = 194 |
186 | - Top = 311 | |
176 | + Top = 328 | |
187 | 177 | Width = 548 |
188 | - Height = 180 | |
178 | + Height = 163 | |
189 | 179 | Align = alClient |
190 | 180 | Ctl3D = False |
191 | 181 | DrawingStyle = gdsClassic |
@@ -196,9 +186,6 @@ object TextDeFindForm: TTextDeFindForm | ||
196 | 186 | OnMouseDown = GridFilesMouseDown |
197 | 187 | OnSelectCell = GridFilesSelectCell |
198 | 188 | OnSetEditText = GridFilesSetEditText |
199 | - ExplicitTop = 294 | |
200 | - ExplicitWidth = 541 | |
201 | - ExplicitHeight = 198 | |
202 | 189 | ColWidths = ( |
203 | 190 | 64 |
204 | 191 | 64 |
@@ -220,8 +207,6 @@ object TextDeFindForm: TTextDeFindForm | ||
220 | 207 | Align = alBottom |
221 | 208 | TabOrder = 2 |
222 | 209 | Visible = False |
223 | - ExplicitTop = 516 | |
224 | - ExplicitWidth = 735 | |
225 | 210 | ColWidths = ( |
226 | 211 | 64 |
227 | 212 | 64 |
@@ -244,8 +229,6 @@ object TextDeFindForm: TTextDeFindForm | ||
244 | 229 | TabOrder = 3 |
245 | 230 | Text = 'TMP' |
246 | 231 | Visible = False |
247 | - ExplicitTop = 492 | |
248 | - ExplicitWidth = 735 | |
249 | 232 | end |
250 | 233 | object Panel3: TPanel |
251 | 234 | Left = 0 |
@@ -254,7 +237,6 @@ object TextDeFindForm: TTextDeFindForm | ||
254 | 237 | Height = 25 |
255 | 238 | Align = alTop |
256 | 239 | TabOrder = 5 |
257 | - ExplicitWidth = 735 | |
258 | 240 | object Url: TComboBox |
259 | 241 | Left = 76 |
260 | 242 | Top = 1 |
@@ -266,35 +248,48 @@ object TextDeFindForm: TTextDeFindForm | ||
266 | 248 | Items.Strings = ( |
267 | 249 | |
268 | 250 | '[itunes] itmss://itunes.apple.com/search?country=jp&limit=200&' + |
269 | - 'attribute=songTerm&term=%'#26908#32034#25991#23383'%' | |
251 | + 'term=%'#12522#12473#12488#21517'%+%'#26908#32034#25991#23383'% %'#12469#12502#26908#32034'%itmss://itunes.apple.com/search?country' + | |
252 | + '=jp&limit=200&attribute=songTerm&term=%'#26908#32034#25991#23383'%' | |
253 | + | |
254 | + '[itunes] itmss://itunes.apple.com/search?country=jp&limit=200&' + | |
255 | + 'mediaType=apple_music&attribute=songTerm&term=%'#26908#32034#25991#23383'%' | |
270 | 256 | |
271 | 257 | '[itunes] itmss://itunes.apple.com/search?country=jp&limit=200&' + |
272 | 258 | 'term=%'#12522#12473#12488#21517'%+%'#26908#32034#25991#23383'%' |
273 | 259 | |
260 | + '[itunes] itmss://itunes.apple.com/search?country=jp&limit=200&' + | |
261 | + 'attribute=songTerm&term=%'#26908#32034#25991#23383'%' | |
262 | + | |
274 | 263 | '[itunes'#12450#12523#12496#12512'] itmss://itunes.apple.com/search?country=jp&entity' + |
275 | 264 | '=album&attribute=artistTerm&limit=200&term=%'#12522#12473#12488#21517'%' |
265 | + '[spotify] https://open.spotify.com/search/results/%'#12522#12473#12488#21517'% %'#26908#32034#25991#23383'%' | |
266 | + '[amazon] https://music.amazon.co.jp/search/%'#12522#12473#12488#21517'% %'#26908#32034#25991#23383'%' | |
267 | + | |
268 | + '[amazon] https://www.amazon.co.jp/s/ref=nb_sb_noss?url=search-' + | |
269 | + 'alias%3Ddigital-music&field-keywords=%'#12522#12473#12488#21517'% %'#26908#32034#25991#23383'%' | |
276 | 270 | |
277 | 271 | '[google] https://play.google.com/music/listen?hl=ja&pli=1#/sr/' + |
278 | 272 | '%'#12522#12473#12488#21517'% %'#26908#32034#25991#23383'%' |
279 | - '[amazon] https://music.amazon.co.jp/search/%'#12522#12473#12488#21517'% %'#26908#32034#25991#23383'%' | |
280 | 273 | '[google] https://www.google.com/search?q=%'#12522#12473#12488#21517'% %'#26908#32034#25991#23383'%' |
281 | 274 | |
275 | + '[google] https://www.google.com/search?q=%'#12522#12473#12488#21517'% %'#26908#32034#25991#23383'% site:it' + | |
276 | + 'unes.apple.com' | |
277 | + | |
282 | 278 | '[youtube] https://www.youtube.com/results?search_query=%'#12522#12473#12488#21517'% %' + |
283 | 279 | #26908#32034#25991#23383'%' |
284 | 280 | |
285 | 281 | '[DAM] https://www.clubdam.com/app/search/searchKaraokeKeywo' + |
286 | 282 | 'rdArtist.html?keyword=%'#12522#12473#12488#21517'%' |
287 | - | |
288 | - '[google] https://www.google.com/search?q=%'#12522#12473#12488#21517'% %'#26908#32034#25991#23383'% site:it' + | |
289 | - 'unes.apple.com' | |
290 | 283 | '[apple] https://playapplemusic.com/search?q=%'#12522#12473#12488#21517'% %'#26908#32034#25991#23383'%' |
291 | 284 | |
292 | 285 | '[apple] https://linkmaker.itunes.apple.com/ja-jp?country=jp&m' + |
293 | 286 | 'ediaType=apple_music&term=%'#12522#12473#12488#21517'%+%'#26908#32034#25991#23383'%' |
294 | 287 | |
295 | 288 | '[apple] https://itunes.apple.com/search?term=%'#12522#12473#12488#21517'% %'#26908#32034#25991#23383'%&co' + |
296 | - 'untry=jp') | |
297 | - ExplicitWidth = 516 | |
289 | + 'untry=jp' | |
290 | + | |
291 | + '[apple] https://freefielder.jp/itunes2/itsearch.php?searchKey' + | |
292 | + '=music&str=%'#26908#32034#25991#23383'%') | |
298 | 293 | end |
299 | 294 | object FindUrlButton: TButton |
300 | 295 | Left = 1 |
@@ -315,7 +310,6 @@ object TextDeFindForm: TTextDeFindForm | ||
315 | 310 | Caption = #32232#38598 |
316 | 311 | TabOrder = 2 |
317 | 312 | OnClick = UrlEditButtonClick |
318 | - ExplicitLeft = 592 | |
319 | 313 | end |
320 | 314 | object OpURLButton: TButton |
321 | 315 | Left = 653 |
@@ -326,14 +320,13 @@ object TextDeFindForm: TTextDeFindForm | ||
326 | 320 | Caption = #12458#12503#12471#12519#12531 |
327 | 321 | TabOrder = 3 |
328 | 322 | OnClick = OpURLButtonClick |
329 | - ExplicitLeft = 646 | |
330 | 323 | end |
331 | 324 | end |
332 | 325 | object OpURLPanel: TPanel |
333 | 326 | Left = 0 |
334 | 327 | Top = 50 |
335 | 328 | Width = 742 |
336 | - Height = 261 | |
329 | + Height = 278 | |
337 | 330 | Align = alTop |
338 | 331 | AutoSize = True |
339 | 332 | TabOrder = 6 |
@@ -348,7 +341,6 @@ object TextDeFindForm: TTextDeFindForm | ||
348 | 341 | Checked = True |
349 | 342 | State = cbChecked |
350 | 343 | TabOrder = 0 |
351 | - ExplicitTop = 60 | |
352 | 344 | end |
353 | 345 | object OpUrlSpace: TCheckBox |
354 | 346 | Left = 1 |
@@ -360,7 +352,6 @@ object TextDeFindForm: TTextDeFindForm | ||
360 | 352 | Checked = True |
361 | 353 | State = cbChecked |
362 | 354 | TabOrder = 1 |
363 | - ExplicitTop = 19 | |
364 | 355 | end |
365 | 356 | object OpURLZenkaku: TCheckBox |
366 | 357 | Left = 1 |
@@ -370,7 +361,6 @@ object TextDeFindForm: TTextDeFindForm | ||
370 | 361 | Align = alTop |
371 | 362 | Caption = #20840#35282#21270 |
372 | 363 | TabOrder = 2 |
373 | - ExplicitTop = 101 | |
374 | 364 | end |
375 | 365 | object OpURLEscapeEdit: TEdit |
376 | 366 | Left = 1 |
@@ -380,7 +370,6 @@ object TextDeFindForm: TTextDeFindForm | ||
380 | 370 | Align = alTop |
381 | 371 | TabOrder = 3 |
382 | 372 | Text = ':/?#[]@!$&'#39#39'()*+,;=' |
383 | - ExplicitTop = 77 | |
384 | 373 | end |
385 | 374 | object OpURLSpaceEdit: TEdit |
386 | 375 | Left = 1 |
@@ -392,7 +381,6 @@ object TextDeFindForm: TTextDeFindForm | ||
392 | 381 | Text = |
393 | 382 | '!"#$%&'#39'()*+,-./:;<=>?@[\]^_`{|}~'#65295#65340#65374#8741#65372#8230#8229#8216#8217#8220#8221#65288#65289#12308#12309#65339#65341#65371#65373#12296#12297#12298#12299#12300#12301#12302#12303#12304#12305#65291#65293#177 + |
394 | 383 | #215#247#65309#8800#65308#65310#8806#8807#8734#8756#9794#9792#176#8242#8243#8451#65509#65284#65504#65505#65285#65283#65286#65290#65312#167#9734#9733#9675#9679#9678#9671' '#9670#9633#9632#9651#9650#9661#9660#8251#12306#8594#8592#8593#8595 |
395 | - ExplicitTop = 36 | |
396 | 384 | end |
397 | 385 | object OptionUrlDQuote: TCheckBox |
398 | 386 | Left = 1 |
@@ -402,7 +390,6 @@ object TextDeFindForm: TTextDeFindForm | ||
402 | 390 | Align = alTop |
403 | 391 | Caption = '""'#12391#22258#12416 |
404 | 392 | TabOrder = 5 |
405 | - ExplicitTop = 118 | |
406 | 393 | end |
407 | 394 | object OpURLComment: TCheckBox |
408 | 395 | Left = 1 |
@@ -414,7 +401,6 @@ object TextDeFindForm: TTextDeFindForm | ||
414 | 401 | Checked = True |
415 | 402 | State = cbChecked |
416 | 403 | TabOrder = 6 |
417 | - ExplicitTop = 2 | |
418 | 404 | end |
419 | 405 | object OpURLFile: TCheckBox |
420 | 406 | Left = 1 |
@@ -424,7 +410,6 @@ object TextDeFindForm: TTextDeFindForm | ||
424 | 410 | Align = alTop |
425 | 411 | Caption = #12501#12449#12452#12523#21015#12395#29983#12487#12540#12479 |
426 | 412 | TabOrder = 7 |
427 | - ExplicitTop = 135 | |
428 | 413 | end |
429 | 414 | object OpURLituneNazo: TCheckBox |
430 | 415 | Left = 1 |
@@ -432,11 +417,10 @@ object TextDeFindForm: TTextDeFindForm | ||
432 | 417 | Width = 740 |
433 | 418 | Height = 17 |
434 | 419 | Align = alTop |
435 | - Caption = #12450#12540#12486#12451#12473#12488'+'#12479#12452#12488#12523#12391#12399#20309#25925#12363#20986#12390#12371#12394#12356#12398#12391#12479#12452#12488#12523#12398#12415#12391#26908#32034#12375#12390#12522#12473#12488#21517#12391#32094#12427 | |
420 | + Caption = 'itmss:'#12522#12473#12488#21517#12391#32094#12427'('#12479#12452#12488#12523#12398#12415#12391#26908#32034#29992')' | |
436 | 421 | Checked = True |
437 | 422 | State = cbChecked |
438 | 423 | TabOrder = 8 |
439 | - ExplicitTop = 169 | |
440 | 424 | end |
441 | 425 | object OpURLWait: TMaskEdit |
442 | 426 | Left = 1 |
@@ -448,7 +432,6 @@ object TextDeFindForm: TTextDeFindForm | ||
448 | 432 | MaxLength = 9 |
449 | 433 | TabOrder = 9 |
450 | 434 | Text = #12454#12456#12452#12488'3000 ' |
451 | - ExplicitTop = 203 | |
452 | 435 | end |
453 | 436 | object OpURLLocal: TCheckBox |
454 | 437 | Left = 1 |
@@ -457,10 +440,7 @@ object TextDeFindForm: TTextDeFindForm | ||
457 | 440 | Height = 17 |
458 | 441 | Align = alTop |
459 | 442 | Caption = #12525#12540#12459#12523#26908#32034#12418#23455#34892 |
460 | - Checked = True | |
461 | - State = cbChecked | |
462 | 443 | TabOrder = 10 |
463 | - ExplicitTop = 186 | |
464 | 444 | end |
465 | 445 | object OpURLitune: TCheckBox |
466 | 446 | Left = 1 |
@@ -472,17 +452,15 @@ object TextDeFindForm: TTextDeFindForm | ||
472 | 452 | Checked = True |
473 | 453 | State = cbChecked |
474 | 454 | TabOrder = 11 |
475 | - ExplicitTop = 152 | |
476 | 455 | end |
477 | - object OpURLReset: TCheckBox | |
456 | + object OpURLNoSave: TCheckBox | |
478 | 457 | Left = 1 |
479 | - Top = 243 | |
458 | + Top = 260 | |
480 | 459 | Width = 740 |
481 | 460 | Height = 17 |
482 | 461 | Align = alTop |
483 | - Caption = #35373#23450#12434#21021#26399#21270#12375#12390#32066#20102 | |
462 | + Caption = #20445#23384#12379#12378#12395#32066#20102 | |
484 | 463 | TabOrder = 12 |
485 | - ExplicitTop = 227 | |
486 | 464 | end |
487 | 465 | object OpURLOpenSave: TCheckBox |
488 | 466 | Left = 1 |
@@ -492,13 +470,28 @@ object TextDeFindForm: TTextDeFindForm | ||
492 | 470 | Align = alTop |
493 | 471 | Caption = 'itmss:'#12506#12540#12472#12434#12501#12449#12452#12523#12395#20445#23384'('#23455#34892#12501#12457#12523#12480')' |
494 | 472 | TabOrder = 13 |
495 | - ExplicitLeft = 0 | |
496 | - ExplicitTop = 179 | |
473 | + end | |
474 | + object OpURLReset: TCheckBox | |
475 | + Left = 1 | |
476 | + Top = 243 | |
477 | + Width = 740 | |
478 | + Height = 17 | |
479 | + Align = alTop | |
480 | + Caption = #35373#23450#12434#21021#26399#21270#12375#12390#32066#20102 | |
481 | + TabOrder = 14 | |
497 | 482 | end |
498 | 483 | end |
499 | 484 | object PopupMenu2: TPopupMenu |
500 | - Left = 208 | |
485 | + Left = 216 | |
501 | 486 | Top = 360 |
487 | + object PRowDel: TMenuItem | |
488 | + Caption = #34892#21066#38500 | |
489 | + OnClick = PRowDelClick | |
490 | + end | |
491 | + object PRowAdd: TMenuItem | |
492 | + Caption = #34892#36861#21152 | |
493 | + OnClick = PRowAddClick | |
494 | + end | |
502 | 495 | object PFileCut: TMenuItem |
503 | 496 | Caption = #12459#12483#12488 |
504 | 497 | OnClick = PFileCutClick |
@@ -511,6 +504,9 @@ object TextDeFindForm: TTextDeFindForm | ||
511 | 504 | Caption = #12506#12540#12473#12488 |
512 | 505 | OnClick = PFilePasteClick |
513 | 506 | end |
507 | + object N2: TMenuItem | |
508 | + Caption = '-' | |
509 | + end | |
514 | 510 | object PFileSaveAs: TMenuItem |
515 | 511 | Caption = #20445#23384 |
516 | 512 | OnClick = PFileSaveAsClick |
@@ -535,14 +531,6 @@ object TextDeFindForm: TTextDeFindForm | ||
535 | 531 | object N5: TMenuItem |
536 | 532 | Caption = '-' |
537 | 533 | end |
538 | - object PRowDel: TMenuItem | |
539 | - Caption = #34892#21066#38500 | |
540 | - OnClick = PRowDelClick | |
541 | - end | |
542 | - object PRowAdd: TMenuItem | |
543 | - Caption = #34892#36861#21152 | |
544 | - OnClick = PRowAddClick | |
545 | - end | |
546 | 534 | object PColDel: TMenuItem |
547 | 535 | Caption = #21015#21066#38500 |
548 | 536 | OnClick = PColDelClick |
@@ -555,14 +543,21 @@ object TextDeFindForm: TTextDeFindForm | ||
555 | 543 | Caption = #12463#12522#12450 |
556 | 544 | OnClick = PClearClick |
557 | 545 | end |
546 | + object PReload: TMenuItem | |
547 | + Caption = #20803#12395#25147#12377 | |
548 | + OnClick = PReloadClick | |
549 | + end | |
550 | + object N3: TMenuItem | |
551 | + Caption = '-' | |
552 | + end | |
558 | 553 | object PReFind: TMenuItem |
559 | 554 | Caption = #20877#26908#32034 |
560 | - Visible = False | |
555 | + OnClick = PReFindClick | |
561 | 556 | end |
562 | 557 | end |
563 | 558 | object PopupMenu1: TPopupMenu |
564 | - Left = 104 | |
565 | - Top = 288 | |
559 | + Left = 24 | |
560 | + Top = 360 | |
566 | 561 | object PTextCut: TMenuItem |
567 | 562 | Caption = #12459#12483#12488 |
568 | 563 | OnClick = PTextCutClick |
@@ -583,6 +578,10 @@ object TextDeFindForm: TTextDeFindForm | ||
583 | 578 | Caption = #35501#12415#36796#12415 |
584 | 579 | OnClick = PTextOpenClick |
585 | 580 | end |
581 | + object PTextListName: TMenuItem | |
582 | + Caption = #12522#12473#12488#21517#22793#26356 | |
583 | + OnClick = PTextListNameClick | |
584 | + end | |
586 | 585 | object N1: TMenuItem |
587 | 586 | Caption = '-' |
588 | 587 | end |
@@ -596,8 +595,8 @@ object TextDeFindForm: TTextDeFindForm | ||
596 | 595 | end |
597 | 596 | end |
598 | 597 | object SaveDialog: TSaveDialog |
599 | - Left = 24 | |
600 | - Top = 344 | |
598 | + Left = 64 | |
599 | + Top = 304 | |
601 | 600 | end |
602 | 601 | object OpenDialog: TOpenDialog |
603 | 602 | Left = 24 |
@@ -618,8 +617,8 @@ object TextDeFindForm: TTextDeFindForm | ||
618 | 617 | Request.Ranges.Units = 'bytes' |
619 | 618 | Request.Ranges = <> |
620 | 619 | HTTPOptions = [hoForceEncodeParams] |
621 | - Left = 96 | |
622 | - Top = 360 | |
620 | + Left = 112 | |
621 | + Top = 400 | |
623 | 622 | end |
624 | 623 | object IdSSLIOHandlerSocketOpenSSL: TIdSSLIOHandlerSocketOpenSSL |
625 | 624 | MaxLineAction = maException |
@@ -628,7 +627,7 @@ object TextDeFindForm: TTextDeFindForm | ||
628 | 627 | SSLOptions.Mode = sslmUnassigned |
629 | 628 | SSLOptions.VerifyMode = [] |
630 | 629 | SSLOptions.VerifyDepth = 0 |
631 | - Left = 24 | |
632 | - Top = 400 | |
630 | + Left = 48 | |
631 | + Top = 416 | |
633 | 632 | end |
634 | 633 | end |
@@ -158,9 +158,14 @@ type | ||
158 | 158 | OpURLWait:TMaskEdit; |
159 | 159 | OpURLLocal:TCheckBox; |
160 | 160 | OpURLitune:TCheckBox; |
161 | - OpURLReset:TCheckBox; | |
161 | + OpURLNoSave: TCheckBox; | |
162 | 162 | PReFind: TMenuItem; |
163 | 163 | OpURLOpenSave: TCheckBox; |
164 | + OpURLReset: TCheckBox; | |
165 | + N2: TMenuItem; | |
166 | + N3: TMenuItem; | |
167 | + PReload: TMenuItem; | |
168 | + PTextListName: TMenuItem; | |
164 | 169 | procedure FindClick(Sender:TObject); |
165 | 170 | procedure FormCreate(Sender:TObject); |
166 | 171 | procedure GridFilesMouseDown(Sender:TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Integer); |
@@ -198,10 +203,14 @@ type | ||
198 | 203 | procedure PRowAddClick(Sender:TObject); |
199 | 204 | procedure PColDelClick(Sender:TObject); |
200 | 205 | procedure PClearClick(Sender:TObject); |
206 | + procedure PReFindClick(Sender: TObject); | |
207 | + procedure PReloadClick(Sender: TObject); | |
208 | + procedure PTextListNameClick(Sender: TObject); | |
201 | 209 | private |
202 | 210 | function getpathtext:string; |
203 | 211 | function localfind(var sa:TStringDynArray;ssss:string):boolean; |
204 | 212 | function iddownload(Url: string): string; |
213 | + function getsearchtext(Url: String): String; | |
205 | 214 | { Private 宣言 } |
206 | 215 | public |
207 | 216 | { Public 宣言 } |
@@ -395,6 +404,8 @@ procedure TTextDeFindForm.FormClose(Sender:TObject;var Action:TCloseAction); | ||
395 | 404 | begin |
396 | 405 | if Application.Terminated then |
397 | 406 | exit; |
407 | + if OpURLNoSave.Checked then | |
408 | + exit; | |
398 | 409 | |
399 | 410 | Ini.WriteInteger('','Width',Width); |
400 | 411 | Ini.WriteInteger('','Height',Height); |
@@ -453,12 +464,17 @@ var | ||
453 | 464 | s:TStringStream; |
454 | 465 | begin |
455 | 466 | IdHTTP.HandleRedirects:=true; |
467 | + IdHTTP.IOHandler.DefStringEncoding := IndyTextEncoding_UTF8; | |
468 | + IdHTTP.Request.ContentEncoding := 'UTF-8'; | |
469 | + | |
456 | 470 | s:=TStringStream.Create('',TEncoding.UTF8); |
457 | 471 | try |
458 | 472 | Url:=TIdURI.ParamsEncode(Url,IndyTextEncoding_UTF8); |
459 | 473 | IdHTTP.Get(Url,s); |
460 | 474 | s.Position:=0; |
461 | 475 | Result:=s.ReadString(s.Size); |
476 | +// setLength(Result,s.Size); | |
477 | +// s.Read(Result[1],s.Size); | |
462 | 478 | finally |
463 | 479 | FreeAndNil(s); |
464 | 480 | end; |
@@ -466,45 +482,59 @@ begin | ||
466 | 482 | end; |
467 | 483 | |
468 | 484 | |
469 | - procedure TTextDeFindForm.FindUrlButtonClick(Sender:TObject); | |
485 | +function TTextDeFindForm.getsearchtext(Url:String):String; | |
470 | 486 | var |
471 | - urls,s,ss:string; | |
472 | - ls,le,i,count:Integer; | |
487 | + C,cc:Char; | |
488 | +begin | |
473 | 489 | |
474 | - function getsearchtext(Url:String):String; | |
475 | - var | |
476 | - C,cc:Char; | |
477 | - begin | |
490 | + if OpURLComment.Checked then begin | |
491 | + if Url.IndexOf('//')>=0 then | |
492 | + Url:=Url.Substring(0,Url.IndexOf('//')); | |
493 | + end; | |
478 | 494 | |
479 | - if OpURLComment.Checked then begin | |
480 | - if Url.IndexOf('//')>=0 then | |
481 | - Url:=Url.Substring(0,Url.IndexOf('//')); | |
495 | + if OpUrlSpace.Checked then begin | |
496 | + for C in OpURLSpaceEdit.Text do begin | |
497 | + Url:=Url.Replace(C,' '); | |
482 | 498 | end; |
499 | + end; | |
483 | 500 | |
484 | - if OpUrlSpace.Checked then begin | |
485 | - for C in OpURLSpaceEdit.Text do begin | |
486 | - Url:=Url.Replace(C,' '); | |
487 | - end; | |
501 | + if OpURLEscape.Checked then begin | |
502 | + for C in OpURLEscapeEdit.Text do begin | |
503 | + Url:=Url.Replace(C,format('%%%x',[(Ord(C))])); | |
488 | 504 | end; |
505 | + end; | |
489 | 506 | |
490 | - if OpURLEscape.Checked then begin | |
491 | - for C in OpURLEscapeEdit.Text do begin | |
492 | - Url:=Url.Replace(C,format('%%%x',[(Ord(C))])); | |
493 | - end; | |
494 | - end; | |
507 | + if OpURLZenkaku.Checked then begin | |
508 | + Url:=zenkaku(Url); | |
509 | + end; | |
510 | + if OptionUrlDQuote.Checked then begin | |
511 | + Url:='\"'+Url+'\"'; | |
512 | + end; | |
495 | 513 | |
496 | - if OpURLZenkaku.Checked then begin | |
497 | - Url:=zenkaku(Url); | |
498 | - end; | |
499 | - if OptionUrlDQuote.Checked then begin | |
500 | - Url:='\"'+Url+'\"'; | |
501 | - end; | |
514 | + Result:=trim(Url); | |
515 | +end; | |
502 | 516 | |
503 | - Result:=trim(Url); | |
504 | - end; | |
517 | +procedure TTextDeFindForm.FindUrlButtonClick(Sender:TObject); | |
518 | +var | |
519 | + urls,urlss,s,ss:string; | |
520 | + ls,le,i,count:Integer; | |
521 | + row:integer; | |
522 | + hit:Integer; | |
523 | + hitl:boolean; | |
505 | 524 | |
506 | 525 | |
507 | - function jsontogrid(Url:string):string; | |
526 | + function rowadd(row:integer):integer; | |
527 | + begin | |
528 | + if sender=PReFind then begin | |
529 | + result:=Files.RowInsert(row+1,1); | |
530 | + end else begin | |
531 | + Files.RowCount:=Files.RowCount+1; | |
532 | + result:=Files.RowCount-1; | |
533 | + end; | |
534 | + Files.Rows[result].clear; | |
535 | + end; | |
536 | + | |
537 | + function jsontogrid(Url:string):integer; | |
508 | 538 | var |
509 | 539 | obj:TJSONObject; |
510 | 540 | val:TJSONValue; |
@@ -525,7 +555,9 @@ var | ||
525 | 555 | end; |
526 | 556 | |
527 | 557 | begin |
558 | + result:=0; | |
528 | 559 | data:=iddownload(Url); |
560 | + | |
529 | 561 | if OpURLOpenSave.Checked then begin |
530 | 562 | Memo1.Lines.text:=data; |
531 | 563 | Memo1.Lines.SaveToFile(ExtractFilePath(Application.ExeName)+ss+'_'+inttostr(Files.RowCount)+'.txt'); |
@@ -536,47 +568,43 @@ var | ||
536 | 568 | hit:=0; |
537 | 569 | for i:=0 to vresults.count-1 do begin |
538 | 570 | vitem:=vresults.Items[i] as TJSONObject;; |
539 | - r:=Files.RowCount; | |
540 | 571 | artist:=getval('artistName'); |
541 | 572 | if OpURLituneNazo.Checked then |
542 | - if not MatchesMask(artist,'*'+getsearchtext(ListName.Text)+'*') then continue; | |
573 | + if not MatchesMask(artist,getsearchtext(ListName.Text)) then continue; | |
543 | 574 | |
544 | 575 | inc(hit); |
545 | - Files.RowCount:=r+1; | |
546 | - Files.Rows[r].clear; | |
547 | - Files.cells[NTEXT,r]:=getsearchtext(ss); | |
548 | - Files.cells[NFILE,r]:=getval('trackName'); | |
549 | - Files.cells[NPATH,r]:=getval('trackViewUrl').Replace('https:','itmss:'); | |
550 | - Files.cells[NNAME,r]:=getval('artistName'); | |
551 | - Files.cells[NALBAM,r]:=getval('collectionName'); | |
576 | + row:=rowadd(row); | |
577 | + Files.cells[NTEXT,row]:=getsearchtext(ss); | |
578 | + Files.cells[NFILE,row]:=getval('trackName'); | |
579 | + Files.cells[NPATH,row]:=getval('trackViewUrl').Replace('https:','itmss:'); | |
580 | + Files.cells[NNAME,row]:=getval('artistName'); | |
581 | + Files.cells[NALBAM,row]:=getval('collectionName'); | |
552 | 582 | if getval('isStreamable')='true' then |
553 | - Files.cells[NOPEN,r]:='M'; | |
554 | - Files.cells[NOPEN2,r]:='S'; | |
555 | - end; | |
556 | - | |
557 | - if not localfind(sa,ss) then begin | |
558 | - if hit=0 then begin | |
559 | - r:=Files.RowCount; | |
560 | - Files.RowCount:=r+1; | |
561 | - Files.Rows[r].clear; | |
562 | - Files.cells[NTEXT,r]:=getsearchtext(ss); | |
563 | - end; | |
583 | + Files.cells[NOPEN,row]:='M'; | |
584 | + Files.cells[NOPEN2,row]:='S'; | |
564 | 585 | end; |
565 | 586 | |
566 | 587 | except |
567 | 588 | end; |
589 | + result:=hit; | |
590 | + | |
568 | 591 | end; |
569 | 592 | |
570 | - function datatogrid(Url:string):string; | |
593 | + | |
594 | + function datatogrid(Url:string):integer; | |
571 | 595 | var |
572 | 596 | data:string; |
573 | 597 | i,r:Integer; |
574 | 598 | begin |
599 | + result:=0; | |
575 | 600 | data:=iddownload(Url); |
576 | - r:=Files.RowCount; | |
577 | - Files.RowCount:=r+1; | |
578 | - Files.cells[NTEXT,r]:=getsearchtext(ss); | |
579 | - Files.cells[NFILE,r]:=data; | |
601 | + if data<>'' then begin | |
602 | + row:=rowadd(row); | |
603 | + Files.cells[NTEXT,row]:=getsearchtext(ss); | |
604 | + Files.cells[NFILE,row]:=data; | |
605 | + Files.cells[NPATH,row]:=url; | |
606 | + result:=1; | |
607 | + end; | |
580 | 608 | end; |
581 | 609 | function datoi(const s:string;def:Integer):Integer; |
582 | 610 | begin |
@@ -630,34 +658,68 @@ begin | ||
630 | 658 | PFileUpdateClick(Sender); |
631 | 659 | |
632 | 660 | Screen.Cursor:=crHourGlass; |
633 | - ls:=Text.Perform(EM_LINEFROMCHAR,Text.SelStart,0); | |
634 | - le:=Text.Perform(EM_LINEFROMCHAR,Text.SelStart+Text.SelLength-1*Integer(Text.SelLength>0),0); | |
661 | + | |
662 | + if sender=PReFind then begin | |
663 | + ls:=Files.Selection.Top; | |
664 | + le:=Files.Selection.Bottom; | |
665 | + row:=le+1; | |
666 | + end else begin | |
667 | + ls:=Text.Perform(EM_LINEFROMCHAR,Text.SelStart,0); | |
668 | + le:=Text.Perform(EM_LINEFROMCHAR,Text.SelStart+Text.SelLength-1*Integer(Text.SelLength>0),0); | |
669 | + end; | |
670 | + | |
635 | 671 | for i:=ls to le do begin |
636 | 672 | FindUrlButton.Caption:='中止'; |
673 | + row:=i; | |
637 | 674 | Caption:=Self.Name+format(' %d/%d',[i,le]); |
638 | - ss:=Text.lines[i]; | |
675 | + if sender=PReFind then | |
676 | + ss:=Files.Cells[NTEXT,i] | |
677 | + else | |
678 | + ss:=Text.lines[i]; | |
679 | + | |
639 | 680 | if not urlrun then |
640 | 681 | break; |
641 | 682 | Application.ProcessMessages; |
642 | 683 | urls:=geturltext(ss); |
684 | + urlss:=urls.Split(['%サブ検索%']).item(1); | |
685 | + urls:=urls.Split(['%サブ検索%']).item(0); | |
686 | + | |
643 | 687 | if urls='' then |
644 | 688 | continue; |
645 | 689 | |
690 | + hit:=0; | |
646 | 691 | if OpURLFile.Checked then |
647 | - datatogrid(urls) | |
692 | + hit:=datatogrid(urls) | |
648 | 693 | else if OpURLitune.Checked and(urls.IndexOf('itmss:')=0) then begin |
694 | + //曲名だけだとリミットを越えて見つからないことがあるので先にリスト名+検索文字で検索したい | |
649 | 695 | urls:=urls.Replace('itmss:','https:'); |
650 | - jsontogrid(urls); | |
651 | - end | |
652 | - else | |
696 | + hit:=jsontogrid(urls); | |
697 | + if hit=0 then begin | |
698 | + if urlss<>'' then begin | |
699 | + urlss:=urlss.Replace('itmss:','https:'); | |
700 | + hit:=jsontogrid(urlss); | |
701 | + end; | |
702 | + end; | |
703 | + end else | |
653 | 704 | ShellExecute(Handle,'open',PChar(urls),'','',1); |
654 | 705 | |
655 | - if Files.RowCount>(Files.VisibleRowCount+1) then | |
656 | - Files.TopRow:=Files.RowCount-Files.VisibleRowCount; | |
706 | + hitl:=false; | |
707 | + if OpURLLocal.Checked then | |
708 | + hitl:=localfind(sa,ss); | |
709 | + | |
710 | + if(hit=0)and(hitl=false) then begin | |
711 | + row:=rowadd(row); | |
712 | + Files.cells[NTEXT,row]:=getsearchtext(ss); | |
713 | + Files.cells[NPATH,row]:=urls; | |
714 | + end; | |
715 | + | |
716 | + if not (sender=PReFind) then | |
717 | + if Files.RowCount>(Files.VisibleRowCount+1) then | |
718 | + Files.TopRow:=Files.RowCount-Files.VisibleRowCount; | |
657 | 719 | Files.ColExpand(10); |
658 | 720 | Files.setfixed; |
659 | - | |
660 | - sleep(Max(datoi(OpURLWait.Text,3000),1000)); | |
721 | + if i<le then | |
722 | + sleep(Max(datoi(OpURLWait.Text,3000),1000)); | |
661 | 723 | end; |
662 | 724 | finally |
663 | 725 | FindUrlButton.Caption:='URL検索'; |
@@ -668,6 +730,20 @@ begin | ||
668 | 730 | |
669 | 731 | end; |
670 | 732 | |
733 | +procedure TTextDeFindForm.PReFindClick(Sender: TObject); | |
734 | +begin | |
735 | + FindUrlButtonClick(PReFind); | |
736 | +end; | |
737 | + | |
738 | + | |
739 | +procedure TTextDeFindForm.PReloadClick(Sender: TObject); | |
740 | +begin | |
741 | +// pname:=''; | |
742 | +// ListNameChange(sender); | |
743 | + Inifile.readgrid('grid\'+ListName.Text,TGrid(GridFiles)); | |
744 | + | |
745 | +end; | |
746 | + | |
671 | 747 | procedure TTextDeFindForm.PFileExecClick(Sender:TObject); |
672 | 748 | begin |
673 | 749 | with GridFiles do |
@@ -702,6 +778,7 @@ begin | ||
702 | 778 | Files.save(SaveDialog.FileName); |
703 | 779 | end; |
704 | 780 | |
781 | + | |
705 | 782 | procedure TTextDeFindForm.PRowAddClick(Sender:TObject); |
706 | 783 | begin |
707 | 784 | Files.RowInsert(Files.Selection.Top,Files.Selection.Bottom-Files.Selection.Top+1) |
@@ -737,6 +814,13 @@ begin | ||
737 | 814 | FindUrlButtonClick(Sender); |
738 | 815 | end; |
739 | 816 | |
817 | +procedure TTextDeFindForm.PTextListNameClick(Sender: TObject); | |
818 | +begin | |
819 | + ListName.Text:=InputBox('リスト名','リスト名',ListName.Text); | |
820 | + | |
821 | + pname:=ListName.Text; | |
822 | +end; | |
823 | + | |
740 | 824 | procedure TTextDeFindForm.PTextOpenClick(Sender:TObject); |
741 | 825 | begin |
742 | 826 | OpenDialog.DefaultExt:='txt'; |
@@ -991,7 +1075,7 @@ var | ||
991 | 1075 | begin |
992 | 1076 | ls:=Text.Perform(EM_LINEFROMCHAR,Text.SelStart,0); |
993 | 1077 | Result:=Path.Text; |
994 | - Result:=Result.Replace('%リスト名%',ListName.Text); | |
1078 | + Result:=Result.Replace('%リスト名%',getsearchtext(ListName.Text)); | |
995 | 1079 | Result:=Result.Replace('%検索文字%',Text.lines[ls]); |
996 | 1080 | if Result='' then |
997 | 1081 | exit; |
@@ -1010,7 +1094,7 @@ var | ||
1010 | 1094 | s:=zenkaku(s); |
1011 | 1095 | // s:=s.Replace(' ',''); |
1012 | 1096 | // s:=s.Replace('・',''); |
1013 | - Result:=s; | |
1097 | + Result:=trim(s); | |
1014 | 1098 | end; |
1015 | 1099 | |
1016 | 1100 | begin |
@@ -1563,8 +1647,7 @@ begin | ||
1563 | 1647 | X:=ColCount; |
1564 | 1648 | for i:=0 to cnt-1 do |
1565 | 1649 | cols[X+i].clear(); |
1566 | - Result:=0 | |
1567 | - | |
1650 | + Result:=X+cnt-1; | |
1568 | 1651 | end; |
1569 | 1652 | |
1570 | 1653 | function TGrid.ColDelete(X,cnt:Integer):Integer; |
@@ -1586,6 +1669,7 @@ begin | ||
1586 | 1669 | end; |
1587 | 1670 | RowClear(w,cnt); |
1588 | 1671 | ColCount:=w; |
1672 | + Result:=ColCount-1; | |
1589 | 1673 | end; |
1590 | 1674 | |
1591 | 1675 | function TGrid.ColInsert(X,cnt:Integer):Integer; |
@@ -1606,7 +1690,7 @@ begin | ||
1606 | 1690 | end; |
1607 | 1691 | for i:=0 to cnt-1 do |
1608 | 1692 | cols[X+i].clear(); |
1609 | - Result:=0; | |
1693 | + Result:=X+cnt-1; | |
1610 | 1694 | end; |
1611 | 1695 | |
1612 | 1696 | function TGrid.RowDelete(Y,cnt:Integer):Integer; |
@@ -1628,6 +1712,7 @@ begin | ||
1628 | 1712 | end; |
1629 | 1713 | RowClear(w,cnt); |
1630 | 1714 | RowCount:=w; |
1715 | + Result:=RowCount-1; | |
1631 | 1716 | end; |
1632 | 1717 | |
1633 | 1718 | function TGrid.RowInsert(Y,cnt:Integer):Integer; |
@@ -1648,7 +1733,7 @@ begin | ||
1648 | 1733 | end; |
1649 | 1734 | for i:=0 to cnt-1 do |
1650 | 1735 | Rows[Y+i].clear(); |
1651 | - Result:=0; | |
1736 | + Result:=Y+cnt-1; | |
1652 | 1737 | end; |
1653 | 1738 | |
1654 | 1739 | function TGrid.RowClear(Y,cnt:Integer):Integer; |
@@ -1661,7 +1746,7 @@ begin | ||
1661 | 1746 | Y:=RowCount; |
1662 | 1747 | for i:=0 to cnt-1 do |
1663 | 1748 | Rows[Y+i].clear(); |
1664 | - Result:=0 | |
1749 | + Result:=Y+cnt-1; | |
1665 | 1750 | end; |
1666 | 1751 | |
1667 | 1752 | function TStringDynArrayHelper.add(s:string):Integer; |