- 1 名前:デフォルトの名無しさん [2009/02/22(日) 22:10:29 ]
- Delphi(デルファイ)について、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を 勇気を持って書き込むスレッドです。 Delphi使いが優しくコメントを返しますが お礼はDelphiの布教と初心者の救済をお願いします。 <前スレ> くだすれDelphi(超初心者用)その48 pc11.2ch.net/test/read.cgi/tech/1225641040/ <過去スレ> DelWiki避難所(Delphi 関連の過去スレッド) delwiki.info/?%E3%83%AA%E3%83%B3%E3%82%AF%2F%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%2FDelphi%20%E9%96%A2%E9%80%A3%E3%81%AE%E9%81%8E%E5%8E%BB%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89
- 291 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 22:17:41 ]
- 俺はVBやC#の例を見ながら作ったぞ。
- 292 名前:デフォルトの名無しさん [2009/04/19(日) 22:43:14 ]
- おまいIndyスレに書き込んだヤツか。
失敗している原因をちゃんと調べないとダメだぞ。
- 293 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 22:54:42 ]
- そもそも、ネットのログインってのが抽象的でよくわからない
- 294 名前:デフォルトの名無しさん mailto:SAGE [2009/04/19(日) 22:56:11 ]
- >>292
>おまいIndyスレに書き込んだヤツか。 >失敗している原因をちゃんと調べないとダメだぞ。 残念ながら違う。 自動ログイン DELPHIでググったんだけど、いまいちピンと来なかったんだ。
- 295 名前:デフォルトの名無しさん mailto:sage [2009/04/19(日) 23:04:21 ]
- IEコンポ使う方法とIndyでやる方法じゃあ、全然違うからな。
- 296 名前:290 mailto:sage [2009/04/19(日) 23:43:40 ]
- >>291,295
レストンです。 ログインして、ブラウザに表示されるページの中からキーワードを 拾い出したいんですが、出来ればブラウザを起動させずに出来ないかなと 思い調べてました。
- 297 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 01:27:25 ]
- で、何を使ってどんな風にどこまで作って何が不満だったかくらい言おうよ。
- 298 名前:デフォルトの名無しさん mailto:SAGE [2009/04/20(月) 09:27:21 ]
- 質問の内容が悪くてすみません。
テンパってて。 ブラウザを起動させなくてもURL直接送ってページに表示されるHTML の内容を取得して、目的のキーワードを取得は出来るんですが、 最初にログインが必要な場合にどうすればいい買って事なんです。
- 299 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 10:10:50 ]
- >>298
何言ってるかいまいちだがログインすればいいだけじゃないのか?
- 300 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 10:15:26 ]
- >>290の時点で何を聞きたがってるのか分からない奴ってアホだろw
- 301 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 10:19:16 ]
- >>300
じゃあお前が教えてやれ よかったな>>290 今から>>300が教えてくれるぞ
- 302 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 10:44:10 ]
- >>300
お前は黙ってろ
- 303 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 12:18:00 ]
- >>298
「indy コンポーネント BASIC認証」でググレ 「自動ログイン DELPHI」は酷すぎるwww
- 304 名前:290 mailto:sage [2009/04/20(月) 13:01:56 ]
- >>303
今からググって見ます。 アリガトン
- 305 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 13:34:58 ]
- BASIC認証のサイトなんてもう少ねえよな。
まあどんな認証方法のサイトなのかは知らんけど。
- 306 名前:290 mailto:sage [2009/04/20(月) 13:57:00 ]
- 認証に種類があるんですか。
そんなことも知らなかった。 おとなしく、ブラウザを表示させて 自動入力みたいにしたほうが初心者には 簡単ですね。多分。
- 307 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 20:21:09 ]
- まずDelphiの前にHTTP勉強しろ
- 308 名前:290 mailto:sage [2009/04/21(火) 01:06:15 ]
- ごもっともです。
- 309 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 02:19:31 ]
- マジレスすると>>305の言うようにBASIC認証じゃなさそうだし、
たぶんmixiみたいなIDとパス入れてログインするようなサイトなんだろうけど、 ログインしてすぐのページさえ取れればいいのならIndyでGetの代わりにPost使えば大概簡単に取れる ただしSSLが必要だったりページの遷移があったりすると色々と面倒なんで、 IEコンポを貼り付けて見えないサイズにして(単純にVisible:=Falseだと動かない場合があった気がする)、 あとはNavigate辺りでJavaScript呼ぶかレイトバインドで直接タグ操作してやれば確実 こっちの方が資料も豊富だろうし
- 310 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 10:31:20 ]
- 認証時に何をPOSTしてるのか調べて、同じようにPOSTするプログラムを書けばよろしい。
- 311 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 14:26:05 ]
- フォーム認証だとログインしたあとにセッションかクッキーでログイン状態を管理すると思うけど、
そのあたりindyだとどうやるんだろね 単にページを巡回したいなら、スクリプトでコントロールをクリックしたり ページ遷移できるブラウザがあったと思うんだけど、 それを使えば便利だが、趣旨とは異なるかな?
- 312 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 14:58:04 ]
- サブフォームをモーダルで開いた時にメインフォーム上の処理を行いたいんだが
OnDeactivateに書いても動作せず。試しにこんな感じで。 procedure TForm1.FormDeactivate(Sender: TObject); begin form1.Color := clwhite; end; どうすればいいんでしょ?
- 313 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 15:07:33 ]
- Form2.ShowModal;
したらフォーム閉じるまで制御が戻ってこないんだからどうにもならない。 Form2側からuses Unit1;して Form2Showかなんかで Form1.Color := clWhite してみたら
- 314 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 16:27:49 ]
- Halbowさんと俺とゲームボーイの誕生日が今日らしい
誰か祝ってやれ
- 315 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 16:43:05 ]
- tmpフォルダにzipから解凍してきたファイルを置いて、読み込み、処理が終わったらtmpフォルダを空にしたいと思ってます。
現状 tmp -test -A.txt という様なフォルダ構成で、A.txtを読み込んだ状態です。 そこで、testフォルダを削除しようとすると「プログラムが使用してます」といった旨のエラーダイアログが出て削除する事が出来ません。 A.txtを読み込んだだけでtestフォルダにロックがかかってしまうのでしょうか。 また、そのロックを解除する術はあるのでしょうか。 A.txtの読み込みにはLoadFromFileを使ってます。 また、A.txtの検索にFindFirstを使ってます。 上記2つのどちらかが、フォルダのロックの原因でしょうか。 フォルダの削除はエクスプローラ上からも出来ませんでした。 A.txtはエクスプローラ上から削除可能でした。 何方かご教示お願い致しますm(_ _)m
- 316 名前:315 mailto:sage [2009/04/21(火) 16:46:04 ]
- 追記:
フォルダの削除にはSHFileOperationを使ってます。 フォルダをファイルが入った状態で削除するにはコレが良いとGoogle先生に聞いたので。
- 317 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 20:15:55 ]
- >>314
Halbowさんおめでとうございます
- 318 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 20:19:33 ]
- >>315
フォルダをつかんでる(ロックしてる)んではなくて、そのフォルダで作業してる (カレントフォルダになってる)だけだと思う 処理が終わったら SetCurrentDir(ExtractFileDir(Application.ExeName)); して味噌
- 319 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 21:04:06 ]
- >>315
それオレもハマった。FindFirstが原因だと思うよ。FindFirstが終わったら FindClose(SearchRec)とかやってクローズする必要があると思う。
- 320 名前:デフォルトの名無しさん mailto:sage [2009/04/21(火) 21:06:24 ]
- 削除前にきっちりFindCloseを呼ぶ。
カレントディレクトリってコマンドプロンプト以外でもロックしちゃうんだっけ?だったら戻した方がいいかも。
- 321 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 00:56:17 ]
- 昨日Turbo Delphi Explorerを入れてみたです。
正規表現使えないかなーとBRegExpとそのUnitを入れてみたんですが 試しに簡単なの動かそうとしたらエラー出ました。 BabaさんのBREGEXPとosamuさんのUnitとを解凍してできるファイルを とりあえず*.hと*.hlp以外全部delphiのLibフォルダに突っ込んであります。 エラーはこんなかんじ [Pascal エラー] BRegExp.pas(226): E2064 代入できない左辺値です [Pascal エラー] BRegExp.pas(227): E2250 指定された引数で呼び出すことのできるオーバーロード関数 'UniqueString' が定義されていません [Pascal 致命的エラー] Project6.dpr(6): F2063 'BRegExp.pas' ユニットはコンパイルできませんでした コードはこんなかんじ program Project6; {$APPTYPE CONSOLE} uses SysUtils,BRegExp; var Str: String; begin Str := 'うんこ:ちんこ:まんこ'; brx.Match('m/;(+);/',Str); Writeln(brx[1]); end. うまく動かせてる人アドバイス求ム
- 322 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 18:20:05 ]
- 使ってないけど落としてソース覗いてみた(出来ればurl書いて欲しかった)
const TextBuffer: string='';の定数が 問題なんじゃね? {$J+}オプション入れるか、constを vart TextBuffer: string; に変えて functionの最初に TextBuffer:=''; 入れておけばいんで内科医? ちなみに俺は「TRegExpr」 ttp://delwiki.info/?%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%2FTRegExpr
- 323 名前:315 mailto:sage [2009/04/22(水) 19:07:58 ]
- >>318-320
ありがとうございます。対応入れてみました。 結果、複数フォルダがある場合に、最後の一つだけは削除できるようになりました。 まだ何処かでロックしてるみたいですorz
- 324 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 21:37:56 ]
- >323
原因は間違いなくFindCloseのし忘れ。FindFirstした分必ずFindCloseすること。 おそらく今は最後の一回分しかFindCloseしてないんじゃないか?
- 325 名前:デフォルトの名無しさん mailto:sage [2009/04/22(水) 23:25:56 ]
- Delphiのグラフ書くコンポーネントって
2本の折れ線グラフが交差した座標を検出とか そんな機能あるわけないよね?
- 326 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 00:26:40 ]
- あるわけがない。
ポイントの座標くらいなら自分で取得できそうだし、 交点くらいちょびっと計算して出せよ。
- 327 名前:321 mailto:sage [2009/04/23(木) 02:10:16 ]
- >>322
レスありがd constに代入してるのはPascal初心者には奇怪だったんですが やっぱりDelphiな人にも奇怪だったのね。 const取ってvar内に宣言したり、言われて{J+}オプション(理解できてない) 入れたりしたらビルドは通ったんですが、別な例外で動かないですわ。 まだまだ手に負えそうにないんで、おいらもTRegExprにしてみる。
- 328 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 03:06:48 ]
- constへの代入が何故使われてるかというと、あれはDelphiでスタティック変数もどきを使用するテクニックなんで、
動作するには前回の値が保存されてる必要があるから、単純にvarにするだけじゃ動かない 実体はスコープが関数内に限定されたグローバル変数だから、宣言をfunctionの外に移動させてやればおk ただ$Jスイッチは局所的に有効になるから、ユニットの先頭にでも{$J+}と書くのが一番確実かな
- 329 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 04:57:55 ]
- >>327
古いDelphiではConstは常に書き込み可能だったのだ var TextBuffer: string=''; function TBRegExp.Subst() begin end; と外に出してグローバル変数にすればおk 今時{J+}は使わなくて良いでしょ あと、肝心の正規表現間違ってるよ エラーはそのせいかと Str := 'うんこ;ちんこ;まんこ'; brx.Match('m/;(.+);/',Str); Writeln(brx[1]);
- 330 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 05:09:19 ]
- というか、DLLで良いのなら鬼車の方が良いかな
homepage2.nifty.com/Km/onig.htm (DLLのLinkがonig.zip になってるけどonig.lzhが正解) www.geocities.jp/jview2000/oniguruma.html
- 331 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 11:53:16 ]
- クラス化してくれ…
- 332 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 19:29:51 ]
- >>328
322だが、もちろんその使い方で私も使ってます ただ、くだんのBRegExp.pasでは単に初期化するだけに使っていることを 確認してのレスでした
- 333 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 22:35:40 ]
- エクセルのブックをDelphiで作成したいのですが、
Excel := CreateOleObject('Excel.Application'); てやるとエクセルが起動しちゃうんですよね? 起動させずにブックを作ることって出来ませんか?
- 334 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 22:49:55 ]
- 不可能
でも表示をオフにすれば起動されたことはわからんけど。
- 335 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 22:59:47 ]
- 鬼車をLoadLibraryなどの実行時動的リンクではなく、
ロード時動的リンクしようとすると、Delphiが変数のインポートをサポートしてないから 面倒なんだよな。Delphiってうんこだよな。
- 336 名前:デフォルトの名無しさん mailto:sage [2009/04/23(木) 22:59:49 ]
- レストンです。
そうですか。 シートに書き込むデータがアドインソフトに関するもので書き込んだ瞬間 「外部データにアクセスできない。アドインを実行するか?」 見たいなメッセージが出てきてしまします。 エクセルの特定のアドインを一時的にとめることって出来ますか? エクセルのヘルプに見ても登録と削除しか出てこないようなので。
- 337 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 00:50:22 ]
- >>333
勿論できるぞ。種になるブックをどこかに作っておき、 それをコピーするんだ。実行自体にはExcelすら要らん。
- 338 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 01:05:32 ]
- >>336
削除と登録ができるのに、一時的に止められないってこたないだろ。 削除して、また登録すればいいんだから。 それはさておき、 Excel.AddIns['アドイン名'].Installed := false; Excel.AddIns['アドイン名'].Installed := true; あたりで出来ないか?
- 339 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 05:57:23 ]
- >>333
使ったことはないけど wiki.lazarus.freepascal.org/FPSpreadsheet
- 340 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 08:05:52 ]
- >>337,338,339
ありがとうございます。 >>337 >勿論できるぞ。種になるブックをどこかに作っておき、 このレス見たとき、昔こういうやりか足してた先輩がいたの思い出した。 今は会社辞めちゃったけど。 >>338 >Excel.AddIns['アドイン名'].Installed := false; >Excel.AddIns['アドイン名'].Installed := true; 作ったら人に渡すので削除とかは実際したくないってのがありました。 こういうのがあるんですね。 ヘルプを見てみます。 >>339 これコンポーネントですよね。 よさそうなんですが、ダウンロードするところがよくわからなかった。orz
- 341 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 10:51:59 ]
- ポインタについてなんですけど、
ある手続きで参照先のデータを解放した後に、 別の手続きでその場所にデータがあるかどうか調べるって事は出来るんでしょうか?
- 342 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 12:18:31 ]
- 出来ない。
メモリの内容見てそれがオブジェクトなのか、生きているのか死んでいるのかを厳密に判別する術はない。 procedure foo(var a: TObject); begin FreeAndNil(a); end; とかやって参照自体を潰して参照がnilかどうかで判断するのが定石だな。
- 343 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 20:06:14 ]
- メモリマネージャを差し替えればそれっぽいことができなくもないけど、激しくオススメしない
- 344 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 20:58:07 ]
- どんな手使っても、アプリケーションが全てと思うけどな。
やな手使って欲しくないけど…
- 345 名前:デフォルトの名無しさん [2009/04/24(金) 21:19:38 ]
- よーわからんけど
ポインタが有効かどうかって Assignedすればエエだけなんじゃねえの? 外していたらメンゴ
- 346 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 21:23:40 ]
- Assignedはnilチェックだよ
- 347 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 03:27:42 ]
- EAccessViolationで囲むとか
動いたり動かなかったりだろうからオヌヌメしない
- 348 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 18:54:06 ]
- >>341はたぶん一つのオブジェクトに複数の参照があってその管理で困ってると思うんだけど、
そういう場合は参照カウンタで管理すべきじゃないかと思う。別解としては、参照をさらに参照する。 type PObject = ^TObject; var p1: PObject; p2: PObject; p1^ := TObject.Create; p2 := p1; この状況下で、 p1^.Free; p1^ := nil; この時点で当たり前のこととしてp2^もnilになるから、p2を見る手続きからも実体が解放された事は分かる。 ただ、こういうのは小手先の話で、あまりそういう事をしなくてもいいのがよい設計だと思う。
- 349 名前:デフォルトの名無しさん [2009/04/25(土) 19:52:20 ]
- Delphi2009で、文字が半角か全角かを判断する方法が分からず困ってます。
これまでDelphi6でByteType関数を使ってたんだけど、挙動が変わってしまって・・・
- 350 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 20:18:50 ]
- leadbytesとかは使えないの?
- 351 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 21:11:09 ]
- WideStringなら
単純に文字コードを見ればわかるけど。 1バイトなら半角だし、2バイトなら半角カナかをチェックする
- 352 名前:デフォルトの名無しさん mailto:sage [2009/04/25(土) 21:25:34 ]
- unicodeの事いってるんなら1バイトで全角幅もあるぞ
- 353 名前:348 mailto:sage [2009/04/26(日) 05:15:41 ]
- そういや>>348でp1^のメモリを確保してないや。
最初にNew(p1);、最終的に完全にいらなくなったらDispose(p1);が必要だった。
- 354 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 08:38:57 ]
- >>349
シフトジスに変換した後にチェックすればいいじゃん。 ウンコードを呪え。
- 355 名前:DEKO [2009/04/26(日) 10:53:28 ]
- >>349
MECSUtils の MecsIsFullWidth() を使うといいと思います。 ttp://homepage1.nifty.com/ht_deko/tech021.html#MecsIsFullWidth
- 356 名前:デフォルトの名無しさん [2009/04/26(日) 11:26:42 ]
- みなさんありがとう。
一度Ansiに変換して判定することにしました。 function IsHankaku(c: char): boolean; begin result := ( ByteType(AnsiChar(c), 1) = mbSingleByte ); end; Delphi2009で文字を扱うときって、サロゲートとかエレメントとかコードポイントとかバイトとか、ややこしいですね(>_<)
- 357 名前:デフォルトの名無しさん [2009/04/26(日) 11:43:42 ]
- 訂正:
function IsHankaku(c: char): boolean; begin result := ( ByteType(AnsiString(c), 1) = mbSingleByte ); end;
- 358 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 11:45:47 ]
- Cみたいな言語から移ってきたとみた
- 359 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 11:47:11 ]
- >>356
それがユニコード糞、っていわれるゆえんだよ
- 360 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 16:03:07 ]
- >elphi2009で文字を扱うときって、サロゲートとかエレメントとかコードポイントとかバイトとか、ややこしいですね(>_<)
煽っている人がいるだけで、大した問題はないよ。
- 361 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 16:31:00 ]
- 言語レベルで隠蔽されてしかるべき情報を考慮してコーディングしないといけないのは問題ではないの?
- 362 名前:デフォルトの名無しさん mailto:sage [2009/04/26(日) 20:03:45 ]
- ウンコードが半角全角の区別がメンドイという致命的な欠点を持っているのは確か
- 363 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 02:24:25 ]
- win2000で2009使ってる人います?
デバッグの停止ボタン押した後再開出来なくないですか?
- 364 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 15:19:23 ]
- >>361
.NET も UTF-16 で全言語で同じていたらくだけど何を使えばいいの?
- 365 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 18:38:55 ]
- .NETがどうかは別に関係なくね?
Delphiの設計方針から言えば、隠蔽されててもおかしくない気はする 最近の開発にそこまで求める方が酷なのかもしらんが
- 366 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 08:52:33 ]
- TEditのOnChangeイベントでTEdit.Textを取り出すとき
IMEを起動して日本語入力してると変換した最初の文字だけが TEdit.Textに入ってきたりしない? コーディングが悪いのかなあ…。 Turbo Delphi Explorerにて。
- 367 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 11:08:27 ]
- >>366
Caption:=Edit1.Text; これで最初の文字しか取得できてないってこと?
- 368 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 13:05:57 ]
- そもそも、文字に幅があると思ってる考え方が間違ってるので、正すのはおまえらの思考。
幅をもってるのはあくまでグリフって誰かいってなかったっけ?
- 369 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 14:20:46 ]
- >>367
Captionじゃないけどそんなかんじです。 FirefoxやiTunesみたいなインクリメンタルな検索を実装してるのだけど たとえば「饅頭」と打ったときTEdit.Onchange内では「饅」しか入っていないので 打った「頭」を検索クエリに入れられず困ってるという話。 (ここまで書くと丸投げっぽいな…)
- 370 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 14:28:08 ]
- >>369
頭が入力された時にもう一度OnChangeイベントが発生してるだろ。
- 371 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 14:33:20 ]
- >>369
自分のはTurboじゃなくてDEL7なんだけど、 単純なコード書いて試した? OnChangeにCaption:=Edit1.Textて書いて実行すると、確定するたびに 「まんじゅう」と入れて「まん」だけ確定すると「饅」表示、次に「じゅう」を 確定すると「饅頭」がちゃんと表示されるけど。
- 372 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 14:34:23 ]
- >>371
X OnChangeにCaption:=Edit1.Textて書いて実行すると、確定するたびに 「まんじゅう」と入れて「まん」だけ確定すると「饅」表示、次に「じゅう」を ○ OnChangeにCaption:=Edit1.Textて書いて実行すると、「まんじゅう」と 入れて「まん」だけ確定すると「饅」表示、次に「じゅう」を
- 373 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 15:00:33 ]
- >>369
変換を伴うインクリメンタルサーチやるときは、IMEのメッセージ捕まえた方が色々とやりやすい
- 374 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 15:33:14 ]
- コンソールアプリで出力に色つけるのってどうやるの?
無理やりドライバ入れてエスケープシーケンスでじゃなく正式なやり方で。
- 375 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 15:58:47 ]
- >>374
コンソールAPIを使う。 これをラップしてTurbo Pascalを模したcrt32っていうユニットが www.kobira.co.jp/sakura/d_Con_Cgi.htm にあるから こういうのを使うと簡単。
- 376 名前:デフォルトの名無しさん mailto:sage [2009/04/28(火) 21:14:17 ]
- >>368
学者の詭弁乙
- 377 名前:369 mailto:sage [2009/04/28(火) 23:52:39 ]
- いろいろレスどもです。
確かにCaption変えるだけだと問題ないっすね。 イイワケにならんけど入れてまだ一週間くらいなんで ヘンな記述してる可能性も捨て切れません。 OnChangeのたびにSQLiteぶん回すのがキツイのか 単純な記述ミスがあるのか、もう一度じっくり眺めてみて どうしようもなかったらIMEのメッセージ(ってのも初めて見る世界) の線でぐぐってみます。
- 378 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 05:14:54 ]
- IEやFireFoxから画像をドラッグ&ドロップされたのを受け取るには、どうしたらいいもんでしょうか・・。
- 379 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 07:33:26 ]
- OLEを使う
どっかにそういうコンポがあったからそれ使うと簡単にできると思う
- 380 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 21:04:08 ]
- procedure ahya;
begin ahya; end;
- 381 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 22:06:42 ]
- stack overflow
- 382 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 08:39:33 ]
- >>377
> OnChangeのたびにSQLiteぶん回すのがキツイのか
- 383 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 13:01:08 ]
- Cのsystem()関数ってないの
- 384 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 16:04:09 ]
- つWinExec
- 385 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 10:30:37 ]
- VirtualListViewに256x256のサムネイル画像を並べているのですが、StretchBlt
で 縦横比を変えずに縮小するために JpegをTPictureで読み込んでBMP.Assignするときに凄く時間がかかってしまいます 最初は中村氏のBitmapUtils.Stretchを使ってからStretchBltしていましたからもっと時間がかかっていました TVirtualExplorerEasyListviewなどはエクスプローラ並みのスピードで表示されるので方法次第だと思うのですが ソースがないので手法が分かりません どの方向で考えたらいいでしょうか?御指南ください
- 386 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 13:43:04 ]
- >>385
TJpegImageのScale使うか、 写真ならExifのサムネイルを読み込むか。
- 387 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 14:21:28 ]
- ありがとうございまし、そんなのもあるのですね
D2009のJpeg,GIFImg,pngimageを使っているので型によって縮小方法を変えるんですね ググったら ttp://jane.s89.xrea.com/test/read.cgi/kakolog/1119916964/170-188 がでました。サンプルソ−スも生きていて落とせましたので読んでみます でも、usesするだけでTImageとかでpngとか読めるんだから(これが凄いけど) TImageListとTListViewも対応してくれるのが一番嬉しいんですよね
- 388 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 14:23:12 ]
- ソースだと思ったらJane本体だったorz
これだけがヒントですね 188 :Jane使いの名無しさん:05/07/27 00:00:41 ID:6kBZoROZ >>174 ・TJpegImage.Scale //←基本的にこれ ・TbitmapはDIBにする ・Jpeg.pasとiijのライブラリ改造 TApiBitmapとTBitmapで検索して掛かったとこちょっと 変えてみただけ
- 389 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 18:24:11 ]
- つGDI+
- 390 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 14:22:24 ]
- >>385
ちなみにサムネイル生成処理はちゃんと別スレッドでやってる? 画像ファイルが1000超えるような場合のエクスプローラの挙動見れば分かるけど、 非同期でやらないとどれだけ高速化しても厳しいと思うよ
- 391 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 19:20:06 ]
- そうですね、10個表示されてたらいくつも平行してサムネイルが描画されていってますものね
私もスレッドはやってみようとしかけたのですが、結局ImageListに登録する所あたりで挫けてしまいました スレッドCreateでFileName、サムネイルの大きさを渡してBitMapを返してもらうのか(どうやって?) スレッドの中でImageListにAddするのか ListView.OnDataHintとスレッドがどんなお付き合いにしたらいいのかが分からないのです あ、ちなみに>>389さんのGDI+は試したらずいぶんと速くなりました
|

|