くだすれDelphi(超初心者用)その42

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2007/08/02(木) 08:32:44
>>945が一体何がわからなかったのかがわからないが
まとめると
・質問に対する直接の答えは>>932
・ただし、Delphiでは素直にfoo := TFoo.Create; try finally foo.Free; end;するのが一般的。
953デフォルトの名無しさん:2007/08/02(木) 14:19:55
たしかに「何がわからなかったのかがわからない」ね。
ガベージコレクトが本質そうじゃないし。
954デフォルトの名無しさん:2007/08/02(木) 15:17:56
読解力ねぇな・・
955デフォルトの名無しさん:2007/08/02(木) 16:30:52
>>953
この質問からガベコレ抽出するようなレベルじゃ理解できなくて当然
956デフォルトの名無しさん:2007/08/02(木) 17:11:00
http://code.nanigac.com/

こういうのが活性化するとgoogleとか2chとかいらんくなるなぁ。
まぁ今のところdelphiのコードは一件も無いわけだが、今後に期待。
957デフォルトの名無しさん:2007/08/02(木) 17:22:15
http://www.codeproject.com/
で十分じゃね?
958デフォルトの名無しさん:2007/08/02(木) 18:39:31
Del7なんだけど、ダイアグラムってどう使うんですか?
便利な使い方ってある?
959デフォルトの名無しさん:2007/08/02(木) 19:13:48
>>958
ない
自己満足
960A型:2007/08/02(木) 19:38:37
つか、この統計意味わからん。
何でA型が一番なわけ?
科学的解釈0。
それ以前にそんなスイッチ自体、世界に数個だろ。
何が押す可能性が21.3%だよ。

世界が滅ぶかもしれねーつのに、押すわきゃねーつーの!!
961デフォルトの名無しさん:2007/08/02(木) 19:50:10
ボタンを押したくない場合、押されたくない場合は
Enableプロパティをfalseにすればグレーアウトされ
ボタンを押せなくなります。
962デフォルトの名無しさん:2007/08/02(木) 21:44:58
>>948
IDE変わったのはD8以降じゃね
963O型:2007/08/02(木) 23:54:11
むしろ血液型占いを幼少時から散々聞かされて
それに合わせた性格になってたりしてなw

