■スレッドリストへ戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 最新50

monazilla

376 :書記さん :2001/02/21(水) 23:40
>>369
修正しました!
ありがとうございます。確かにわかりにくかったですね。
ですのでさらに画像も入れてみました。

>>370
今日は一時アクセスできなかったです。>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
スレ先間違えた。
俺の方が憐れだ、宇津田ヒカル
http://yasai.2ch.net/test/read.cgi?bbs=win&key=982429839

>>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なんてモードがあればいいんだけど。


401 :Dax :2001/02/22(木) 23:38
>>398
なるほど。
HotZonuもその形式に変更していきたいと思います。
なんか難しそだな。。。

402 :Dax :2001/02/22(木) 23:43
>>400
TreeViewのDataにオブジェクトを入れるのはまだいいと思います。
ノードと板スレオブジェクトを関連付けるクラスがあっても
いいかもしれませんがなんか複雑になりそう、、
逆に板やすれのオブジェクトがノードを持っているのはちょっと好きくないです。


403 :デフォルトの名無しさん :2001/02/22(木) 23:45
あんまりこってないのでテスト用の自家製のモナ AVIをアップしたよ。
http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/monaavi.lzh

↓こんな感じ
http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/mona.gif

404 :デフォルトの名無しさん :2001/02/23(金) 00:49
まえにこんなの作ったら、コードがかなり単純になった。
コードなくなっちゃったけど。
function SearchTreeNode(TreeView: TTreeView; Path: String): TTreeNode;

// あれば'\foo\bar\baz'を検索して返す
// なければ無理やり階層作って返す。
tn := GetTreeNode(TreeView1, '\foo\bar\baz');

405 :デフォルトの名無しさん :2001/02/23(金) 09:54
そろそろ書き込みについても考えませうage

406 :turbo type D@もなヂ :2001/02/23(金) 09:56
>>400ヒロユキ
オレはTreeViewのTreeNode.Dataに
TNichBoardを入れてポインタでリンクしてるよ。

で、実際のTNichBoardの管理はTreeViewとは
独立している。

今の所は生成方法でTNichBoardを作るときに
TreeViewのItemも構成してしまってるから
ちょっと絡まってるけど分離は実に楽だよ。
TTreeViewをTListBoxに差し替えるたり

TNichSite
└TNichCategory
 └TNichBoard
  └TNichThread
   └TNichRes
というデータ構造をしっかり保持しておいて
さらに
TTreeView
└TTreeNodes
  └TTreeNode
   └Dataプロパ=TNichBoard
こうしてるわけ。

