■スレッドリストへ戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 最新50
monazilla
- 301 :238 :2001/02/19(月) 09:54
 - >書記さん 
 http://green.jbbs.net/computer/479/monazilla.html 
 このページの管理パスを渡します
 
- 302 :turbo type D@monazilla :2001/02/19(月) 12:18
 - ログデータを 
 カレント以下 
 \logData\サーバー名\板名(英語).txt 
 で管理しようと思っているんだけど 
  
 問題ないかな? 
  
 subject.txtの仕様はすげ、助かる。
 
- 303 :turbo type D@monazilla :2001/02/19(月) 12:22
 - フッサール少佐の方は 
 タブ切り替えでお気に入りとスレ一覧を変更予定なんですね。 
  
 その方がいいかな?
 
- 304 :turbo type D@monazilla :2001/02/19(月) 12:32
 - ところで、Delphi持っていない人向け 
 &コンポーネントのインストなど面倒な事したくない人の為に 
  
 exeファイルを誰か配布してやってほしい。 
 UPXかますといい感じ。
 
- 305 :turbo type D@monazilla :2001/02/19(月) 13:29
 - エクスプローラのListViewで 
 項目の並び替えなどがDrag&Dropで出来るが 
 あれを実装するのは簡単なのでしょうか?
 
- 306 :turbo type D@monazilla :2001/02/19(月) 13:41
 - いまさらだが>>28 
 のクラス実装はやっぱり正しいな。 
  
 >>97のオレの発言は撤回したい。 
  
 実装していったらなんとなくわかった。未熟者だ。欝だ氏脳。 
  
 基底クラスにListとダウソメソッドが欲しい。 
  
 が今更だしなんとかなりそうなので突き進む。
 
- 307 :>305 :2001/02/19(月) 14:04
 - HeaderControl+ListBoxのOwnerDrawでやれば簡単にできるけど 
 それだとListViewの利点を放棄しちゃうことになるか。
 
- 308 :turbo type D@monazilla :2001/02/19(月) 15:19
 - >>307 
 なんかあのエクスプローラの動作っていかにもAPIでデキマスデー 
 といわんばかりの動作だから実現させたいな。 
 ・・しかしそんな枝葉にこだわっていたら完成しないから 
 いずれ誰かに実装してもらう事にしよっ。 
  
 あと、エクスプローラListView/vsReportの上下の三角マーク▽△ 
 これもAPIだと思うのだがどうやるのだろう。 
  
 誰か教えてね。
 
