ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室�A
■ このスレッドは過去ログ倉庫に格納されています
0001Delフサギコ
NGNG/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∬ ∧,,∧ | Delphi や Borland に関する話題
~━っミ ゚Д゚彡,, < 雑談や質問を、しながら
∀._(,,,~ ,,,~⊃_ | マターリくつろごうや
━┳┷ |. ,(~ヽ,,,ミ. \_________
┃...| ̄ ̄し'J.  ̄ ̄ ̄
┻ ヽ ̄ ̄ ̄ ̄ ̄ ̄ ̄ AA ハリマクッテ ヨシ
0002Delフサギコ
NGNG ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´
∧,,∧,,,,,, ) (´⌒(´
⊂ミ゚Д゚⊂ `つ≡≡≡(´⌒;;;≡≡≡
""""" (´⌒(´⌒;;
ズザーーーーーッ
前スレ
ミ,,゚Д゚彡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デフォルトの名無しさん
NGNGPCをフォーマットしました。
Delphi6で作ったプログラムのバックアップを取りました。
Windowsを再インストールしました。
Delphi6を再び入れようとしましたが、途中でエラーが発生し、
インストールできません。
仕方ないので Delphi5 をインストールしました。
Del6 → Del5 の dfm変換プログラムを使い、
Del6で作ったプログラムをDel5で問題なく開いていました。
ところが、とある dfm は変換に失敗し、うまく開けませんでした。
そこで変換前のファイルをエディタで見たところ、あきらかに
他の dfm とはフォーマットが違います。範囲外の文字コードが
あるのか、半角の■もちらほら見かけますし、まともに改行されていません。
バックアップファイル df~ も見たのですが、同じような内容です。
したがって、Rへの焼きミスではなさそうです。
ソースをウプするので、どなたか修正できる方はいませんか。
00087
NGNGhttp://www.geocities.co.jp/SiliconValley-PaloAlto/4845/untMain.dfm.txt
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNGそれがですね、内部エラーが発生してしまうのですよ。
以前は平気だったのに…
0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNGDelphi5のアイコンも正しく表示されなかったし
(いぜんは正しく表示された)
これはハードウェアアクセラレータを最低にすることで対処できましたが。
0013デフォルトの名無しさん
NGNG今、簡単なFTPソフト作りにチャレンジしているのですが、過去の履歴を.iniファイルで
管理しようと思うのですが取り扱いがイマイチ分かりません。
理想としては5つほどの履歴を記録してComboBoxへ表示させたいのですが、
色々なサイトを参考に作ったファイルだと毎回過去の履歴を上書きしてしまい、
前々回以前の履歴が記録されません。
これはどのようにすれば解決できるのでしょうか。
ご教授いただければ幸いです…。
0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNGま、DelphiプログラマがWindows使ってないってことはあまりないんじゃない?
って、Kylixがあるか...
0016デフォルトの名無しさん
NGNG毎回履歴を全部書き直す。
0017デフォルトの名無しさん
NGNGTComboBox.Text記録してないか?
TComboBox.Items記録しとけ
001813
NGNGちょっと今日は用事があってDelphi触れないのですが、明日
チャレンジしてみたいと思います。
__ __________________________
∨
∧∧
(; ´ー`) アドバイス デキルヨウナ タチバニ
(っ且~_ ナレルヨウ ガンバリマス
0019デフォルトの名無しさん
NGNGまぁDelphiはWindowsしかないとは言え、ねぇ
マナー違反ではあるな。ウン。
フサギコ反省しろよ!
0020デフォルトの名無しさん
NGNG∧,,∧ ∬ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,゚Д゚ノ,っ━~ < 貴様等Delphiの話しろ
_と~,,, ~,,,ノ_. ∀ \_________
.ミ,,,/~), .| ┷┳━
 ̄ ̄ ̄ .し'J ̄ ̄|... ┃
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ .┻
いやみ言いたいなら機種依存文字チェッカーのコードあげるか
かちゅのdllでも配布して間接的に家
0021Delフサギコ
NGNGミ,,゚Д゚彡 < 機種依存文字くらいで騒がずに
ミ つ且~~ \___________
〜ミ,,,,,, ,,ミ
マナー違反で反省って.....ココハ 2ch
このスレの人は2chネラーじゃなくて
純粋培養されたDelphianの居場所かよ…
0022デフォルトの名無しさん
NGNGフォーム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いえ、フォーム1には、ショートカットが沢山あります。
フォーム2では使用しないショートカットもフォーム1にあるので、
困っています。
0026デフォルトの名無しさん
NGNGどなたか Del6 で以下の dfm データを開き、テキスト形式で再度保存し、
[email protected]
に送信してくださいませんか。
http://www.geocities.co.jp/SiliconValley-PaloAlto/4845/untMain.dfm.txt
0027デフォルトの名無しさん
NGNG「不正なImageList」って出るよ。
0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNGミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室�A ←最後の文字、
「まる2」 ってかいてあるの。
マカーには見えないけど、DELはWIN版しかでてないから問題ないよね。
0031デフォルトの名無しさん
NGNGDel6アプリって95でどのぐらい動くのかな?誰か試した人いる?
いまD5Pro使ってるから気にしてないんだけど、D6も使ってみたくてねぇ
0032デフォルトの名無しさん
NGNGフサギコ呼んでるよ。
自分も気になったし。
003322
NGNG0034初心者
NGNGDelphi6のコードエディタにダイアグラムってのがあるんですけど、あれ使ってる人って
いるんでしょうか?何が便利なのかいまいちわかりません。
あれがあると何が嬉しいんでしょうか?
0035デフォルトの名無しさん
NGNGデータベース関連で、三つや四つのコンポーネントにリンクを張らなきゃ使えない
場合、ダイアグラムにコンポーネントを落としてから適当に関連をつけさせると
かってにプロパティ参照を解決してくれる。
それをそのまま残しておくと、簡易ドキュメントにはなる。
0036買いたいんだけど初心者
NGNGプロフェッショナルを買っておいても
損はないでしょうか?
0037デフォルトの名無しさん
NGNGパーソナルはただなんだから,手に入れて使ってみたら?
開発するにはプロフェッショナルの方がソースが手に入る分,良いけど。
0038デフォルトの名無しさん
NGNGいきなりプロフェッショナル買うより、バージョンアップの方が安いYO!
0039デフォルトの名無しさん
NGNG7がでたときもね。
0040デフォルトの名無しさん
NGNG買い替えの値段の話か。
「バージョンアップ」ではなく「優待販売」扱いになるらしい。
JBuilder Foundation の時の経験では、ダウンロード版でも登録すると
封筒がくる。そこにある申込番号を Web で入力すればよかった。
Vector でダウンロードしただけの人を追跡するのはさすがに無理だと思うし。
0041デフォルトの名無しさん
NGNGよく覚えてないけど「高けぇー!!」って感じたのは覚えてるw
0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNG0044Delフサギコ
NGNG┷┳━ ,,,,,,,,,,,,,,,∧,,∧ /まさか、機種依存文字の実害がでるとは…
┃ 〜′,,,,,,,,,,ミ,,゚Д゚彡< ギコ゚Д゚の目の部分は見えているのだらうか…
┻. UU"""" U U \ マカーには半カナ見えるのか?
ゴメンね。次は談話室�Bとかにしてみよう!
>32
>Delフサちゃん、Delphiの一番安いやつってネットから落とせるじゃん?
>これを一緒に付いてくる本が欲しいから買うのは勿体ないかなー。
>それともヘルプもネットから落とせるの?
落とすの面倒なら買い。
4800円のPersonal版の物理媒体以外全部が落とせる。
当然オンラインヘルプも含まれる。
書籍には金を積んだ方がいいと思います。
0045Delフサギコ
NGNGミ ,,彡 < ダイアグラムは
,;゙ ミ \_____________
@ ミ
゛゛゛゛
∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,゚Д゚彡 < UMLのように使えるんじゃない?
,;゙ ミ \_____________
@ ミ
゛゛゛゛
0046Delフサギコ
NGNG∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,゚Д゚彡 < 普通に動くんじゃないの?
,;゙ ミ \_____________
@ ミ サポ 対象外 ッテ ダケカモ
゛゛゛゛
0047むー
NGNGちょっとお聞きしたいんですが、Freeっていうのはどのような場合に
使用したらよいのでしょうか?
Createと対に考えればいいのかなと、思ってたりしますが、
他にも、使用するべき対象があるのでしょうか?
当方、Javaしかさわったことがなかった為、いまいちよく判りません。
それにしても、Delphiいいですね〜
こんなに簡単に動くものが作れるなんて楽しいです。
0048デフォルトの名無しさん
NGNG0049Delフサギコ
NGNG〜′,,,,,,,ミ,,゚Д゚彡 < Javaもいいですよね。
UU""" U U \_______________
たまにはageで
JavaはObjectがガベジコレクトされるので破棄する必要は
ないのですが、Java以外のオブジェクト指向言語は
大抵、生成したものは破棄する必要があります。
だから、CreateしたらFreeで破棄します。
他に使用することは普通はないですが、
Button1のクリックイベントで
Button1.Freeとすると
面白い動作なんじゃないでしょうか。
0050デフォルトの名無しさん
NGNG面白いっつぅか、なんつーか、、、
0051典型的な使い方
NGNGsl: TStringList;
begin
sl := TStringList.Create;
try
sl.LoadFromFile('C:\autoexec.bat');
Self.Caption := sl.Text;
finally
sl.Free
end;
end;
0052デフォルトの名無しさん
NGNGAVが出とおもう・・・。
0053デフォルトの名無しさん
NGNGRubyもGCあるんだけど、、、
おっと、ここでRubyのことはタブーか、、、
0055Delフサギコ
NGNG〜′,,,,,,,ミ,,゚Д゚彡 < それは失敬でした、GC持つ言語増えてきましたね
UU""" U U \
>>52そでしたか?
0056デフォルトの名無しさん
NGNGprocedure TForm1.Button2Click(Sender: TObject);
begin
button1.Create(Self);
end;
とかやってみたんだけどエラーが・・・
0057デフォルトの名無しさん
NGNG>56
なんて言うエラーがでるの!
0058デフォルトの名無しさん
NGNGGuilty Child
0059むー
NGNG作る>使う>解放 なんですね。
考えてみると、こちらの方が勝手にやってくれるよりも自然な感じですねー
0060デフォルトの名無しさん
NGNGprocedure 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デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNGオブジェクトが複数箇所から参照されてる場合に
誰に開放する責任があるのか?
なんてことを考えはじめると頭痛いよ...
それにやたらとtry finallyのインデントが深くなることもあるし。
やっぱ自律型オブジェクトは自爆に限る(藁
0063デフォルトの名無しさん
NGNG初歩的だけど、
TInterfacedObject派生+Interface実装なクラス作って
Interface参照することによって使うと、楽だね〜
IHoge = interface;
TConcreteHoge = class(TInterfacedObject, IHoge);
FHoge: IHoge;
という状態で
FHoge := TConcreteHoge.Create;といきなりインターフェイス変数に代入して使う。
明示的に捨てたいときはnil代入するだけでいいし
再代入で勝手に前の開放されるし、Java的で便利だ。
0064デフォルトの名無しさん
NGNGプロジェクト project1.exe が EAccessViolation クラスの例外を生成しました。
モジュール project1.exe のアドレス 00451250 でアドレス 00000000 に対する読み込み違反が起きました
・・・以下略
>>60 同じものを作るって言うよりも新しく作るって感じなんですね。
0065デフォルトの名無しさん
NGNG0066デフォルトの名無しさん
NGNGそれって循環参照してても開放される?
foo.tag = bar;
bar.tag = foo;
とか
0067デフォルトの名無しさん
NGNGそれが特にガベコレが必要になる場面なわけだよな。
ガベコレがないから、孤立した循環参照は解放されないと思う。
0068初心者
NGNG自殺はできないわけね?
0069デフォルトの名無しさん
NGNGFree自体が自殺と言えなくもない。
Free後にインスタンスにアクセスしなければ大丈夫だと思う。
0070デフォルトの名無しさん
NGNG>Button1ClickでButton1.Free は駄目でしょう。
これ、Delphi ver1 のころから、D5まで、インストール後必ずやってみました。
詳細は忘れましたが、AVが出るのと出ないのがありますよね。
0071デフォルトの名無しさん
NGNG参照元全部がその後きちんとフォローできないと困るよね。
どうしても勝手に死にたい場合、外からの参照は常に別の
中継オブジェクトを介すようにして、自殺するときは中継オブジェクトに
後のことを頼んでから死ぬ、かねえ。
0072Delフサギコ
NGNG∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ ゚Д゚ミ ∫< 全然問題ないですよ
.(ミ ミっ-~ \__________
〜ミ,,⊃ミ⊃ 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!
再現性があるテストを書くのも難しいのですが....
007471
NGNGAdapterというよりは、Proxyかな。
それに、中継オブジェクトと自殺したいオブジェクトの間は相互リンクして
かつ、死んだあとに代理応答させるためのダミーオブジェクトを
Singletonで作って、中継オブジェクトのところですげかえ、かな。
そのダミーオブジェクトは、何が来ても例外飛ばすような過激なものにしても
いいし、あたりさわりのない応答をしてやり過ごすものもいいか。
0075デフォルトの名無しさん
NGNG相互参照があると、>>66-67 にはまってしまうな。
中継オブジェクトに対する実オブジェクトからの参照はリンクを確立した時点で
参照カウントを減らしてやれば、外部からの中継オブジェクトへの参照が
全部なくなった時点で中継と実オブジェクト両方が解放できるかな。
0076デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1006835177&res=1
使い方は
GetPrivilege('SeSystemtimePrivilege')
0077デフォルトの名無しさん
NGNG>Button1Clickはイベントハンドラだけど
>同時にTForm1のメソッドでありそのメソッドポインタを持つのは
>Button1.OnClickだからButton1が破棄されても特に問題ないのです。
これはそんなに自明なことですか?
TButton の OnClick イベントハンドラをどこで呼び出しているか、
というと、TButton の先祖である TControl の Click メソッドで
If Assigned(OnClick) then OnClick(self);
のようなコードが実行されているのでしょう。(たぶん)
ですから、このイベントハンドラが終了したときに、この行へ
復帰できるのはなぜなのか分かりません。教えて下さい。
0078デフォルトの名無しさん
NGNGスタックとオブジェクトは別なので普通に戻れる。
その後Selfが参照されていなければ安全だよ。
007977
NGNG回答どうもありがとう。
If Assigned(OnClick) then OnClick(self);
この行に戻ったとして、それに続くコードがある場合も
きちんと実行されるのですか?インスタンスがないのに?
0080デフォルトの名無しさん
NGNGの応酬ですな…
漏れとしては少しでもヴァグを減らすこと考えたら、
そういう、比較的シビアな仕様に張り付きそうな
コードはなるべく書かないほうが(・∀・)イイ!!と思うんだが…
008177
NGNGそうだね。仰るとおりだと思う。
問題は、なぜ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イベントで自分を破棄する勇気はないニャ
イッテクルカ
008377
NGNG普通イベントハンドラコーディングって
>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つ、別のスレに貼り付ける事です
008677
NGNG>あれ?そしたらClickイベント後は
>別にどこにも戻らなくてよさそう?
あのねぇ....。
どんな関数でも、処理が終われば、呼んだところに戻るでしょ。
イベントドリブンでOSを介したメッセージ処理でも、全ての
イベントハンドラはキューを通るものはメッセージループの
DispatchMessage( ) から呼ばれているのと等価です。また
SendMessage() で送られたメッセージによる処理は、結局の
APIの戻り値として戻すわけですから、やはり、呼んだところまで
戻ります。シングルスレッドのプログラムでは、コードはシークエンシャル
に実行されるわけですから、関数を呼べば、必ず、そこに復帰するはずです。
Delphi のイベントハンドラでも、VCLで実装が複雑になっていて、また
OSのメッセージ処理が介在するので分かりづらいのですが、やはり、同じ
だと思うんですが。
0087Delフサギコ
NGNG∧,,∧ /
ミ;゜Д゜彡 < そんなスルドイ突込みいれんでも....
U U \
〜ミ ミ ダツリョク
∪∪
’戻らなくていい’ではなくてイベント後に
’Selfが呼ばれない’って事ですね。
Freeするのじゃなくて
Buttonにもリリースが欲しいとかいう事になるのかな。
008877
NGNG84 で Button1Click() が実行し終わった後、TControl.Click; の最後の行に
復帰し、end; を実行し終わった後、TButton.Click; の inherited Click;
に復帰し、end; のあとに TButton.CNCommand( ) のコードに復帰し、....
という具合だと思うんですが
0090Delフサギコ
NGNGミ,,゚Д゚彡< Delphi-ML の [61329]
ミつ つ \ のリンクです
〜ミ ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
U U
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=061329
RADを実現させるためにエライ事複雑なことをしている。
VBの内部コードもこんな感じなのだろうか....
OSごとヘッジに変えてもらって
そんでもってDelphi.NET移行で.......
VCLで.NETアプリとネイティブアプリが作れたらいいかも。
0092デフォルトの名無しさん
NGNGコンポーネントを販売している製品をご存知の方、
是非、製品名、社名、価格を教えてください。
0093デフォルトの名無しさん
NGNGどのようにコードを書けば良いのでしょうか?
教えてください。
0094デフォルトの名無しさん
NGNG0095茶碗
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ありがとうございました。
0098ねこま
NGNG>ネットに繋がってない時など処理が終わってくれません。
たしか TIdAntiFreeze を貼り付ければよいと思った
Winshoes7 の頃しか知らないけど
>あとListでファイルリストを取得した時、
ちと意味がわかりません
>あと良くあるバイナリ、テキストモード自動判別ってのは
>どういう風に判別しているのでしょうか?
数百バイト調べるとか,拡張子で判断したります
0099茶碗
NGNGねこまさんありがとうございます。
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 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
.∩∧,,∧ (´´
,,,,,,,,,,ミ゚Д゚,,彡 (´⌒(´
ど,,,, ,,,,,二⊃≡≡(´⌒;;;≡≡≡
~''(,,,,,づ゙゙ (´⌒(´⌒;;
ズザーーーーーッ!!
質問の回答はわからないので
できません。
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
.∩∧,,∧
,,,,,,,,,,ミ,,゚Д゚彡
ど,,,, ,,,,,二⊃
~''(,,,,,づ゙゙
しっつれーしましたー
∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,,∧ (´´
゚,,彡 (´⌒(´
二⊃≡≡(´⌒;;;≡≡≡
(´⌒(´⌒;;
ズザーーーーーッ!!
0101デフォルトの名無しさん
NGNGアクセス可能かどうかは、ページ(4KB)毎に管理されているとおもっていましたが、
どうなのでしょう?
メモリ破棄後にアクセスしても、AVが出るとは限らないのですか?
そんでもって、AVはCPU割り込みが発生して、OSに伝えられて、・・・
となるのですか?
■ このスレッドは過去ログ倉庫に格納されています