407 :turbo type D@もなヂ :2001/02/23(金) 09:58
>>402Dax
TNichSiteにはプロパとして
使用するTTreeNodeをポインタとして代入しておくと
TNichBoard側からもTTreeViewを参照できるよ
TNichBoard.OwnerCategory.OwnerSite.TreeView=
実際に画面に存在するTreeViewという事になる。
Daxには仏に説法か。(藁

TNichBoardがTNichNodeを保持するのはオレも好きでない。
if TTreeView.Items[i].Data=Self then
で検索してもいいかもね。

>>398=119
勉強させてもらいます。
ダウンロードの構造はまだ考えていなかった。
一般的なやり方ってのはどういうものなのだろうか....
マルチスレやサブンダウソも
ダウンロードクラス差し替えで

408 :turbo type D@もなヂ :2001/02/23(金) 10:02
テイセ
マルチスレ→マルチスレッド対応
ダウンロードクラスだけ差し替えたら動作するような
機能分けが欲しい。

TDataModule上にダウンロード機能を構成しておくと
IndyやHTTPCLIに対応したときも
差し替えが実にらくだと思うよ。

409 :turbo type D@もなヂ :2001/02/23(金) 10:09
>>405
>そろそろ書き込みについても考えませうage
ダネ。ギコナビスレ、2chブラウザスレ、かちゅしゃスレで
話にあがっていたかも。
参考レス教えてクレソ


オレもAVI作ったんだけど(ヘチョいけどもナー)
アニメGIF作る方法がわかんね(T∀T)
教えてクレクレ厨房ですのでオシエテクラサっィィィィィィィィィィィィィィィィィ
>>403
裏になると顔が変わったらインパクあっていいかモナー

410 :デフォルトの名無しさん :2001/02/23(金) 15:34
>>409
AVI,私はMacromediaのExtreme3dってのを使いました。
あ、フリーのツールじゃないです。

411 :turbo type D@monazilla :2001/02/23(金) 15:56
>>410
そうですか。フリーでアニメGIFはやはりないですかね。

>>402Dax,
ホットゾヌでレス一覧を取得できるようには出来ないでしょうか?




412 :デフォルトの名無しさん :2001/02/23(金) 17:18
あ、アニGIFツールはかなり昔にゲットしたのがありました。
今はライセンスの問題で配布してないようです。
手元にあるのをジオにアップしました。
http://www.geocities.co.jp/SiliconValley-Oakland/9028/anigif.lzh

413 :turbo type D@monazilla :2001/02/23(金) 18:32
>>412
どもども、ゲットしました。

414 :デフォルトの名無しさん :2001/02/23(金) 18:32
元あるGIFを組み合わせて、アニメGIFをつくるのはライセンスの問題に引っかからないはずだから、
そういうソフトを見つけてくるか、もしくは作るか…。


415 :turbo type D@monazilla :2001/02/23(金) 19:34
メールテスト

>>414,TGifImageで作れるのかな?

416 :turbo type D@monazilla :2001/02/23(金) 22:02
よっしゃ。
TWebBrowserでレス一覧まで見れるようになった!(遅いけど)

今日中にアプします。

417 :ヒロユキ@ギコナビ :2001/02/23(金) 23:57
>>406
ギコナビもDataに入れてます。
ちなみに、
TBBS2ch (extends TList)
└TCategory (extends TList)
 └TBoard (extends TList)
  └TThreadItem (extends TObject)
な感じなのですが、モナプロのほうが綺麗なクラス群ですなぁ。

あと、書込みの注意点。
書き込みするときには、クッキーを送ってやる。
書き込み文字列はURLEncodingする。(HTTPAppユニットのHTTPEncodeで可能)

具体的には、以下のようになると思います。
FROMとか大文字小文字を区別しているようなので注意。

s := 'submit=' + HttpEncode('書き込む') + '&
+ 'FROM=' + HttpEncode('ヒロユキ@ギコナビ') + '&'
+ 'mail=' + HttpEncode('sage') + '&'
+ 'MESSAGE=' + HttpEncode('書き込みたい文字列') + '&'
+ 'bbs=' + 'tech' + '&'
+ 'key=' + スレ番号(ex. 981726544) + '&'
+ 'time=' + 時刻(注);
な感じを送ります。

僕の場合、時刻は以下のメソッドで取得しています。
//2ch日付取得(1970年からの秒数-9時間)
//現在の時刻(now)を渡してください
function TGikoSys.Get2chDate(aDate: TDateTime): string;
var
d1: TDateTime;
d2: TDateTime;
begin
d1 := EncodeDate(1970, 1, 1);
d2 := aDate - EncodeTime(9, 0, 0, 0);
Result := FloatToStr(Trunc((d2 - d1) * 24 * 60 * 60));
end;


418 :turbo type D@はみ出しプログラマ酔っ払い :2001/02/24(土) 02:50
> TBBS2ch (extends TList)
> └TCategory (extends TList)
>  └TBoard (extends TList)
>   └TThreadItem (extends TObject)

これもいいじゃないですか。というか
ギコナビの方が順当でわかりやすいかな思いますよ。
いろいろ迷ったんだけどまあ所有か継承なので
実現できればどっちでもいいか。
(いずれギコナビ方式にしようかモナー)

>>119
T2chObject実装にしても迷いましたよ。いまだに。

オレもAVI作った
AVIファイル
http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/monarotation.lzh
GIF
http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/monarotation.gif


419 :turbo type D@はみ出しプログラマ酔っ払い :2001/02/24(土) 04:11
モナプローラ、アプしたよ。
うごくかな。
TWebBrowser使ってるからD5限定ね。

あと、次からは多分パッケージもインストールするようにします。
コンポ使わないとコーディングが面倒なので。

420 :turbo type D@monazilla.org :2001/02/24(土) 04:15
あ、レス一覧を参照できるようになりました。
実に使いにくい2chビューワーとしてなら使えるはずです。(w

421 :デフォルトの名無しさん :2001/02/24(土) 11:55
>>419
Browser.pas と MemCheck(例のメモリリークチェッカ?)
ってのが無いってエラーが出るーーー

422 :デフォルトの名無しさん :2001/02/24(土) 12:00
あ、違った。
単に MemCheckが無いってエラーでした。


423 :turbo type D@monazilla.org :2001/02/24(土) 15:10
プロジェクトソースの該当個所をコメントアウトしてくれ
>>350>>351を参考にね.

>>書記さん、メモリリークの解決方法へのリンク張って
頂くとうれしいかも。

424 :turbo type D@monazilla.org :2001/02/24(土) 19:18
ところで、モナヂラ ドット”オルグ”って読み方あってる?

425 :デフォルトの名無しさん :2001/02/24(土) 23:17
AVIでアニメーションさせるんなら
0..100%で進捗状況を表すようにしない?


426 :デフォルトの名無しさん :2001/02/25(日) 00:01
>>417
質問。
リクエストメソッドはGETでも大丈夫なの?
この2chはPOSTで送っているみたいだけど。。

427 :フッサール少佐 :2001/02/25(日) 00:19
>>426
datファイルやsubject.txtならGETでOK。
CGIを動かすならPOST。

428 :フッサール少佐 :2001/02/25(日) 03:16
>>427
ああ、スマソ。一体何を書いていたんだ。無かったことにしてくれ。

429 :デフォルトの名無しさん :2001/02/25(日) 08:13
>>425
余り関係ないが、AdobePremireの待機カーソル(砂時計みたいなの)妙に腹立たないか?

430 :turbotypeD@モナぢら :2001/02/25(日) 15:38
>>425
それはね。WinInetでは難しいのよ。
・・・そうでもないって話もあるな。

WinInetでの%実装…思い浮かんだぞっと。
差分ダウソと絡めて実装したいね。

431 :turbo type D :2001/02/26(月) 10:33
なんか下がりまくってるし....

432 :turbo type D :2001/02/26(月) 16:03
Delphiの弱点というか、
コンポーネントを継承して
そのコンポーネントの生成などを考えずに
IDE上でコーディングしようとすると
非常に面倒ですね。

面倒すぎるので、動的生成させることにしました。
だからパッケ−ジ化も特に必要なし。

433 :デフォルトの名無しさん :2001/02/26(月) 16:32
>>432
同意。
独自のコンポーネント作ってアプリに組み込んでも、
他人にインストールを強要するのがイヤでいつも動的生成にしちまう。
そのかわり動的生成だと、配置やプロパティ設定がウザイ。

このへん、どうにかにかならんもんかねぇ。

434 :turbo type D :2001/02/26(月) 16:48
>>433、を、やっぱりそう思いますか。

IDEの設定がコーディングレベルに落ちて
プロパ設定もソースで見えるように
VB.NET/JAVAでは改善していたと思う。
あまりしらないけど。

Delpヒもさっさと改善望む。

さて
動的生成タイミングなんですが
FormCreateでやればいいのでしょうか?

あと、CreateParentedってのはなんですか?
VCLじゃないWindowにコントロールを載せる為の
特殊なCreateと考えていい?


435 :turbo type D :2001/02/26(月) 17:37
FormCreateで問題ないことがわかった。

あと、TWebBrowserの動的生成は特殊なんだね。

var Browser : TWebBrowser ;
begin
Browser := TWebBrowser.Create(Self);
Browser.Align := alClient ;
TOleControl(Browser).Parent := Self ;
Browser.HandleNeeded ;

http://www.users.gr.jp/ml/archive/delphi/25250.asp
ここをみた。

ギコナビもオプソになったし
おもしろいね。

436 :Dax :2001/02/26(月) 18:27
>>397
119さん、こんな感じでしょうか?
雰囲気だけですが実行してHTMLを取ってくるとこまでは動きます。
http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/hotzonu0226.lzh


437 :turbo type D :2001/02/26(月) 19:24
ホットゾヌを組み込もうかと調べていたんだけど
アスキアトすごいね。

カテゴリとボードについてそれぞれ
TCollectionとTCollectionItemがあるんすね。
このままスレとレスについても

同じようなコードで実装するのでしょうか?

438 :Dax :2001/02/26(月) 21:09
>>437
いや、スレ/レス取得はダウンローダと解析処理を分けようと思います。
ですので全然違うコードになると思います。
つーか板一覧も変わります。スマソ..


439 :Dax :2001/02/26(月) 21:31
やっぱコレクションは不便ですかねー?
次回はギコナビみたいな TList 継承にしよー。

440 :デフォルトの名無しさん :2001/02/26(月) 22:18
ホットゾヌのソース見て、飲んでたお茶ふきだしそうになった…。アブねぇ…。

441 :デフォルトの名無しさん :2001/02/26(月) 22:19
動画つくりました!
今度は裏に別の顔があります。
AVIとBMPはここ
http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/monaavi2.lzh

サンプルGIFはここ
http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/mona02.gif

442 :Dax :2001/02/26(月) 22:44
>>440
やっぱ AA 張りきりすぎ?
それともロジックが変だったってこと!?

443 :フッサール少佐 :2001/02/27(火) 00:22
writeの正しい使い方がようやく分かった。
document.open('text/html', 'replace');
これが必要だったらしい。待て、次号。


444 :119 :2001/02/27(火) 00:28
Delphi以外の言語(特にスクリプト系)で参入しやすいように
一連のクラス郡をオートメーションサーバにしちゃうってのはどう?

用途としては、とりあえず以下のものが考えられる。
・コマンドライン巡回ツール
・WebBrowser表示用のdat->htmlフィルタ
#2ch標準より読みやすい表示はいくらでもありそうだね。
#これはオートメーションとは関係ないけど。
・キャッシュクリーンアップ
・CUI,GUIフロントエンド(DelphiとVBの夢の共演が実現か?:-)。

445 :デフォルトの名無しさん :2001/02/27(火) 02:19
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\
聞いてアロエリーナ ちょっと言いにくいんだけど
聞いてアロエリーナ

>・GUIフロントエンド
特定のスレを定期的にチェックして新着の内容を
吹き出しで表示する常駐ツールなんてどうよ?

聞いてくれてありがと アロエリーナ♪
\________ _______/
         |/
         ∧_∧
   Ψ    (∀・ )
   □    (∩∩ノ)
// ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ }

446 :440 :2001/02/27(火) 07:04
コメントのAAにびっくらこいただけだよ。その調子で頼むよ(藁

447 :Dax :2001/02/27(火) 08:27
>>444
ActiveXコントロールを作ろうかと思ってたんですが
オートメーションサーバーの方が小回りききますね。

>>446
クラスとクラスの間に貼ってあるリアルゾヌ(勝手に命名)の AA がお気に入りです。

448 :turbo type D :2001/02/27(火) 10:03
>>443少佐・まってます。('w')ゞ

>>Dax
コレクショとコレアイテムは1階層だけでの実装が自然だと思う。
だから2chのようなデータ構造を保持するには
少々不自然かな。
ソースは綺麗ですよ。

今日は気合入れていくぜ。
オフライン&WebBrowser動的生成は実装できた。

読み込み中に
Appli.ProcessMessageしてると
予想していないポインタのズレから


>>441
動画ないす!
モナプロラではUI上から動画を切り替えられるようにしておこうっと。

449 :turbo type D :2001/02/27(火) 11:53
>>441さんの動画
なぜかTAnimeでは開けないの
http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/monaavi.lzh
http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/monaavi2.lzh
なぜだろう。

450 :名無しさん@お腹いっぱい。 :2001/02/27(火) 12:54
ActiveXコントロール/コントロールコンテナから
WordやExcelのドキュメントの書き込み禁止/許可を
させるにはどうしたよいのでしょうか?


451 :名無しさん@お腹いっぱい。 :2001/02/27(火) 12:55
スレまちがえました。すいません。


452 :turbo type D :2001/02/27(火) 18:51
うまくいかん!、ぐう(x∀x)

453 :turbo type D :2001/02/27(火) 19:04
Browserの進むと戻るって
どのように実装されてるのかな?
GoBackメソッドとかあるけど。
詳説キボーン

あとWebBrowserに関するテクニックを
知っている人は沢山教えてくださいな。

454 :turbotypeD@モナぢら :2001/02/27(火) 22:09
かちゅーしゃのように
WebBroweserで開い後に自動的にスクロールする方法がわかんない。

455 :デフォルトの名無しさん :2001/02/27(火) 22:12
番号にブックマーク(#1とか)を指定してそこに移動すればいいんじゃない?

CHtmlView クラス メンバ
http://www.microsoft.com/japan/developer/library/devprods/vs6/visualc/vcmfc/vcrefchtmlviewclassmembers.htm

456 :Dax :2001/02/27(火) 22:12
>>454
かちゅーしゃでHTMLソースを見るとレスごとに
アンカーが設定してあります。
Navigate時にアンカー指定で表示しているんだと思います。


457 :turbotypeD@モナぢら :2001/02/27(火) 22:36
そうか!あったまいい!

458 :デフォルトの名無しさん :2001/02/27(火) 22:38
かちゅーしゃの「以前読んでいた位置」はこれ。
Documentにアクセスしているので、Navigateは(最初以外)してないと思うよ。
http://piza.2ch.net/test/read.cgi?nofirst=true&st=142&to=142&bbs=tech&key=974446449
その他、Elementはanchorに限らないけど、scrollIntoViewあたりがよろし。

459 :Dax :2001/02/27(火) 22:51
>>458
おお!なるほど、確かに Navigateだとぎゅい〜んって動いちゃうよね。

460 :turbo type D@monazilla.org(藁 :2001/02/28(水) 09:41
なんかスレずいぶん落ちてるんだけど
みんな疲れてるの?

461 :デフォルトの名無しさん :2001/02/28(水) 09:48
みんな会社でまじめに働いてるからです(藁

462 :turbo type D@monazilla.org(藁 :2001/02/28(水) 10:02
そうか!
まじめに働いていないのは俺だけか!(藁

じゃあ、今日も不真面目にGo!

463 :turbo type D@monazilla.org(藁 :2001/02/28(水) 11:09
不真面目なのはオレ一人なので気にせずカキコ
あと、>>449の問題とか教えてよ。

今までデータ構造として
TNichSite
├TNichBoard ─┐
└TNichCategory │
└TNichBoard─┘
└TNichThread
└TNichResponse
としてTList保持して一つのツリーとして考えてきて
おや(Owner?)を破棄すると同時にすべての子を
破棄するようなコードを書いていたけど

どうやら詰まってきたので再考しました。

構造はこのままだけど

ボード一覧表示部分
TNichSite
├TNichCategory
│└TNichBoard─┐
└TNichBoard ←┘

↓TNichBoardをAssignしてコピー

スレ一覧表示部分
TNichBoard
└TNichThread

↓TNichThreadをAssignしてコピー

レス一覧表示部分
TNichThread
└TNichResponse

にします。
こうしないとボード一覧表示を更新した後に
スレ表示やレス表示部分と整合性が無いために
コードが非常にやりずらかった。

という事でよろしく。

464 :ななしくん :2001/02/28(水) 15:14
モナプロ〜ラ〜を勝手に改造して勝手にアップ

変更点
・タブで複数のスレを見れるように変更
・TWebBrowserをTUIWebBrowserに変更
・Frameを追加(Delphi4はコンパイルすら無理)

http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/monaplorer_r.lzh

465 :turbo type D@monazilla.org(藁 :2001/02/28(水) 17:25
わぉ(´∀`)

466 :turbo type D@monazilla.org(藁 :2001/02/28(水) 18:33
オレもアプじゃあー!
http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/monaplorer010228.lzh

更に使い勝手が悪くなったきがしまフ
たぶんD5限定さ。

・タブで複数スレが見れる
(けどロード中にタブ切り替えするとやばいよ落ちるよ
しかもとても使いにくいよ)

・内部データ構造を見直した
 ちゃっかりTList継承になってるもんね。
 きっと今後のコーディングが楽になるハズハズハズハズハズハズハズハズハズ
キノセイ キノセイ キノセイ キノセイ キノセイ キノセイ キノセイ キノセイ キノセイ キノセイ キノセイ キノセイ キノセイ

・AVIファイルをaviフォルダに入れる事でグルグルアニメの選択可能
 こんなおまけ機能後回しにしろや(゚Д゚)ゴルァ

まだまだ先は(カチュに追いつくには)遠い!

467 :turbo type D@モナヂラドットオルグ(ワラ :2001/02/28(水) 18:58
GoBackとGoForword機能
のEnabledはどうやって取得するのでしょう?
オスエテクダサイ

468 :turbo type D@モナヂラドットオルグ(ワラ :2001/02/28(水) 19:02
モナプロラ今後の予定

TWebBrowser部分
  スクロール機能をつける
  タブを閉じる関数をつける

データ構造
  T2チャンスレッドのメンバーに
  スクロールバー位置
  を追加

ダウソ部分
  WinInetによるファイルサイズ取得関数作成
  ファイルサイズと比較して
  差分ダウソの実現するようにする

全体
  ちょっとくらい使い勝手を意識しろツコトデ
  UIの改善
    →PopupMenuで読み込むのをやめよう。
    →現在読み込んでいる板とスレの表示
  データのIniFile保存


469 :デフォルトの名無しさん :2001/02/28(水) 19:12
>>466
TList クラスを継承は出来るだけやめた方が良いよ。

Delete メソッドや Clear メソッドが公開されているから
バグを作る可能性が大きくなります。

470 :turbo type D@モナヂラドットオルグ(ワラ :2001/02/28(水) 21:00
あらーーー。
せっかくTList継承にしてみたのになあ。

まあ、Has ア に戻すのもたいした手間じゃないけどさ。

そしたら
TNichListを内部で保持しておいたらいいんでしょうか?


471 :書記さん :2001/02/28(水) 22:26
モナプロ〜ラ〜のページ更新しましたー。
ワタクシもまじめに働いてないですよ。

472 :turbo type D@モナヂラドットオルグ(ワラ :2001/03/01(木) 01:07
あらま、本家とかついてる。うれしいでございます。

ギコナビもすぐクローン化されるんでしょうね。
みなさんマターリガンバリマソ


473 :ななしくん :2001/03/01(木) 10:07
本家のソースをみて感動(´ー`)
WebBrowserのParentの設定方法がわからなかったので
Frameを使ってたのが恥ずかしYo
もうちょっとガンバッテ勉強します。

474 :turbo type D@モナヂラドットオルグ(ワラ :2001/03/01(木) 10:12
エヘ(w
>>435
を見ておくれ。
Browser.HandleNeededが何で必要なのかは全然知らない(藁

BCBでのやり方は某所で載っているね。

475 :turbo type D@モナヂラドットオルグ(ワラ :2001/03/01(木) 14:44
>>467のやり方がわかった。
type
 TNichBrowser = class(TWebBrowser)
 private
  FOnCommandStateChange: TWebBrowserCommandStateChange;
  FGoBackEnabled: Boolean;
  FGoForwardEnabled: Boolean;
 public
  constructor Create(AOwner: TComponent); override;
  destructor Destroy; override;

  procedure CommandStateChange(Sender: TObject; Command: Integer; Enable: WordBool);
  property OnCommandStateChange: TWebBrowserCommandStateChange
   read FOnCommandStateChange write FOnCommandStateChange;
  property GoBackEnabled: Boolean read FGoBackEnabled;
  property GoForwardEnabled: Boolean read FGoForwardEnabled;
 published
 end;

---------------------
constructor TNichBrowser.Create(AOwner: TComponent);
begin
 inherited;
 inherited OnCommandStateChange := CommandStateChange;
end;

procedure TNichBrowser.CommandStateChange(Sender: TObject;
 Command: Integer; Enable: WordBool);
begin
 case Command of
  // GoForwardコマンドの実行許可
  CSC_NAVIGATEFORWARD :
  begin
   FGoForwardEnabled := Enable;
  end;
  //GoBackコマンドの実行許可
  CSC_NAVIGATEBACK :
  begin
   FGoBackEnabled := Enable;
  end
 else

 end;

 if Assigned(FOnCommandStateChange) then
  FOnCommandStateChange(Sender, Command, Enable);
end;
これでGoBackEnabled/GoForwardEnabledプロパティが
実装できる。

ところで
UIWebBrowserのヘルプに
>TWebBrowserを継承すると統合デバッガで不具合が生じます。
とあるが、普通にTWebBrowserを継承して使っているが
特に不具合は出ていない。デバッガをフルに使っていないからかな?
動的生成しているからかも。

317KB
新着レスの表示

スレッドリストへ戻る 全部 前100 次100 最新50

0ch BBS 2004-10-30