- 309 :turbo type D@monazilla.org(藁 :2001/02/19(月) 17:55
 - なんか、オレばかり書き込んでんだけど.... 
 槍田氏悩した方が逝ってヨシですか? 
  
 スレ一覧取得コードは出来ました。 
 ローカルにデータさえあればぽんぽんと 
 スレ閲覧が出来るようになった。 
  
 レスはまだなので 
 次はdatの解析する. 
  
  
 ヒロユキ@ギコナビさんやかちゅ〜しゃ 
 などで実装されているように 
 ローカルの部分とオンラインの部分の 
 兼ね合わせをどうやるといいのかが 
 よくわからない。
 
- 310 :gikozilla :2001/02/19(月) 17:59
 - 全然進んでません。。。 
  
 >>309 
 >ローカルの部分とオンラインの部分の 
 >兼ね合わせをどうやるといいのかが 
 よくわからないけど、 
 o オンラインモードの場合 
 スレッドを読み込みに行く時.datが更新されているかチェックする。 
  
 o オフラインモードの場合 
 ローカルにデータがあればそれを表示する。 
 なければ、読み込みに行く。 
  
 ローカルのデータを優先するかどうかの設定?? 
 
 
- 311 :デフォルトの名無しさん :2001/02/19(月) 18:27
 - >>305 >>307 
 少なくともMFCではListViewにスタイルを設定するだけでできます。 
 コモンコントロールの機能のようなので、Delphiもおなじでしょう。
 
- 312 :デフォルトの名無しさん :2001/02/19(月) 18:29
 - 当面問題無いと思うけど、とりあえずリンクしとく。 
 http://teri.2ch.net/test/read.cgi?bbs=accuse&key=968944428&nofirst=true&st=307
 
- 313 :turbo type D@monazilla.org(藁 :2001/02/19(月) 18:54
 - エクスプローラの詳細表示で 
 [名前|サイズ|種類|更新日時] 
 これを自由に入れ替える機能。 
  
 >>311 
 その割にベキ2にも実装されていないのだが、 
 作者の趣向と合わないだけかな? 
 それともOS依存か__ 
  
 >>310サンクス。 
 高速化は先送りして、とりあえず 
 遅くてもナビゲートできるように 
 した方がいいんですかね。 
  
 ちょとコードが大きくなってくると 
 クラス設計の重要度がすごく増しますね。 
 ダウンロードクラスなんて実装しておいた方がいいのだろうか。 
 全くわからん。
 
- 314 :デフォルトの名無しさん :2001/02/19(月) 19:11
 - >その割にベキ2にも実装されていないのだが、 
 >作者の趣向と合わないだけかな? 
 >それともOS依存か__ 
 確かに、コモンコントロールのバージョンには依存しますね。 
 MSDNにバージョンxxx以上とかかかれてましたし。 
 でも、多分IE4を入れてれば大丈夫だったし、IEコンポ使うってことは 
 IE4必須なので問題ないと思います。と思って俺はつけた>2chブラウザに 
 リストにボールドフォントとか使うときはオーナードローになると思うけど 
 そのときにはカラムの並び順も考慮した描画ルーチンにしないといけないのが 
 めんどうなところ。 
 
 
- 315 :名も無き詩人さん :2001/02/19(月) 20:27
 - 板一覧を取得して、 
 最初の板の、最初のスレッドの、最初のレスを 
 標準出力に書き出す最小限のPerlかRubyのサンプルが、 
 資料として欲しいなと思う今日この頃。
 
- 316 :gikozilla :2001/02/19(月) 20:40
 - >>315 
 作ってみましょうか? 
 
 
- 317 :gikozilla :2001/02/19(月) 20:55
 - 作りかけてるけどwgetとか外部のコマンド使いまくってるから 
 使い物にならないかも。。。 
  
 とりあえず板一覧は 
 http://www.2ch.net/board.txt 
 http://www2.ocn.ne.jp/~luckland/text/board.txt 
 にありますね。 
 
 
- 318 :名も無き詩人さん :2001/02/19(月) 21:25
 - >作りかけてるけどwgetとか外部のコマンド使いまくってるから 
 >使い物にならないかも。。。 
 wget使うのはなお宜しいですねぇ。 
 Windowsには標準でついていないのがイタいけど。 
  
 >http://www2.ocn.ne.jp/~luckland/text/board.txt 
 これはオフィシャルなものですか?
 
- 319 :デフォルトの名無しさん :2001/02/19(月) 21:53
 - 今更確認するまでもないと思いますが、 
 出来るだけread.cgiを呼ばないように努力したいですね。 
 http://teri.2ch.net/test/read.cgi?bbs=saku&key=979695762&st=436&nofirst=true 
 最も負荷がかかっているのはI/Oだという話もありますが、 
 read.cgiは行数を数えるため、ファイル全体を読んでいると思われます。 
 頑張って差分GETにしましょう。
 
- 320 :デフォルトの名無しさん :2001/02/19(月) 21:56
 - http://www.2ch.net/board.txt 
 ↑これ、オフラウ用に公式アナウンスされているけど、 
 むちゃくちゃ古いですよ。全然更新されてないです。
 
- 321 :ドメイントレヤ :2001/02/19(月) 22:06
 - 負荷をちょっとでも軽減するために 
 http://salad.2ch.net/bbstable.html を変換して、 
 http://monazilla.org/board.txt に置いとくとか。
 
- 322 :デフォルトの名無しさん :2001/02/19(月) 22:21
 - WinInetはnバイト目以降を取得とかってできるの? 
 CreateFile, ReadFileでも試してみようかな。
 
- 323 :デフォルトの名無しさん :2001/02/19(月) 22:37
 - >>314 
 2chブラウザの方でしたか! 
 ありがたや・・・
 
- 324 :デフォルトの名無しさん :2001/02/19(月) 22:41
 - ボード一覧は結局どれ? 
 http://salad.2ch.net/bbstable.html なくなった?? 
 http://www.2ch.net/bbstable.html こっち? 
 http://www2.ocn.ne.jp/~luckland/text/board.txt オフィシャル? 
 http://www.2ch.net/board.txt 古い! 
 http://www.2ch.net/bbsmenu.html 取得面倒? 
 
 
- 325 :ヒロユキ@ギコナビ :2001/02/19(月) 23:16
 - ちょっとヘコんだけど、書きに来ました。 
  
 >>313 
 >エクスプローラの詳細表示で 
 >[名前|サイズ|種類|更新日時] 
 >これを自由に入れ替える機能。 
  
 勘違いかもしれないですけど、 
 TListViewのFullDragをTrueじゃだめかな? 
  
 >>322 
 WinInetって自分で何処までイジれるのか分からないので、 
 はずしているかも知れませんが、ヘッダにRange: bytes=xxx 
 ってすると差分取れます。 
 HTTPの本を会社に置きっぱなしなので、間違ってるかも。 
 「HTTP詳解」っていう本だったかな? 
 あと、インターネットテクノロジ2001年1月号にも、HTTPのことが 
 ちらっと載っていたような気がします。(これも会社に置きっぱなし) 
 
 
- 326 :フッサール少佐 :2001/02/19(月) 23:21
 - >>302 
 フム、なにやら板名だけじゃかぶっている所があるそうなんで、 
 そっちの方が安全カモ。 
  
 >>303 
 実はあのタブが好きなんだな。 
 あと過去ログようのタブが必要と見た。 
 別にお気に入りで過去ログフォルダを作ってもいいんだけど。 
  
 >>322 
 たしか出来たはず。
 
- 327 :デフォルトの名無しさん :2001/02/19(月) 23:27
 - >ヒロユキ 
 へこまんでい〜よ〜。 
 暇なときでいいから、またアドバイスに来てちょ。 
  
 ほんでもって、HTTP1.1日本語訳へのリンク 
 少し古いのと若干わかりにくい部分があるので、rfc2616の原文も見るべし 
 http://www.geocities.co.jp/SiliconValley-PaloAlto/5694/rfc/rfc2068-ja.html
 
- 328 :フッサール少佐 :2001/02/19(月) 23:31
 - >>322 
 http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/page14.html 
 で、どう? 
 ヒロユキ@ギコナビの方法でもOK
 
- 329 :フッサール少佐 :2001/02/19(月) 23:31
 - >>322 
 http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/page14.html 
 で、どう? 
 ヒロユキ@ギコナビの方法でもOK
 
- 330 :フッサール少佐 :2001/02/19(月) 23:32
 - ありゃ?2重火気粉スマソ
 
- 331 :デフォルトの名無しさん :2001/02/19(月) 23:36
 - ヒロユキさんや、幸運の国さん、2chブラウザの作者さんらの 
 積極的な参加がこのプロジェクトを活気付けていると私は思います。 
 しょーもないあおりは無視で行きましょう。
 
- 332 :フッサール少佐 :2001/02/19(月) 23:43
 - >>319 
 全く同感。 
 HEADメソッドでチェックして、更新済みのものは差分取得がベストかな。 
 あるいは、datディレクトリの一覧を取得して日付で更新をチェックするとか。 
 Perlは重いっす。
 
- 333 :フッサール少佐 :2001/02/19(月) 23:48
 - >>308 
 ListViewのヘッダーカラムのDCを取得してそのCanvasにオーナードローすれば、OK。
 
- 334 :ヒロユキ@ギコナビ :2001/02/20(火) 00:06
 - >>332 
 If-Modified-Since:すると、HEADとらなくても、直接GETでOKです。 
 更新されていなければ、更新されていないコード(304)が帰ってくるので、 
 未更新が検出できます。 
 
 
- 335 :デフォルトの名無しさん :2001/02/20(火) 00:08
 - monazillaのページ見たけど、 
 どちらかと言うとmozillaよりGNU-2chといった感じだなァ…。 
  
 いや、なんとなくそー思っただけ。
 
- 336 :フッサール少佐 :2001/02/20(火) 00:29
 - >>334 
 おお、それはいい事を聞いた。マジメにRFC読んでみるかな。
 
- 337 :314 :2001/02/20(火) 00:44
 - >>334 
 更新検出なら、dat/ディレクトリ一覧の.datファイルのタイムスタンプを見ればわかるよ。 
 今、俺も実装してるところ。 
 subject.txtとdat/の2回アクセスしないといけないのが難点。
 
- 338 :デフォルトの名無しさん :2001/02/20(火) 00:55
 - でも、tako鯖はdat/を読めないので注意してね。
 
- 339 :デフォルトの名無しさん :2001/02/20(火) 01:02
 - >GET /tech/dat/?M=D HTTP/1.0 
 ね。 
  
 それと、 
 >GET /tech/dat/981726544.dat HTTP/1.0 
 >Host: piza.2ch.net 
 >Range: bytes=62298- 
 >If-Modified-Since: Thu, 15 Feb 2001 09:50:45 GMT 
 >Connection: Keep-Alive 
 > 
 ↑これ(実際に送った例)をレスポンスを待たないで、 
 一括してリクエストするとメチャメチャ早いよ。 
 parseがかなり面倒だけどね。 
 以上、時々だけ名乗る98でした。
 
- 340 :デフォルトの名無しさん :2001/02/20(火) 03:37
 - >>339 
 Keep-Aliveにするといつ終ったか分かんなくない? 
 parseしつつ表示ってんだったらいいだろうけど、 
 それって結構面倒な気がする。 
 つか、Keep-Alive にしてリクエスト送りまくるって話なんかな。
 
- 341 :turbo type D@monazilla.org(藁 :2001/02/20(火) 09:52
 - >>ヒロユキ 
 うん、へこまなくてもいー。いー。 
  
 >>324 
 >>333少佐('w')ゞ 
 ありがとうゴザイマフ 
 しかしAPI直叩きで出来る(とオモワレ)のを 
 オナドローするのはちょぴ嫌でございます。 
  
 なんかめちゃくちゃ詳しい方々が集まってきてますね。
 
- 342 :turbo type D@monazilla.org(藁 :2001/02/20(火) 10:26
 - しつもーん。 
 http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/page2.html 
 をDelphiに書き直した。 
  
 uses WinInetを加えて 
  
 procedure TForm1.Button1Click(Sender: TObject); 
 var 
  hSession: HINTERNET; 
  hService: HINTERNET; 
  lpBuffer: array[0..1024+1] of Char; 
  dwBytesRead: DWORD; 
 begin 
  hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0); 
 // hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); 
  if Assigned( hSession ) then 
  begin 
   hService := InternetOpenUrl( hSession, PChar(Edit1.Text), nil, 0, 0, 0); 
   if Assigned( hService ) then 
    while true do 
    begin 
     dwBytesRead := 1024; 
     InternetReadFile( hService, @lpBuffer, 1024, dwBytesRead ); 
     if dwBytesRead = 0 then break; 
     lpBuffer[dwBytesRead] := #0; 
     Memo1.Lines.Add( lpBuffer ); 
    end; //while 
   InternetCloseHandle( hService ); 
  end; 
  InternetCloseHandle( hSession ); 
 end; 
  
 しかし、普通に書き直した"INTERNET_OPEN_TYPE_DIRECT"では読み込まない 
 "INTERNET_OPEN_TYPE_PRECONFIG"にしたら読み込んだ。なぜ? 
  
 Indyやめて、WinInetにしようかしら?( w ;) 
 要望が多ければそうする。
 
- 343 :turbo type D@monazilla.org(藁 :2001/02/20(火) 17:07
 - >>342 
 よくわからないけど 
 プロキシの問題だろうか。 
 http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/page9.html 
  
 WinInetのHTTPページの 
 Page2-6,8はPascalに移植ったので 
 誰か必要なら逝ってくれ。
 
- 344 :デフォルトの名無しさん :2001/02/20(火) 17:31
 - もしかしてあぼーんすると.datのファイルサイズ変わっちゃう? 
 だとすると差分の取得がおかしくなりそう。
 
- 345 :turbo type D@monazilla.org(藁 :2001/02/20(火) 17:57
 - あぼーん、について教えて。 
  
 本当に全くわからない。(藁 
  
 かちゅーしゃ使ってるのにね。
 
- 346 :デフォルトの名無しさん :2001/02/20(火) 18:12
 - >>344 
 かわるよ。そこがこの手のツールが各自工夫するところ。 
 さらにあぼーんには、「ノーマルあぼーん」(全フィールドがあぼーんになる) 
 と、「サイレントあぼーん」(datの行ごと削除、痕跡が残らない)があります。 
 固定長あぼーん(余ったところを空白などで埋める)の要望もあるが、 
 マイノリティなツールのために2ch側に対応を求めるのは本末転倒だと思います。 
 現在、各ツールののあぼーんへの対処は、 
 1.あぼーんを検出したら、dat全部読み直し 
 2.あぼーんを検出したら、少し前から読み直して、テキスト比較で前回の 
  バイトオフセットを探して読み込み 
 3.datの差分読み込みはしない 
 あたりになっております。あぼーん検出は保存位置から読み出して、そこが 
 行頭か否かで判断かな? 
 ちなみに、俺(2chブラウザ)は3。差分読み込みやる気なし。 
 dat読みは全読み込みのときのみ。 
 
 
- 347 :デフォルトの名無しさん :2001/02/20(火) 18:39
 - WinInetで.datファイルを10分割して同時にダウソしたら 
 超高速ダウソできる???
 
- 348 :turbo type D@monazilla.org(藁 :2001/02/20(火) 19:48
 - アプしました。 
 モナプロ〜ラ〜もWinInetに変えてしまったので 
  
 多分コンポーネントのインストは一切必要なく 
 IE4以上、D4/D5環境にてコンパイルできるようになった。 
  
 http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/monaplorer.lzh 
  
 どの板でもボード一覧を取得できるようになった。 
  
 ネットに接続していない状態で動かしても動かないカモ。 
  
 でも、オレがタコなのでメモリリークしているみたいだ。 
 メモリクバグを発見する方法知っている人、教えて。
 
- 349 :turbo type D@monazilla.org(藁 :2001/02/20(火) 19:50
 - >>ボード一覧 
 スレ一覧の間違い。 
  
 腹減った。
 
- 350 :デフォルトの名無しさん :2001/02/20(火) 20:18
 - >でも、オレがタコなのでメモリリークしているみたいだ。 
 >メモリクバグを発見する方法知っている人、教えて。 
 アプリ終了時にメモリリークの個数を報告するユニット。 
 http://www.sakaki.keiaikai.or.jp/convroom/webconv.exe/read?No=9666&Response_Root=9632 
 
 
- 351 :フッサール少佐 :2001/02/20(火) 22:05
 - >>348 
 オレは 
 http://www.yks.ne.jp/~hori/MemCheck.html 
 これを使ってるよん。かなり便利。
 
- 352 :デフォルトの名無しさん :2001/02/21(水) 00:34
 - 更新チェック&差分ダウンロードできるなら巡回機能付けてね
 
- 353 :フッサール少佐 :2001/02/21(水) 00:46
 - >>302 
 ログはドメイン名を元にするようにした。 
 例えば、yahoo板はこんな感じ。 
 \logs\salad.2ch.net.yahoo\977080207.dat 
 これならかぶらんだろう。
 
- 354 :フッサール少佐 :2001/02/21(水) 00:48
 - >>352 
 無ければ、自分で作るのだ。それがオープンソースの醍醐味でもある。 
 つーわけで、自分で作れ。Delphi買ってコイ。
 
- 355 :デフォルトの名無しさん :2001/02/21(水) 01:05
 - 同意。 
 &nbsp変換もそうだが、このスレに「○○きぼーん」は良くない。 
 プロトタイプのコードでも作って、導入を促すようにすべき。
 
- 356 :355 :2001/02/21(水) 01:07
 - 最後の;つけなかったのに、nbspが変換されちった。
 
- 357 :turbo type D@monazilla.org(藁 :2001/02/21(水) 09:42
 - 確かに、実装困難なものを 
 現時点で、きぼーん、されてもつらいものがある。 
 差分ダウソ&更新はまーだ先ね。マターリいこうぜ。 
  
 メニュー項目くらい 
 誰か案をだしてほしい。 
  
 >>356オレもおろろいた。 
  
 >>350&少佐、 
 メモリク情報サンクス。 
  
 リクしているかどうかも不確かながらデバッグにとりかかる。 
  
 自分で無理だったら 
 Tree型Dataの破棄と更新を報告させてもらうね。 
 
 
- 358 :turbo type D@monazilla.org(藁 :2001/02/21(水) 09:45
 - さて、書記さんも更新ネタがなさそうなので 
 昨日まとめた、WinInetのDelphi仕様コード公開。 
 連続カキコすまそね。 
  
 全コードusesにWinInetを追加するだけで動作するはず。 
  
 INTERNET_OPEN_TYPE_DIRECT 
 と 
 INTERNET_OPEN_TYPE_PRECONFIG 
 は適当に置き換えてくれ。MemoとかButtonとかも適当に。 
  
  
 
 
- 359 :turbo type D@monazilla.org(藁 :2001/02/21(水) 09:46
 - //HTML/テキストファイルをHTTPで読み取る 
 //http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/page2.html 
 //より移植 
 procedure TForm1.Button1Click(Sender: TObject); 
 var 
  hSession: HINTERNET; 
  hService: HINTERNET; 
  lpBuffer: array[0..1024+1] of Char; 
  dwBytesRead: DWORD; 
 begin 
 // hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0); 
  hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); 
  if Assigned( hSession ) then 
  begin 
   hService := InternetOpenUrl( hSession, PChar(Edit1.Text), nil, 0, 0, 0); 
   if Assigned( hService ) then 
    while true do 
    begin 
     dwBytesRead := 1024; 
     InternetReadFile( hService, @lpBuffer, 1024, dwBytesRead ); 
     if dwBytesRead = 0 then break; 
     lpBuffer[dwBytesRead] := #0; 
     Memo1.Lines.Add( lpBuffer ); 
    end; //while 
   InternetCloseHandle( hService ); 
  end; 
  InternetCloseHandle( hSession ); 
 end;
 
- 360 :turbo type D@monazilla.org(藁 :2001/02/21(水) 09:47
 - //HTML/テキストファイルをHTTPで読み取りファイルに書き出す 
 //http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/page3.html 
 //より移植 
 procedure TForm1.Button1Click(Sender: TObject); 
 var 
  fp: TextFile; 
  hSession: HINTERNET; 
  hService: HINTERNET; 
  lpBuffer: array[0..1024+1] of Char; 
  dwBytesRead: DWORD; 
 begin 
 // hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0 ); 
  hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0 ); 
  if Assigned( hSession ) then 
  begin 
   hService := InternetOpenUrl( hSession, PChar(Edit1.Text), nil, 0, 0, 0); 
   if Assigned( hService ) then 
   begin 
    AssignFile(fp, Edit2.Text); 
    Rewrite(fp); 
    while true do 
    begin 
     lpBuffer := ''; 
     {↑C++ではchar lpBuffer[1024+1]と 
       変数確保されていると同時に初期化されているので 
       Delphiでも初期化する} 
     dwBytesRead := 1024; 
     InternetReadFile( hService, @lpBuffer, 1024, dwBytesRead ); 
     if dwBytesRead = 0 then break; 
     Write(fp, lpBuffer: dwBytesRead); 
     {↑dwBytesRead=StrLen(@lpBuffer)になっている} 
    end; //while 
    CloseFile(fp); 
   end; 
   InternetCloseHandle( hService ); 
  end; 
  InternetCloseHandle( hSession ); 
 end;
 
- 361 :turbo type D@monazilla.org(藁 :2001/02/21(水) 09:47
 - //HTML/テキストファイルをHTTPで読み取りファイルに書き出す 
 //パフォーマンスがあがっているらしい 
 //http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/page4.html 
 //より移植 
 procedure TForm1.Button1Click(Sender: TObject); 
 var 
  fp: TextFile; 
  hSession: HINTERNET; 
  hService: HINTERNET; 
  lpBuffer: PChar; 
  dwBytesAvailable, dwBytesRead: DWORD; 
 begin 
 // hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0 ); 
  hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0 ); 
  if Assigned( hSession ) then 
  begin 
   hService := InternetOpenUrl( hSession, PChar(Edit1.Text), nil, 0, 0, 0); 
   if Assigned( hService ) then 
   begin 
    AssignFile(fp, Edit2.Text); 
    Rewrite(fp); 
  
    InternetQueryDataAvailable( hService, dwBytesAvailable, 0, 0 ); 
    GetMem(lpBuffer, dwBytesAvailable+1); 
    InternetReadFile( hService, lpBuffer, dwBytesAvailable, dwBytesRead ); 
    Write(fp, lpBuffer: dwBytesRead); 
    FreeMem(lpBuffer); 
  
    CloseFile(fp); 
   end; 
   InternetCloseHandle( hService ); 
  end; 
  InternetCloseHandle( hSession ); 
 end;
 
- 362 :turbo type D@monazilla.org(藁 :2001/02/21(水) 09:48
 - //ネット上のファイル情報を得る 
 //サーバーに依存する 
 //http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/page5.html 
 //より移植 
 procedure TForm1.Button1Click(Sender: TObject); 
 var 
  hSession: HINTERNET; 
  hService: HINTERNET; 
  ReceiveBuffer: array[0..255] of Char; 
  dwSize, Reserved: DWORD; 
 begin 
 // hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0 ); 
  hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0 ); 
  if Assigned( hSession ) then 
  begin 
   hService := InternetOpenUrl( hSession, PChar(Edit1.Text), nil, 0, 0, 0); 
   if Assigned( hService ) then 
   begin 
    ReceiveBuffer := ''; 
    dwSize := sizeof(ReceiveBuffer); 
    Reserved := 0; 
    HttpQueryInfo(hService, HTTP_QUERY_RAW_HEADERS_CRLF, @ReceiveBuffer, dwSize, Reserved); 
    Memo1.Lines.Add( String(ReceiveBuffer) ); 
   end; 
   InternetCloseHandle( hService ); 
  end; 
  InternetCloseHandle( hSession ); 
 end;
 
- 363 :turbo type D@monazilla.org(藁 :2001/02/21(水) 09:48
 - //ファイルの作成日、サイズを得る 
 //http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/page6.html 
 //より移植 
 procedure TForm1.Button1Click(Sender: TObject); 
 var 
  hSession: HINTERNET; 
  hService: HINTERNET; 
  LastModified: SYSTEMTIME; 
  FileSize: Longint; 
  dwSize, Reserved: DWORD; 
  ft1, ft2: FILETIME; 
  t: SYSTEMTIME; 
  buf: String; 
 begin 
 // hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0 ); 
  hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0 ); 
  if Assigned( hSession ) then 
  begin 
   hService := InternetOpenUrl( hSession, PChar(Edit1.Text), nil, 0, 0, 0); 
   if Assigned( hService ) then 
   begin 
    dwSize := sizeof(LastModified); 
    Reserved := 0; 
    HttpQueryInfo(hService, HTTP_QUERY_LAST_MODIFIED or HTTP_QUERY_FLAG_SYSTEMTIME, 
                @LastModified, dwSize, Reserved); 
    dwSize := sizeof(FileSize); 
    Reserved := 0; 
    HttpQueryInfo(hService, HTTP_QUERY_CONTENT_LENGTH or HTTP_QUERY_FLAG_NUMBER, 
                @FileSize, dwSize, Reserved); 
  
    SystemTimeToFileTime( LastModified, ft2 ); 
    FileTimeToLocalFileTime( ft2, ft1 ); //かなり適当 
    FileTimeToSystemTime( ft1, t ); 
    buf := Format('作成日:%4d/%02d/%02d %2d:%02d:%02d サイズ:%dバイト', 
           [t.wYear, t.wMonth, t.wDay, t.wHour, t.wMinute, t.wSecond, FileSize]); 
    Memo1.Lines.Add( buf ); 
   end; 
   InternetCloseHandle( hService ); 
  end; 
  InternetCloseHandle( hSession ); 
 end;
 
- 364 :turbo type D@monazilla.org(藁 :2001/02/21(水) 09:49
 - //ヘッダ情報を追加する 
 //http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/page7.html 
 //より移植したけど、何がどうなっているのか理解してません。 
 procedure TForm1.Button1Click(Sender: TObject); 
 var 
   hSession: HINTERNET; 
   hService: HINTERNET; 
   szHead: String; 
 begin 
 //  hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0 ); 
   hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0 ); 
   if Assigned( hSession ) then 
   begin 
     szHead := 'Accept:*/*'+#13#10#13#10; 
     SetLength( szHead, Length(szHead) ); 
     hService := InternetOpenUrl( hSession, PChar(Edit1.Text), PChar(szHead), 0, 0, 0); 
  
     if Assigned( hService ) then 
     begin 
       //.... 
     end; 
     InternetCloseHandle( hService ); 
   end; 
   InternetCloseHandle( hSession ); 
 end;
 
- 365 :turbo type D@monazilla.org(藁 :2001/02/21(水) 09:49
 - インデントミスったので、再掲 
  
 //ヘッダ情報を追加する 
 //http://www.geocities.co.jp/SiliconValley-PaloAlto/1512/page7.html 
 //より移植したけど、何がどうなっているのか理解してません。 
 procedure TForm1.Button1Click(Sender: TObject); 
 var 
  hSession: HINTERNET; 
  hService: HINTERNET; 
  szHead: String; 
 begin 
 // hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0 ); 
  hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0 ); 
  if Assigned( hSession ) then 
  begin 
   szHead := 'Accept:*/*'+#13#10#13#10; 
   SetLength( szHead, Length(szHead) ); 
   hService := InternetOpenUrl( hSession, PChar(Edit1.Text), PChar(szHead), 0, 0, 0); 
  
   if Assigned( hService ) then 
   begin 
    //.... 
   end; 
   InternetCloseHandle( hService ); 
  end; 
  InternetCloseHandle( hSession ); 
 end;
 
- 366 :turbo type D@monazilla.org(藁 :2001/02/21(水) 09:50
 - //インターネット接続が出来るかどうか調べる 
 //>0 then 
  begin 
   ShowMessage('インターネットに接続できていません'); 
  end; 
 end;
 
- 367 :turbo type D@monazilla.org(藁 :2001/02/21(水) 09:51
 - ヲワリ。 
  
 では本日も四露氏苦
 
- 368 :turbo type D@monazilla.org(藁 :2001/02/21(水) 10:56
 - >>350 
 >>351 
 これって同じ作者なのかな? 
 どちらも試したがメモリリーク起きてませんでした! 
  
 d( °w ) 
 いー感じ♪
 
- 369 :turbo type D@monazilla.org(藁 :2001/02/21(水) 12:08
 - 書記さん、monazilla.org(藁 のダウンロードの説明の所を 
 こんな風に修正してくれると、わかりやすいかな。 
  
 > アップロードしてあるファイルをダウンロードする方法 
 >  
 > Monazilla Studio をダウンロードする。 
 > 適当なフォルダで解凍する。 
 > index.html を開く。 
 > ダウンロードをクリック。 
 > 入ってよしボタンをクリック。 
  すると シリコンバレーオークランド通り/9028 monazilla が開く 
  アップされたソースは[src]フォルダに入っているので 
  [src]ボタンを押す 
 > するとアップされたソースの一覧が出てくるのでダウソしたいファイル名の横のほ 
 > うにある 表示 ってとこをクリックする。 
 > 
 > 以上
 
- 370 :turbo type D@monazilla.org(藁 :2001/02/21(水) 19:24
 - 全然ヵキコがない。! 
  
 ウツダシノウ
 
- 371 :turbo type D@monazilla.org(藁 :2001/02/21(水) 19:35
 - >/* 書記さんは会社から 2チャンへの書き込みがなぜかできないのでロムってます、すんませんー */ 
  
 そうですか。 
 仕事していないのは俺くらいですか。(´∀`)
 
- 372 :デフォルトの名無しさん :2001/02/21(水) 19:47
 - >少佐 
 TWebBrowserで遅い問題は解決したでしょうか? 
 もしかしたら文字列連結の時間が原因かもしれません。 
 ・・・外してたらごめんなさい。 
 BCBの場合、単純にAnsiStringを数百回以上連結すると、 
 その部分で異常に時間を食います。 
 std::stringでreserve()すると、(その部分は)嘘みたいに高速になります。 
 でも、実はAnsiStringでcapacityを増やす方法を知らないんですが。
 
- 373 :turbo type D@monazilla.org(藁 :2001/02/21(水) 20:27
 - モナーアイコンを作成してくれない?誰か。
 
- 374 :turbo type D@monazilla.org(藁 :2001/02/21(水) 20:33
 - あと、32x32のaviもキボーン。 
 monazilla.org公式っていうのがいいなあ。 
  
 いま、かちゅしゃのaviで試しているから、 
 なんか悲しくて切なくて生産性が下がっています(藁 
  
 アイコンデザイン探しにモナー板逝ったら 
 藁ってしまうので仕事中にはとても探せないや。
 
- 375 :Dax :2001/02/21(水) 22:29
 - またまた Delphiで申し訳ないんですが 
 板一覧をつくることに特化したクラス、 
 「ホットゾヌ」をアップしました。 
  
 インターネット接続は 
  「Wininet」「ICS(HttpCli)」「NMHTTP」「Indy(IdHTTP)」の 
 4種類に対応し別々のユニットで用意しました。 
 使い方などは HTMLを用意します。 
  
 http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/hotzonu_010.lzh
 
- 376 :書記さん :2001/02/21(水) 23:40
 - >2ch 
 うちだけかな? 
 
 
- 377 :turbotypeD@モナぢら :2001/02/22(木) 00:03
 - >>375 
 おぉ。ぞくぞくと開発者が! 
 しかも別ユニットまで! 
 勢いでレス一覧までやってくださらぬか、(w 
 ってそれは贅沢かな。 
  
 別ユニット的アプローチはいずれ参考にさせていただきます。 
  
 モナプローラではすでにスレ一覧まではやってしまったしなあ。 
  
 次はWebBrowserを簡単に作れるクラス/ユニット実装予定(は未定) 
 かちゅ〜しゃの1タブごとに[戻る]ボタン機能がついた 
 イメージで作ってます。
 
- 378 :turbotypeD@モナぢら :2001/02/22(木) 00:09
 - >>375 
 おぉ。ぞくぞくと開発者が! 
 しかもコンポ別ユニットまで! 
 勢いでレス一覧までやってくださらぬか、(w 
 ってそれは贅沢かな。 
  
 別ユニット的アプローチはいずれ参考にさせていただきます。 
  
 モナプローラではすでにスレ一覧まではやってしまったしなあ。 
  
 次はWebBrowserを簡単に作れるクラス/ユニット実装予定(は未定) 
 かちゅ〜しゃの1タブごとに[戻る]ボタン機能がついた 
 イメージで作ってます。 
  
 >>書記さんいつもありがとう
 
- 379 :turbotypeD@モナぢら :2001/02/22(木) 00:09
 - 2重火器子スマソ
 
- 380 :デフォルトの名無しさん :2001/02/22(木) 00:12
 - >>340 
 Content-Lengthを参照する以外に終端を知る方法は 
 なかったと思う。<Keep-Alive
 
- 381 :フッサール少佐 :2001/02/22(木) 00:35
 - >>372 
 >TWebBrowserで遅い問題は解決したでしょうか? 
  
 全く解決するめどは立っていないが、別の方法を使うことにより 
 逃げることにした。 
  
 >もしかしたら文字列連結の時間が原因かもしれません。 
  
 JavaもStringの文字の連結は注意だな。ちなみにStringBufferを使う。 
  
 >でも、実はAnsiStringでcapacityを増やす方法を知らないんですが。 
  
 Delphiの場合は、SetLengthかな。 
 遅い原因はそれもあるのだが、innerHTMLを使っているということであろう。 
 Writeで追加書き込みしていけばそこそこ速いのだが、画面クリアの仕方が 
 分からんのだ。つーか、TWebBrowserとかCOMとかは素人だったり…。 
 
 
- 382 :turbo type D@monazilla.org(藁 :2001/02/22(木) 10:22
 - 下げるわけにもいかんのでage
 
- 383 :デフォルトの名無しさん :2001/02/22(木) 10:30
 - 上げるわけにもいかんのでsage
 
- 384 :turbo type D@monazilla.org(藁 :2001/02/22(木) 11:48
 - いわゆるタブブラウザやかちゅーしゃなどでは 
 WebBrowser部分はWebBrowserのインスタンスを沢山作って 
 いるのでしょうか?
 
- 385 :デフォルトの名無しさん :2001/02/22(木) 13:11
 - http://yasai.2ch.net/test/read.cgi?bbs=win&key=982224259 
 なんだか、かちゅーしゃの作者様の心がゆらいでらっしゃる。 
 協力してくれるかもage 
 
 
- 386 :デフォルトの名無しさん :2001/02/22(木) 13:12
 - かちゅーしゃは複数のブラウザインスタンスをつくってるようです。 
 
 
- 387 :turbo type D@monazilla.org(藁 :2001/02/22(木) 14:35
 - を、一応レス閲覧コードが書けた。(アプしてないけど) 
 初めて動作させるけどどきどきするなあ。 
  
 
 
- 388 :turbo type D@monazilla.org(藁 :2001/02/22(木) 14:39
 - あ、まだメソッドを呼ぶActionが無かった。あせるな>ジブン 
  
 さて、今日もコード公開 
 誰でも作れるけど、誰かが作っていたら楽な関数 
 //////////////////////////////////////////////////////////// 
 {  DataTimeToFmt2ch 
   Fmt2chToDateTime 
 // 名前:turbo type D@monazilla.org(藁 
 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ 
 聞いてアロエリーナ ちょっと言いにくいんだけど 
 聞いてアロエリーナ 
  
 ココカラノコードハ: 2ch形式の日付文字列"2001/02/09(金) 22:49"を 
       TDateTimeと相互変換する 
 コウシン日ワ:  2001/02/22 
 ホカニ逝ットクコトハ:なにもなし 
  
 聞いてくれてありがと アロエリーナ♪ 
 \________ _______/ 
          |/ 
          ∧_∧ 
    Ψ    (∀・ ) 
    □    (∩∩ノ) 
 // ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ } 
 const DayOfWeekJP: array[1..7] of String = ('日','月','火','水','木','金','土'); 
  
 function DateTimeToFmt2ch(DateTime: TDateTime): String; 
 var 
  Year, Month, Day: word; 
  Hour, Min, Sec, MSec: word; 
 begin 
  DecodeDate(DateTime, Year, Month, Day); 
  DecodeTime(DateTime, Hour, Min, Sec, MSec); 
  
  Result := IntToStr(Year) + '/' + 
       Format('%.2d', [Month]) + '/' + 
       Format('%.2d', [Day]) + '(' + 
       DayOfWeekJP[DayOfWeek(DateTime)] + ') ' + 
       Format('%.2d', [Hour]) + ':' + 
       Format('%.2d', [Min]); 
 end; 
  
 function Fmt2chToDateTime(Fmt2ch: String): TDateTime; 
 var 
  Year, Month, Day: word; 
  Hour, Min, Sec, MSec: word; 
 begin 
  
  try 
   Year  := StrToInt(Copy(Fmt2ch, 1, 4)); 
   Month  := StrToInt(Copy(Fmt2ch, 6, 2)); 
   Day   := StrToInt(Copy(Fmt2ch, 9, 2)); 
  
   Hour  := StrToInt(Copy(Fmt2ch,16, 2)); 
   Min   := StrToInt(Copy(Fmt2ch,19, 2)); 
   Sec := 0; 
   MSec:= 0; 
  
   Result := EncodeDate(Year, Month, Day) 
         + EncodeTime(Hour, Min, Sec, MSec); 
  except 
   raise ENichError.Create('日付変換が正しくねえぞ鰓(゚Д゚)ゴルァ'); 
  end; 
 end; 
 ////////////////////////////////////////////////////////////
 
- 389 :turbo type D@monazilla.org(藁 :2001/02/22(木) 15:31
 - >>386ども。 
  
 よし。レス内容データ読み込みだけは確認出来た。 
  
 あとはどのようにしてWebBrowserに読ませようか 
 ファイルに落としてからNavigateするのはわかるが 
 直接Documentに落とす方法はさっぱりわからない。 
 (次からはTWebBrower組み込むからD5専用な。) 
 誰かオシエレ(態度デカ!) 
  
 現在はモナヂラスレの内容を読むために 
 単にhttp://piza.2ch.net/tech/dat/981726544.dat 
 を読んでいるのだがこれでいいのか? 
 read.cgiには迷惑かけずに最新情報を読むことになってる? 
 
 
- 390 :turbo type D@monazilla.org(藁 :2001/02/22(木) 15:34
 - AVIファイルの作り方おしえてくれい。
 
- 391 :gikozilla :2001/02/22(木) 16:53
 - >>390 
 これはどう?使ったことないけど、、、 
 http://www.emurasoft.com/jp/emavi/index.htm
 
- 392 :turbo type D@monazilla.org(藁 :2001/02/22(木) 17:18
 - ふらりと見に行ったWin板で 
 "新2ちゃんねる用ブラウザ" 
 ってのが出てて、しかもめちゃ荒らされている... 
 http://yasai.2ch.net/test/read.cgi?bbs=win&key=982224259 
  
 ああ、哀れ
 
- 393 :turbo type D@monazilla.org(藁 :2001/02/22(木) 17:20
 - スレ先間違えた。 
 俺の方が憐れだ、宇津田ヒカル 
 >>391、どもアリガト
 
- 394 :turbo type D@monazilla.org(藁 :2001/02/22(木) 17:53
 - ♪聞いてアロエリーナ ちょっと言いにくいんだけど 
  聞いてアロエリーナ 
  
    >>391 
    すごく使い勝手わるいよ。  
  
   聞いてくれてあーりがと アロエリーナ♪ 
 \______ ___________/ 
 .          |/ 
  
   (○)      ∧_∧ 
   ヾ|〃     (∀・ ,,,)∩゛ 
    □.     (∩∩ , ⌒つ 
  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 
  
  
 
 
- 395 :turbo type D@もなヂ :2001/02/22(木) 18:36
 - これがいいかも。 
 http://www.vector.co.jp/soft/win95/art/se169298.html
 
- 396 :Dax :2001/02/22(木) 22:21
 - >>388 
 ナイス! 
 汎用関数ライブラリつくりましょっか?
 
- 397 :119 :2001/02/22(木) 22:48
 - type 
  TNichDownloadEvent = procedure(Sender: TObject; Index1, Index2: Integer) 
   of object; // Sender.Lines[Index1..Index2]をダウンロードした 
  TNichDownloadableObject = class 
  public 
   property Url: String; 
   proeprty Lines: TStrings; // TStringsで扱ってくれると楽チンなんだが... 
   
   proeprty OnStartDownload: TNotifyEvent; 
   property OnProgressDownload: TNotifyEvent; 
   property OnFinishDownload: TNotifyEvent; 
  end; 
  
  TNichDownloadType = (dtAll, dtDiff); // 全て取得・差分のみ取得 
  
  // 抽象ダウンローダ 
  TNichCustomDownloader = class 
  protected 
   FList: TObjectDeque; // TNichDownloadableObjectのインスタンスを保持 
  public 
  property UseProxy: Boolean; 
   property Proxy: String; // '0.0.0.0:8080'という形式が楽チン 
  
   procedure StartDownload(Nich: TNichDownloadableObject; 
    Whole: Boolean = False; // 全て取得(FALSEなら更新チェック&差分取得) 
    Deferred: Boolean = False // 順番を後回しにする 
     ); virtual; abstract; 
   procedure CancelDownload(Url: String); 
  
   proeprty OnStartDownload: TNotifyEvent; 
   property OnProgressDownload: TNotifyEvent; 
   property OnFinishDownload: TNotifyEvent; 
  end; 
  
  // ローカルキャッシュダウンローダ 
  TNichCachedDownloader = class 
  public 
   property Size: Integer; // カレントキャッシュサイズ 
   property MaxSize: Integer; // 最大キャッシュサイズ 
   property Directory: String; 
    // キャッシュディレクトリ 
    // こればっかりはレジストリで設定すべき 
   procedure Clean(LeftSizeMB: Integer; option...); // キャッシュをクリア 
   procedure Write(nich: TNichDownloadableObject); 
  end; 
  
  // HTTPダウンローダ 
  TNichHttpDownloader = class 
  public 
  end; 
  
  // FTPダウンローダはいらないか... 
  
  // 2chダウンローダ 
  // やることはcache&httpからLines:TStringsへダウンロードするだけ。 
  // Linesの解析は委譲元(nich: TDownloadableObject)が行う。 
  // 開発初期段階はシングルスレッド版(StartDownloadを呼び、ダウンロード完了後に制御を戻す。 
  //   途中でApplication.ProcessMessagesを呼ぶかもしれない) 
  // 差分取得は全て取得してしまう。 
  // 完成したら、順次マルチスレッド・差分取得を実装していく 
  TNichDownloader = class 
  protected 
   cache: TNichCacheDownloader; 
   http: TNichHttpDownloader; 
  public 
   procedure StartDownload(Nich: TNichDownloadableObject; 
    Whole: Boolean; Deferred: Boolean); 
   begin 
    // cacheとhttpを組み合わせてダウンロード 
    cache.StartDownload(Lines, Url, Whole, Deferred); // こっちはその場で復帰するはず 
    http.StartDownload(Lines, Url, Whole, Deferred); // こっちはスレッドでダウンロードを開始するだけ 
    // nichのイベントの発生のさせ方は一考の余地あり 
    // ダウンロードが終わったらキャッシュする。 
    cache.Write(Nich); 
   end; 
  end;
 
- 398 :119 :2001/02/22(木) 22:53
 - 例によって中身のないマルチスレッダブル(??)HTTP・キャッシュ 
 統合ダウンロードクラスを書いてみた。 
 HotZonuも良いがダウンロード・キャッシュ・プロクシ等の 
 コード・設定があちこちに散らばるのは面倒なので、 
 データをTStringsかstreamに統一して、 
 ダウンローダを板・スレリストクラスから分離すべきだと思う。 
 あとModel, Viewも意識的に切り分けないとね。 
 なんていってると遅くて使い物にならなくなるかもしれないが...
 
- 399 :フッサール少佐 :2001/02/22(木) 23:15
 - ちょっとだけ更新しました。 
 http://www.geocities.co.jp/SiliconValley-Cupertino/1026/lzh/giko0222.lzh
 
- 400 :ヒロユキ@ギコナビ :2001/02/22(木) 23:29
 - >>398 
 >あとModel, Viewも意識的に切り分けないとね。 
 >なんていってると遅くて使い物にならなくなるかもしれないが... 
 結構、重要ですよね。 
 でも、ウィンドウズのTreeViewだとどうしてもTreeView内にデータが入るので 
 ここをどうするかが問題になりそうです。 
 せっかくモデルを作成しても、タコTreeViewのお陰で複雑になります。 
 TreeViewとモデルの間に一つ挟めばいいのかな? 
 VirtualTreeViewなんてモードがあればいいんだけど。 
 
 
316KB
新着レスの表示
スレッドリストへ戻る 全部 前100 次100 最新50
0ch BBS 2004-10-30