俺20歳すぎるまでず〜とA型と思ってたら実はO型だった。
周りからはほぼ100%で「A型でしょ?」って言われます。
964Delフサギコ ◆A6VzDeLphI :2007/08/03(金) 00:11:00
           _________
   ∧,,∧   / 
  ミ,,゚Д゚彡 <  【ゞ】はひらがななのねん。
   ミつ旦(ミ~~ \ 
 @ミ   ミ     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪

>>947さん
http://delfusa.main.jp/delfusafloor/opensource/delfusalibrary/20070708185145/StringUnit/StringUnitLight.pas
CheckWideCharInTable(一文字, zenHiraTbl)
と、指定して一文字づつループして調べる。
戻り値がTrueなら取り出し。

965Delフサギコ ◆A6VzDeLphI :2007/08/03(金) 00:36:29
   |\       ∧,,∧   AB型です
   /\>''",《"《"《ミ,,゚Д゚彡
   ̄ ̄ゝ..,《'_.《_.,(ノ/⌒i)
     ゛;,;:;::::;;:;:;:,;,,;,;;.,,:,,:ノ
            U"U
966デフォルトの名無しさん:2007/08/03(金) 00:46:16
>>955
荒れそうだからやめよかと思ったけど
どうしても知りたいので、お願いだから
正解教えてくれ。
多分、なんだかんだ言ってはぐらかしそう
だけどな。
967デフォルトの名無しさん:2007/08/03(金) 00:55:47
>>964
すごい…1文字判定するためにそんな処理をするというのか。
獅子は兎を狩るのにも全力を尽くすってやつか。
968ミ,,゚Д゚彡 ◆A6VzDeLphI :2007/08/03(金) 01:23:03
>その文字がひらがなだったら取り出したい。

というのが、
・カタカナだったら排除したい
・"あかさたなはまやらわん"だったら取り出したい
という仕様変更にも容易に対応とれる形でコーディングしておくことを
考えると、便利だと思いますよ。
969デフォルトの名無しさん:2007/08/03(金) 03:45:15
>>>947
>if (WStr[i]>='ぁ') and (WStr[i]<='ゞ') then

ん?
これでほんとにできた??
970デフォルトの名無しさん:2007/08/03(金) 03:56:24
>>964
そのライブラリがusesしてるXPtestってなんやねん?自作?
俺のDelにはないぞ。
971デフォルトの名無しさん:2007/08/03(金) 06:11:24
はは
972デフォルトの名無しさん:2007/08/03(金) 06:13:35
というか、テストコードど本体まぜるなよってフサにいいたい。
973デフォルトの名無しさん:2007/08/03(金) 08:37:50
>>969 これでいいみたい。
if (WStr[i]>=WideString('ぁ')) and (WStr[i]<=WideString('ゞ')) then
974デフォルトの名無しさん:2007/08/03(金) 09:23:07
WideChar('あ')でいいんじゃまいか
975デフォルトの名無しさん:2007/08/03(金) 10:02:03
listviewの習作としてフォルダ内のファイルの
ファイル名、サイズ、更新日時の一覧を取得するプログラムを作ったのですが、
エクスプローラやその他の同等の機能を持つものと比べてかなり遅いようなのですが、
これを早くするにはどうしたらいいでしょうか。
ちなみにソートは全項目追加後にstNoneからstTextに変えています。
処理時間を計るために各所でタイムスタンプを出しているのですが
ソートはほぼ無視できる時間なのに対して、FindFirst〜FindNextの部分で
大半の時間を占めています。

  FindFirst(dir, faAnyFile, sr);

  ListView1.SortType := stNone;
  ListView1.Items.BeginUpdate;

  repeat
    if (sr.Attr and faDirectory) <> 0 then
    begin
      continue;
    end;

    listItem := ListView1.Items.Add;
    listItem.Caption := sr.Name;
    listItem.SubItems.Add( IntToStr(sr.size) );
    dateTime := FileDateToDateTime(sr.Time);
    dateStr := DateTimeToStr(dateTime);
    listItem.SubItems.Add( dateStr);

  until FindNext(sr) <> 0;

  FindClose(sr);
  ListView1.Items.EndUpdate;
976デフォルトの名無しさん:2007/08/03(金) 10:26:49
  ListView1.SortType := stNone;
  ListView1.Items.BeginUpdate;
これをFindFirstの上にもってく。

あとは、時間掛かる処理を描画するときにやるとか。
977デフォルトの名無しさん:2007/08/03(金) 10:42:26
listview1.owndata := Trueにして仮想リストビューを使う。
データの保持をlistview自身にやらせる通常のやり方は劇遅いよ。
978デフォルトの名無しさん:2007/08/03(金) 10:45:38
>>947です。

>>964さん
>>973さん
>>974さん

どうもありがとう
979デフォルトの名無しさん:2007/08/03(金) 11:54:45
>>976
>>977
ありがとうございます。
実測で1/10時間程度になりました。
ありがとうございました。
980デフォルトの名無しさん:2007/08/03(金) 12:19:49
次スレ

くだすれDelphi(超初心者用)その43
http://pc11.2ch.net/test/read.cgi/tech/1186111080/
981ななしへたぐらま ◆XcB18Bks.Y :2007/08/03(金) 16:01:16
>>964
Unicodeでは現在,$03040台から$3090台までをひらがなに割り当てているようで
$03041(ぁ)から$03094(ゔ)と$0309B(゛)から$0309E(ゞ)までが実際に定義されているみたいなので
わざわざひらがなテーブルを作る必要はありません.

この2つの範囲のいずれかに収まるかどうかという条件式は以下のようになると思いますが

 if (WStr[i]>='ぁ') and (WStr[i]<='ゔ') or (WStr[i]>='゛') and (WStr[i]<='ゞ') then

実際にはDelphi 6などだと 'ゔ' みたいなShift-JISでは表現できない文字列は記述できないので
実際のコードはもっと複雑になると思います.
一方で未使用部分を除外しなくても実害はないと思われますので
>>949で問題ないと思います(シンプルでわかりやすいですし).

>>980
お疲れさまでした.
982デフォルトの名無しさん:2007/08/03(金) 18:00:15
>>981
if (WStr[i]>=WideString(#$3041))...と書けばいいのでは?
983デフォルトの名無しさん:2007/08/03(金) 23:27:55
質問です。

ネットワークコンピュータにある指定されたファイルが存在するか確認するにはどうしたら良いですか?
今までFileExistsを使っていたのですが、正しく帰ってきませんでした。
D5EntSP2を使っています。
984デフォルトの名無しさん:2007/08/03(金) 23:56:15
WNetOpenEnum
985デフォルトの名無しさん:2007/08/04(土) 09:25:07
Win32APIの日本語ヘルプの最新版はどこかでダウンロードできますか?
986デフォルトの名無しさん:2007/08/04(土) 14:13:11
987デフォルトの名無しさん:2007/08/04(土) 15:38:01
THX!
ちなみになんていうファイル名ですかね。
API32WH.HLPは無かったのですが。
988デフォルトの名無しさん:2007/08/04(土) 18:24:01
.hlp形式はもう時代遅れなんで最新のAPIリファレンスには対応していないから
外部ツールでヘルプ呼び出すツール作るしかない。
989デフォルトの名無しさん:2007/08/04(土) 22:59:05
D6Personalですが、
ビット単位でファイル入出力するにはどうしたらいいでしょうか。
フォーマットの決まっているバイナリファイルを解析または書き出す
プログラムを作ろうとしているのですが、ファイルフォーマット内のフィールドが
バイト単位になっていないためバイト単位の入出力だと多少不都合があります。

1バイトに満たない端数の部分を考慮しつつバイト単位で読み書きすることは
できると思うのですが、これより簡単な方法は無いでしょうか。
990AB型:2007/08/04(土) 23:12:47
ないです。
991デフォルトの名無しさん:2007/08/04(土) 23:54:14
ありがとうございます。
シコシコ作ります。
992デフォルトの名無しさん:2007/08/05(日) 15:15:04
配列をSetLengthで小さくする時は配列の中身はクリアした方がいいんですか?
993デフォルトの名無しさん:2007/08/05(日) 16:45:37
普通の組み込み型の配列であれば不要。当然だけどクラス型の配列(実体はポインタの配列)だったりした
場合は必要に応じて指しているインスタンスを解放する必要がある(かもしれない)。
994デフォルトの名無しさん:2007/08/05(日) 23:15:45
組み込み型の配列ってなんだ?VCLで宣言済みの動的配列ってことか?
995デフォルトの名無しさん:2007/08/05(日) 23:34:04
IntegerやWORD、あるいはStringのような型のこと。
996デフォルトの名無しさん:2007/08/06(月) 00:11:31
そんな脳内用語使われても知らんがな
997デフォルトの名無しさん:2007/08/06(月) 00:18:13
ヘルプくらい嫁よ
998デフォルトの名無しさん:2007/08/06(月) 01:43:56
あ〜プリミティブ型の動的配列ってことか。
ヘルプに書いてあるのか?
999デフォルトの名無しさん:2007/08/06(月) 03:05:36
uPnPを使ってuPnP対応のルータにポートを開閉を要求するにはどうしたらよいのでしょうか?
indyで何かよいサンプルがあればよいのですが、見つける事ができません・・・。
1000デフォルトの名無しさん:2007/08/06(月) 03:28:30
1000ならみんなしあわせ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。