トップページ⇒tech
988コメント351KB

ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室�A

■ このスレッドは過去ログ倉庫に格納されています
0001DelフサギコNGNG

                  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ∬   ∧,,∧      |  Delphi や Borland に関する話題
     ~━っミ ゚Д゚彡,,    <  雑談や質問を、しながら
    ∀._(,,,~  ,,,~⊃_   | マターリくつろごうや
━┳┷ |. ,(~ヽ,,,ミ.       \_________
  ┃...| ̄ ̄し'J.  ̄ ̄ ̄
  ┻ ヽ ̄ ̄ ̄ ̄ ̄ ̄ ̄ AA ハリマクッテ ヨシ
0002DelフサギコNGNG
今だ!2ゲットォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧,,∧,,,,,, )      (´⌒(´
  ⊂ミ゚Д゚⊂ `つ≡≡≡(´⌒;;;≡≡≡
       """""  (´⌒(´⌒;;
      ズザーーーーーッ

前スレ
ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室
http://pc.2ch.net/test/read.cgi?bbs=tech&key=1003664165
http://pc.2ch.net/test/read.cgi/tech/1003664165/

関連スレ2001/11/24 20:11、全スレのリンクをカクニソ
( ゚Д゚)ノ Delギコ猫のプログラミング相談室part4
http://pc.2ch.net/test/read.cgi/tech/1002469894/
( ゚Д゚)ノ Delギコ猫のプログラミング相談室part3
http://piza2.2ch.net/tech/kako/1001/10010/1001039863.html
( ゚Д゚)ノ Delギコ猫のプログラミング相談室part2
http://pc.2ch.net/test/read.cgi/tech/999482946/
( ゚Д゚)ノ Delギコ猫のプログラミング相談室
http://piza2.2ch.net/tech/kako/997/997348797.html
0003DelフサギコNGNG
    ・・・・・・・
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄
     ∧,,∧,,,,,, )    (´;;
  ⊂ミ゚Д゚⊂ `つ  (´⌒(´
       """""

Borland Delphi 6 Personal ダウンロード
http://www.borland.co.jp/delphi/personal/
Borland Kylix Open Edition ダウンロード
http://www.borland.co.jp/kylix/openedition/
JBuilder 5 Personal ダウンロード
http://www.borland.co.jp/jbuilder/jb5/download/
Borland C++ Compiler 5.5 無償ダウンロードサービス
http://www.borland.co.jp/cppbuilder/freecompiler/
0004DelフサギコNGNG
  また新スレか・・・・
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄
     ∧,,∧,,,,,, )
  ⊂ミ,,゚Д゚⊂ `つ;
       """""

Delphiお勉強リンクは過去スレをみてください。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999486538
0005DelフサギコNGNG

  ドッコイショ・・・・・・・・・
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄
    ∧,,∧ ,,,,,,
   ミ゚Д゚,,彡 ヽ
     U''U^(,,⊃'〜

  何見てんだゴルァ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄
  ポ  ∧,,∧  ポ
  ン  ミ,,゚Д゚,彡 . ン
   (´;) U,U ミ〜 (;;).
(´)〜(⌒;;UU (´ )...〜⌒(`)
             
プログラムとギコの奇妙な関係(?)
 Delフサギコ? http://www.oreilly.co.jp/cover/delphi.gif
 かわいいUMLギコ http://www.oreilly.co.jp/cover/uml.gif
0006DelフサギコNGNG
               ,ィミ,        ,ィミ,               フ
                彡 ミ        彡 ミ,            ヤ |
             ,,彡   ミ、、、、、、、、彡  ミ,     (⌒)    レ  |
            彡;:;:             ミ,    (  ヽ   ヤ
         〜三;:;:::::              彡〜  ノ  ノ   レ
         ~~三:;:;:;:::::  -=・=-   -=・=- 三~~ ヽ (    :     ;;
         ~~彡::;:;:;:;:::..     ___     ,三~~ ( ノ ,,,,,  :      ;;
          ~~彡;:;:;:;:;:;:;:.    |┴┴|    ,ミ~~ ノノ ;'" ,,ノ―、     ,;'
          ~~彡:;:;:;:;:;:;:;:;.  ノ――| ---==ニノ ,;'′ >=ニ(二二二()
     ,...-''''""~~,::;:;::;::;::;::;'            ミ,,  ,;'′  ゝ--〈
____,;";;:;;;;;;;;;;;;;;;;;;;;;:;:;:;:;:;:;:;            i! ミ,,,,;'′   `ー‐'
           ::::ミミミ:;:;:;:           ミ::      ,;' ̄ ̄ ̄ ̄|  \___/
            :::::ミミミ:;:;:           ミ:::,   ,;::''′        |.    \/
            ::::ミミミ:;:;::       ,;+''"~~゙+、~'''''~          |     |
             ::::ミミミ:;:;:;:     ,+'"     ミ:::::           |   ━┷━━━┳━━━━━
               :::::ミミミ:;:;:;:;:  >':;:       ミ::              |             ┃
             ::::::ミミミ:;:;:;:;:;../;:;:;:       ;:"             |             ┃
              ::::::::ミミミミ:;:/;:;:;:;:    ,.+'"''-、________|__         ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄;':;:;:;:   ,.+'"    ミ、             l          ┃
                 ::::::ミ;:;:;:;:.. ..ミ:::ミ:;:     ミ               l          ┃
                  ::::::しUUU┘::::ミ:;:     ミ              l          ┃
                  :::::::::::::::::::::::::::└UUUじ                 l          ┃
________________________________,l          ┃
                                               ━━━┻━━━
今日はフサギコの誕生日だから、モナー板のAA見て楽しんでくれい

真打!フサギコボーイズ 一席目
http://piza2.2ch.net/test/read.cgi?bbs=mona&key=1006557516
0007デフォルトの名無しさんNGNG
助けてほしいのです。
PCをフォーマットしました。
Delphi6で作ったプログラムのバックアップを取りました。
Windowsを再インストールしました。
Delphi6を再び入れようとしましたが、途中でエラーが発生し、
インストールできません。
仕方ないので Delphi5 をインストールしました。
Del6 → Del5 の dfm変換プログラムを使い、
Del6で作ったプログラムをDel5で問題なく開いていました。

ところが、とある dfm は変換に失敗し、うまく開けませんでした。
そこで変換前のファイルをエディタで見たところ、あきらかに
他の dfm とはフォーマットが違います。範囲外の文字コードが
あるのか、半角の■もちらほら見かけますし、まともに改行されていません。
バックアップファイル df~ も見たのですが、同じような内容です。

したがって、Rへの焼きミスではなさそうです。

ソースをウプするので、どなたか修正できる方はいませんか。
00087NGNG
このファイルなんですが…
http://www.geocities.co.jp/SiliconValley-PaloAlto/4845/untMain.dfm.txt
0009デフォルトの名無しさんNGNG
D6 がインストールできない時点ですでに何かが根本的に間違っていると思われ。
0010デフォルトの名無しさんNGNG
>>D6
それがですね、内部エラーが発生してしまうのですよ。
以前は平気だったのに…
0011デフォルトの名無しさんNGNG
Winのウプグレードは?
0012デフォルトの名無しさんNGNG
セットアップ直後に WindowsUpdate を実行しました。
Delphi5のアイコンも正しく表示されなかったし
(いぜんは正しく表示された)
これはハードウェアアクセラレータを最低にすることで対処できましたが。
0013デフォルトの名無しさんNGNG
新スレおめでとうございますです。

今、簡単なFTPソフト作りにチャレンジしているのですが、過去の履歴を.iniファイルで
管理しようと思うのですが取り扱いがイマイチ分かりません。
理想としては5つほどの履歴を記録してComboBoxへ表示させたいのですが、
色々なサイトを参考に作ったファイルだと毎回過去の履歴を上書きしてしまい、
前々回以前の履歴が記録されません。

これはどのようにすれば解決できるのでしょうか。
ご教授いただければ幸いです…。
0014デフォルトの名無しさんNGNG
しかしまあ・・・タイトルにおもいっきり機種依存文字使うとは・・・
0015デフォルトの名無しさんNGNG
>14

ま、DelphiプログラマがWindows使ってないってことはあまりないんじゃない?

って、Kylixがあるか...
0016デフォルトの名無しさんNGNG
>13
毎回履歴を全部書き直す。
0017デフォルトの名無しさんNGNG
>13
TComboBox.Text記録してないか?
TComboBox.Items記録しとけ
001813NGNG
素直に考えると良い訳ですね。

ちょっと今日は用事があってDelphi触れないのですが、明日
チャレンジしてみたいと思います。
__  __________________________
    ∨
  ∧∧
  (; ´ー`)  アドバイス デキルヨウナ タチバニ
  (っ且~_   ナレルヨウ ガンバリマス
0019デフォルトの名無しさんNGNG
>>14
まぁDelphiはWindowsしかないとは言え、ねぇ
マナー違反ではあるな。ウン。
フサギコ反省しろよ!
0020デフォルトの名無しさんNGNG
        ∫
   ∧,,∧ ∬       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ミ,,゚Д゚ノ,っ━~  < 貴様等Delphiの話しろ
_と~,,,  ~,,,ノ_. ∀  \_________
    .ミ,,,/~),  .| ┷┳━
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄   .┻
いやみ言いたいなら機種依存文字チェッカーのコードあげるか
かちゅのdllでも配布して間接的に家
0021DelフサギコNGNG
   ∧,,∧      / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡  <  機種依存文字くらいで騒がずに
  ミ つ且~~   \___________
〜ミ,,,,,, ,,ミ

マナー違反で反省って.....ココハ 2ch

このスレの人は2chネラーじゃなくて
純粋培養されたDelphianの居場所かよ…
0022デフォルトの名無しさんNGNG
今、フォームが2つあるアプリを作っています。
フォーム1のメニューに色々ショートカットをつけています。(Ctrl+C, Ctrl+Zなど)
フォーム2にはTMemoがあります。
フォーム2のメモ上で、CTRL+Cなどをするとフォーム1のショートカットが動いて
しまいます。
フォーム2を操作しているときにはフォーム1のショートカットを動かさないように
したいのですが、どうすればいいでしょうか?
0023DelフサギコNGNG
   ∧,,∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡 < dfmにはテキスト形式とバイナリ形式があるんす
  ,;゙  ミ     \_____________
 @  ミ
  ゛゛゛゛   多分、バイナリ形式になってしまってるのです。
       >>7
       D6形式のバイナリdfmを以前の形式にするツールは…
       知りませんが。
0024DelフサギコNGNG

  ∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚ミ < Form2にもAction置いてショートカットキー登録したら?
  ミ   ミ   \__
〜ミ,UU_ミ  ドウデショ
0025デフォルトの名無しさんNGNG
>>24
いえ、フォーム1には、ショートカットが沢山あります。
フォーム2では使用しないショートカットもフォーム1にあるので、
困っています。
0026デフォルトの名無しさんNGNG
あの、本当に申し訳ないのですが、
どなたか Del6 で以下の dfm データを開き、テキスト形式で再度保存し、
[email protected]
に送信してくださいませんか。
http://www.geocities.co.jp/SiliconValley-PaloAlto/4845/untMain.dfm.txt
0027デフォルトの名無しさんNGNG
>>26
「不正なImageList」って出るよ。
0028デフォルトの名無しさんNGNG
あ、もしかして untMain.pas も必要あります?
0029デフォルトの名無しさんNGNG
なんかスレッド名おかしくねえ?豆腐みたいのがあるんだが。
0030デフォルトの名無しさんNGNG
>>29

ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室�A ←最後の文字、
「まる2」 ってかいてあるの。
マカーには見えないけど、DELはWIN版しかでてないから問題ないよね。
0031デフォルトの名無しさんNGNG
そんなことより聞いてくれよ。

Del6アプリって95でどのぐらい動くのかな?誰か試した人いる?
いまD5Pro使ってるから気にしてないんだけど、D6も使ってみたくてねぇ
0032デフォルトの名無しさんNGNG
http://pc.2ch.net/test/read.cgi/tech/1005897052/96
フサギコ呼んでるよ。

自分も気になったし。
003322NGNG
[Delphi-ML:21669]で解決したYO!
0034初心者NGNG
あのぉ

Delphi6のコードエディタにダイアグラムってのがあるんですけど、あれ使ってる人って
いるんでしょうか?何が便利なのかいまいちわかりません。

あれがあると何が嬉しいんでしょうか?
0035デフォルトの名無しさんNGNG
>>34
データベース関連で、三つや四つのコンポーネントにリンクを張らなきゃ使えない
場合、ダイアグラムにコンポーネントを落としてから適当に関連をつけさせると
かってにプロパティ参照を解決してくれる。
それをそのまま残しておくと、簡易ドキュメントにはなる。
0036買いたいんだけど初心者NGNG
初心者はパーソナルで充分でしょうか?
プロフェッショナルを買っておいても
損はないでしょうか?
0037デフォルトの名無しさんNGNG
>>36
パーソナルはただなんだから,手に入れて使ってみたら?
開発するにはプロフェッショナルの方がソースが手に入る分,良いけど。
0038デフォルトの名無しさんNGNG
パーソナルからプロフェッショナルへのバージョンアップは出来ないの??
いきなりプロフェッショナル買うより、バージョンアップの方が安いYO!
0039デフォルトの名無しさんNGNG
パーソナルタダなんだからできるとはおもえん。
7がでたときもね。
0040デフォルトの名無しさんNGNG
>>39
買い替えの値段の話か。
「バージョンアップ」ではなく「優待販売」扱いになるらしい。

JBuilder Foundation の時の経験では、ダウンロード版でも登録すると
封筒がくる。そこにある申込番号を Web で入力すればよかった。

Vector でダウンロードしただけの人を追跡するのはさすがに無理だと思うし。
0041デフォルトの名無しさんNGNG
封筒来た。
よく覚えてないけど「高けぇー!!」って感じたのは覚えてるw
0042デフォルトの名無しさんNGNG
Delphiって何?いるか?
0043デフォルトの名無しさんNGNG
あしか
0044DelフサギコNGNG
∀
┷┳━     ,,,,,,,,,,,,,,,∧,,∧   /まさか、機種依存文字の実害がでるとは…
  ┃   〜′,,,,,,,,,,ミ,,゚Д゚彡<  ギコ゚Д゚の目の部分は見えているのだらうか…
  ┻.    UU"""" U U    \ マカーには半カナ見えるのか?
         ゴメンね。次は談話室�Bとかにしてみよう!

>32
>Delフサちゃん、Delphiの一番安いやつってネットから落とせるじゃん?
>これを一緒に付いてくる本が欲しいから買うのは勿体ないかなー。
>それともヘルプもネットから落とせるの?
落とすの面倒なら買い。
4800円のPersonal版の物理媒体以外全部が落とせる。
当然オンラインヘルプも含まれる。

書籍には金を積んだ方がいいと思います。
0045DelフサギコNGNG
   ∧,,∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ  ,,彡 < ダイアグラムは
  ,;゙  ミ     \_____________
 @  ミ
  ゛゛゛゛
   ∧,,∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡 < UMLのように使えるんじゃない?
  ,;゙  ミ     \_____________
 @  ミ
  ゛゛゛゛
0046DelフサギコNGNG
>Del6アプリって95でどのぐらい動くのかな?誰か試した人いる?

   ∧,,∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚彡 < 普通に動くんじゃないの?
  ,;゙  ミ     \_____________
 @  ミ サポ 対象外 ッテ ダケカモ
  ゛゛゛゛
0047むーNGNG
どうも、先日Del6Parsonal落として、遊んでいるものです。
ちょっとお聞きしたいんですが、Freeっていうのはどのような場合に
使用したらよいのでしょうか?
Createと対に考えればいいのかなと、思ってたりしますが、
他にも、使用するべき対象があるのでしょうか?
当方、Javaしかさわったことがなかった為、いまいちよく判りません。

それにしても、Delphiいいですね〜
こんなに簡単に動くものが作れるなんて楽しいです。
0048デフォルトの名無しさんNGNG
Create したものは Free する。そんだけです。
0049DelフサギコNGNG
  ,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,ミ,,゚Д゚彡 < Javaもいいですよね。
  UU""" U U   \_______________
 たまにはageで

JavaはObjectがガベジコレクトされるので破棄する必要は
ないのですが、Java以外のオブジェクト指向言語は
大抵、生成したものは破棄する必要があります。
だから、CreateしたらFreeで破棄します。

他に使用することは普通はないですが、
Button1のクリックイベントで
Button1.Freeとすると
面白い動作なんじゃないでしょうか。
0050デフォルトの名無しさんNGNG
>>49
面白いっつぅか、なんつーか、、、
0051典型的な使い方NGNG
var
 sl: TStringList;
begin
 sl := TStringList.Create;
 try
 sl.LoadFromFile('C:\autoexec.bat');
  Self.Caption := sl.Text;
 finally
  sl.Free
 end;
end;
0052デフォルトの名無しさんNGNG
>>49
AVが出とおもう・・・。
0053デフォルトの名無しさんNGNG
Formを破棄する場合はFreeではなくReleaseずら
0054 ◆RubyOmS2 NGNG
>>49
RubyもGCあるんだけど、、、
おっと、ここでRubyのことはタブーか、、、
0055DelフサギコNGNG
  ,,,,,,,,,,,,,∧,,∧   />>54
〜′,,,,,,,ミ,,゚Д゚彡 < それは失敬でした、GC持つ言語増えてきましたね
  UU""" U U   \
>>52そでしたか?
0056デフォルトの名無しさんNGNG
一度 free したbutton1 を復活させるのはどうやったらいいのでしょうか・・・

procedure TForm1.Button2Click(Sender: TObject);
begin
button1.Create(Self);
end;
とかやってみたんだけどエラーが・・・
0057デフォルトの名無しさんNGNG
GCって God Childですか?

>56
なんて言うエラーがでるの!
0058デフォルトの名無しさんNGNG
>>57

Guilty Child
0059むーNGNG
みなさんありがとうございます!
作る>使う>解放 なんですね。
考えてみると、こちらの方が勝手にやってくれるよりも自然な感じですねー
0060デフォルトの名無しさんNGNG
>>56 こんな感じでどう?

procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Free;
Button1 := nil
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if Button1 = nil then
begin
Button1 := TButton.Create(Self);
Button1.Caption := 'Button1';
Button1.OnClick := Button1Click;
Button1.Parent := Self
end
end;
0061デフォルトの名無しさんNGNG
Button1ClickでButton1.Free は駄目でしょう。
0062デフォルトの名無しさんNGNG
>考えてみると、こちらの方が勝手にやってくれるよりも自然な感じですねー
オブジェクトが複数箇所から参照されてる場合に
誰に開放する責任があるのか?
なんてことを考えはじめると頭痛いよ...
それにやたらとtry finallyのインデントが深くなることもあるし。

やっぱ自律型オブジェクトは自爆に限る(藁
0063デフォルトの名無しさんNGNG
>49
初歩的だけど、
TInterfacedObject派生+Interface実装なクラス作って
Interface参照することによって使うと、楽だね〜

IHoge = interface;
TConcreteHoge = class(TInterfacedObject, IHoge);
FHoge: IHoge;
という状態で
FHoge := TConcreteHoge.Create;といきなりインターフェイス変数に代入して使う。

明示的に捨てたいときはnil代入するだけでいいし
再代入で勝手に前の開放されるし、Java的で便利だ。
0064デフォルトの名無しさんNGNG
>>57  こんなエラー

プロジェクト project1.exe が EAccessViolation クラスの例外を生成しました。
モジュール project1.exe のアドレス 00451250 でアドレス 00000000 に対する読み込み違反が起きました
 ・・・以下略

>>60 同じものを作るって言うよりも新しく作るって感じなんですね。
0065デフォルトの名無しさんNGNG
DFMから読む事もできそうですが。
0066デフォルトの名無しさんNGNG
>63
それって循環参照してても開放される?
foo.tag = bar;
bar.tag = foo;
とか
0067デフォルトの名無しさんNGNG
>>66
それが特にガベコレが必要になる場面なわけだよな。
ガベコレがないから、孤立した循環参照は解放されないと思う。
0068初心者NGNG
つまり、オブジェクトってのは親のオブジェクトに殺されることはあっても
自殺はできないわけね?
0069デフォルトの名無しさんNGNG
殺すのは親じゃなくてもいい。
Free自体が自殺と言えなくもない。

Free後にインスタンスにアクセスしなければ大丈夫だと思う。
0070デフォルトの名無しさんNGNG
>>61

>Button1ClickでButton1.Free は駄目でしょう。

これ、Delphi ver1 のころから、D5まで、インストール後必ずやってみました。
詳細は忘れましたが、AVが出るのと出ないのがありますよね。
0071デフォルトの名無しさんNGNG
他者に参照されているのに自殺しようとするなら、
参照元全部がその後きちんとフォローできないと困るよね。

どうしても勝手に死にたい場合、外からの参照は常に別の
中継オブジェクトを介すようにして、自殺するときは中継オブジェクトに
後のことを頼んでから死ぬ、かねえ。
0072DelフサギコNGNG
>>61>>70
 ∧,,∧     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ ゚Д゚ミ ∫< 全然問題ないですよ
.(ミ  ミっ-~  \__________
〜ミ,,⊃ミ⊃ AクセスVaイオが出る事ないです.

オブジェクトの生成と破棄をしっかりと管理してさえいれば
>>60のコードでOK.
ちょっぴり改造してみますと

procedure TForm1.Button1Click(Sender: TObject);
begin
 FreeAndNil(Button1);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 if not Assigned(Button1) then
 begin
  Button1 := TButton.Create(Self);
  Button1.Parent := Self;
  Button1.Caption := 'Button1';
  Button1.OnClick := Button1Click;
 end;
end;

Button1Clickはイベントハンドラだけど
同時にTForm1のメソッドでありそのメソッドポインタを持つのは
Button1.OnClickだからButton1が破棄されても特に問題ないのです。

>>71
デザパタのアダプターとかと通じるものがあるかな?
0073DelフサギコNGNG
     ∧,,∧   / ̄ ̄ ̄ ̄ ̄
     ミ,,゚Д゚彡< 博多ラーメンうまい!
     ./つ=||||  \_____
   〜ミ \_/

2chをやり過ぎないようにCLXデモの
ストップウォッチを利用して
ネット時間を見つつパソパソするようにしていたのですが
Win2000でブルーバックが出る事しばしば。

どうやら高負荷状態になると
CLXのタイマーか何かがよくない動作をする”らしい”のです。

ストップウォッチを使うのをやめたら出なくなった。
やばいぞCLX!

再現性があるテストを書くのも難しいのですが....
007471NGNG
>>72
Adapterというよりは、Proxyかな。
それに、中継オブジェクトと自殺したいオブジェクトの間は相互リンクして
かつ、死んだあとに代理応答させるためのダミーオブジェクトを
Singletonで作って、中継オブジェクトのところですげかえ、かな。

そのダミーオブジェクトは、何が来ても例外飛ばすような過激なものにしても
いいし、あたりさわりのない応答をしてやり過ごすものもいいか。
0075デフォルトの名無しさんNGNG
>>74
相互参照があると、>>66-67 にはまってしまうな。
中継オブジェクトに対する実オブジェクトからの参照はリンクを確立した時点で
参照カウントを減らしてやれば、外部からの中継オブジェクトへの参照が
全部なくなった時点で中継と実オブジェクト両方が解放できるかな。
0076デフォルトの名無しさんNGNG
Win2kで特権取得できないっす
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1006835177&res=1

使い方は
GetPrivilege('SeSystemtimePrivilege')
0077デフォルトの名無しさんNGNG
>>72

>Button1Clickはイベントハンドラだけど
>同時にTForm1のメソッドでありそのメソッドポインタを持つのは
>Button1.OnClickだからButton1が破棄されても特に問題ないのです。

これはそんなに自明なことですか?
TButton の OnClick イベントハンドラをどこで呼び出しているか、
というと、TButton の先祖である TControl の Click メソッドで

If Assigned(OnClick) then OnClick(self);

のようなコードが実行されているのでしょう。(たぶん)
ですから、このイベントハンドラが終了したときに、この行へ
復帰できるのはなぜなのか分かりません。教えて下さい。
0078デフォルトの名無しさんNGNG
>>77
スタックとオブジェクトは別なので普通に戻れる。
その後Selfが参照されていなければ安全だよ。
007977NGNG
>>78

回答どうもありがとう。

If Assigned(OnClick) then OnClick(self);

この行に戻ったとして、それに続くコードがある場合も
きちんと実行されるのですか?インスタンスがないのに?
0080デフォルトの名無しさんNGNG
なんだか大丈夫、いや大丈夫じゃない
の応酬ですな…

漏れとしては少しでもヴァグを減らすこと考えたら、
そういう、比較的シビアな仕様に張り付きそうな
コードはなるべく書かないほうが(・∀・)イイ!!と思うんだが…
008177NGNG
>>80

そうだね。仰るとおりだと思う。

問題は、なぜAVが出ないで、イベントハンドラから復帰できるのか?
ということです。これは、Delphi の 実装仕様に関わることだと思いま
すよ。

クラスのインスタンスがなくても、スタックをとおして復帰場所が分かっ
ていれば、メソッドそのものは exe の中にあるようだね。
これって、違うかな?
0082DelフサギコNGNG
  ,,,,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,,,,ミ,,゚Д゚彡 < なるほど、言われてみれば...
  UU"""" U U    \_______________
>>77 自明じゃなかったのか。

> If Assigned(OnClick) then OnClick(self);
> この行に戻ったとして、それに続くコードがある場合も
> きちんと実行されるのですか?インスタンスがないのに?

この後のコードで暗黙のSelfを参照してなければいいのかな。
普通イベントハンドラコーディングって
if Asigned() then...の後に通常処理コードが入るようにはなっていないので
アクセスバヰヲが出ないのでしょうね。
って、本当かな。Clickメソッド呼び出している所にまで戻ることはあるのかな

メソッドの内容自体はオブジェクトごとにメモリに存在するわけではなく
暗黙のSelf引数を付けた関数呼び出しみたいなものらしいけど

  ∧,,∧,,,,,,,,,,,,,,,      /ClickイベントならOKで
 ミ゚Д゚,,彡,,,,,,,,,,,,ヾ〜  <  CustomDrawイベントなら×ってのも変だけど
   U U """"UU     \CustomDrawイベントで自分を破棄する勇気はないニャ
 イッテクルカ
008377NGNG
>>82

普通イベントハンドラコーディングって
>if Asigned() then...の後に通常処理コードが入るようにはなっていないので
>アクセスバヰヲが出ないのでしょうね。
>って、本当かな。Clickメソッド呼び出している所にまで戻ることはあるのかな

いや、VCLのソースコードを見てみれば分かりますが

If Assigned(OnClick) then OnClick(self);

のようなコードのあとに end; 以外の実行コードがある例はたくさんあるよ。
Delphi-ML の [61329] Button1 を押すと、なぜ Button1Click が呼び出
されるのか? という解説を読むと、さらに Click → procedure CNCommand( )
→ Dispatch() → WndProc() と、ここまで TButton のメソッドが戻る
ようだね。
0084DelフサギコNGNG
  ∧⊂ヽ, /
  ミ゚Д゚,ミ,ノ< わひょーん
  ミ⊃ ,ミ  \
  ミ,  ,,ミ
  ⊂,,,ノ
    ∪
難しいですね、VCL恐るべし。

こんな流れ?
ユーザーがボタンクリックする
→WM_COMMANDが親Windowに伝わる
→MainWiondowProcで受け取る
→FindControlでButton1を見つける
→Button1にCN_COMMAND投げる
→Button1でそのメッセージ受け取る
→ButtonClickイベント発生

あれ?そしたらClickイベント後は
別にどこにも戻らなくてよさそう?

だから、OnClickイベントでFreeしても一応は安全なのかな。
(やらない方がよさそうというのは納得しました)

procedure TButton.CNCommand(var Message: TWMCommand);
begin
 if Message.NotifyCode = BN_CLICKED then Click;
end;

procedure TButton.Click;
var
 Form: TCustomForm;
begin
 Form := GetParentForm(Self);
 if Form <> nil then Form.ModalResult := ModalResult;
 inherited Click;
end;

procedure TControl.Click;
begin
 { Call OnClick if assigned and not equal to associated action's OnExecute.
  If associated action's OnExecute assigned then call it, otherwise, call
  OnClick. }
 if Assigned(FOnClick) and (Action <> nil) and (@FOnClick <> @Action.OnExecute) then
  FOnClick(Self)
 else if not (csDesigning in ComponentState) and (ActionLink <> nil) then
  ActionLink.Execute(Self)
 else if Assigned(FOnClick) then
  FOnClick(Self);
end;
0085【不幸のレス】 NGNG

このレスを見た人間は七日以内に死にます。

       ※あなたに訪れる死を回避する方法が一つだけあります。
     それはこのコピペを一時間以内に7つ、別のスレに貼り付ける事です
008677NGNG
>>84

>あれ?そしたらClickイベント後は
>別にどこにも戻らなくてよさそう?

あのねぇ....。

どんな関数でも、処理が終われば、呼んだところに戻るでしょ。
イベントドリブンでOSを介したメッセージ処理でも、全ての
イベントハンドラはキューを通るものはメッセージループの
DispatchMessage( ) から呼ばれているのと等価です。また
SendMessage() で送られたメッセージによる処理は、結局の
APIの戻り値として戻すわけですから、やはり、呼んだところまで
戻ります。シングルスレッドのプログラムでは、コードはシークエンシャル
に実行されるわけですから、関数を呼べば、必ず、そこに復帰するはずです。
Delphi のイベントハンドラでも、VCLで実装が複雑になっていて、また
OSのメッセージ処理が介在するので分かりづらいのですが、やはり、同じ
だと思うんですが。
0087DelフサギコNGNG
勉強になって感謝クスコ。やけど
  ∧,,∧     /
 ミ;゜Д゜彡  < そんなスルドイ突込みいれんでも....
  U  U    \
〜ミ  ミ  ダツリョク
  ∪∪

’戻らなくていい’ではなくてイベント後に
’Selfが呼ばれない’って事ですね。

Freeするのじゃなくて
Buttonにもリリースが欲しいとかいう事になるのかな。
008877NGNG
86 の続き

84 で Button1Click() が実行し終わった後、TControl.Click; の最後の行に
復帰し、end; を実行し終わった後、TButton.Click; の inherited Click;
に復帰し、end; のあとに TButton.CNCommand( ) のコードに復帰し、....
という具合だと思うんですが
008977NGNG
>>87

>そんなスルドイ突込みいれんでも....

す、すみません。つい、大声に。

ちなみに、TForm クラスの Release() メソッドですが、
......
ヤメタ
0090DelフサギコNGNG
  ∧,,∧   / せっかくなので>>83でかかれている
 ミ,,゚Д゚彡<  Delphi-ML の [61329]
  ミつ つ  \ のリンクです
〜ミ  ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  U U
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=061329

RADを実現させるためにエライ事複雑なことをしている。
VBの内部コードもこんな感じなのだろうか....

OSごとヘッジに変えてもらって
そんでもってDelphi.NET移行で.......
VCLで.NETアプリとネイティブアプリが作れたらいいかも。
009177NGNG
>>90

>VBの内部コードもこんな感じなのだろうか....

VBでも Button1Click で自殺するのと同じことができる?
VB、全くしりませんので。
0092デフォルトの名無しさんNGNG
Delphi でコムラッド社の PerfectGrid 以外にグリッドの
コンポーネントを販売している製品をご存知の方、
是非、製品名、社名、価格を教えてください。
0093デフォルトの名無しさんNGNG
終了ボタンでアプリケーションを終わらせたいのですが、
どのようにコードを書けば良いのでしょうか?
教えてください。
0094デフォルトの名無しさんNGNG
Close
0095茶碗NGNG
こんばんわ、
何時も色々教えて勉強させてもらってます。
NMFTPを使ってFTPクライアントを作ったんですが
少し変な所があったしソースが付いてなかったんで
IdFTPを使ってみたんですが、TimeOutプロパティがなくて
ネットに繋がってない時など処理が終わってくれません。
例外処理をしてもConnectを呼んだっきり帰ってこないし
Disconnectを呼んでも終わってくれないしで困ってます。
何か良い方法はないでしょうか。スレッドを使うんでしょうか?
IdFTPソースが無い様なんですが私の勘違いでしょうか。

あとListでファイルリストを取得した時、
drwx---r-x 6 aaaa iiii 1024 Nov 26 17:10 uuuu
などをListviewに項目別に表示してるのですが
ファイル名が「uu uu」の様に間に空白があった場合
上手く解析出来ません。良い方法は無いでしょうか。

あと良くあるバイナリ、テキストモード自動判別ってのは
どういう風に判別しているのでしょうか?

質問ばかりで申し訳ありませんが、宜しくお願いします。
0096茶碗NGNG
何時も色々教えてもらって勉強させてもらってます。

↑
の間違いです。教えた事はありません。
0097デフォルトの名無しさんNGNG
>>94
ありがとうございました。
0098ねこまNGNG
>IdFTPを使ってみたんですが、TimeOutプロパティがなくて
>ネットに繋がってない時など処理が終わってくれません。
たしか TIdAntiFreeze を貼り付ければよいと思った
Winshoes7 の頃しか知らないけど

>あとListでファイルリストを取得した時、
ちと意味がわかりません

>あと良くあるバイナリ、テキストモード自動判別ってのは
>どういう風に判別しているのでしょうか?
数百バイト調べるとか,拡張子で判断したります
0099茶碗NGNG
>>98
ねこまさんありがとうございます。
IdAntiFreeze ありました。やってみます。

>ちと意味がわかりません
すいませんでした。
drwx---r-x 6 aaaa iiii 1024 Nov 26 17:10 uuuu
などを空白をトークンにして各要素ごとに分けているのですが
所有者やファイル名の間に空白が使われていて
drwx---r-x 6 aa aa ii ii 1024 Nov 26 17:10 uu uu
などの場合問題があると考えていたのです。FTPコマンドなども調べたのですが
上手くやる方法が無かったので皆さんそういう場合は
どうしているのかなぁっと思った次第です。

IdAntiFreeze やってみます。
ありがとうございました
0100DelフサギコNGNG
  今だ! 100番ゲット!!
   ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       .∩∧,,∧           (´´
     ,,,,,,,,,,ミ゚Д゚,,彡        (´⌒(´
   ど,,,,      ,,,,,二⊃≡≡(´⌒;;;≡≡≡
      ~''(,,,,,づ゙゙  (´⌒(´⌒;;
    ズザーーーーーッ!!


  質問の回答はわからないので
  できません。
   ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       .∩∧,,∧ 
     ,,,,,,,,,,ミ,,゚Д゚彡
   ど,,,,      ,,,,,二⊃
      ~''(,,,,,づ゙゙
  

しっつれーしましたー
∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,,∧           (´´
゚,,彡        (´⌒(´
二⊃≡≡(´⌒;;;≡≡≡
(´⌒(´⌒;;
ズザーーーーーッ!!
0101デフォルトの名無しさんNGNG
Access Violation が発生する仕組みを教えて下さい!
アクセス可能かどうかは、ページ(4KB)毎に管理されているとおもっていましたが、
どうなのでしょう?
メモリ破棄後にアクセスしても、AVが出るとは限らないのですか?

そんでもって、AVはCPU割り込みが発生して、OSに伝えられて、・・・
となるのですか?
■ このスレッドは過去ログ倉庫に格納されています