Add という名前と + という演算子の関係づけがわからんな、その例見ても。
> ヘルプに記述が見当たりません。 ひどいね
954 :
デフォルトの名無しさん :2006/05/22(月) 21:00:50
>>951 ありがとう。みました。
C:\Program Files\Borland\BDS\4.0\Demos\DelphiWin32\VCLWin32\ComplexNumbers\
にサンプルがありました。
でも、ヘルプには、全然ないのね。
955 :
デフォルトの名無しさん :2006/05/22(月) 21:05:27
ComplexNumbersのサンプル面白ですね。 strict privateとか、staticとか新機能使いまくり。 staticは、ヘルプによると静的クラスメソッドだそうですが、クラスメソッドとどう違うんだろ
ヘルプに説明ないのか?
つ 静的クラスメソッド
TMemoの最後の部分にスクロールバーを持ってくるにはどうしたらよいのでしょうか?
SendMessage(Memo1.handle, WM_VSCROLL, SB_BOTTOM, 0);
Memo1.PerForm(EM_SCROLLCARET, SB_BOTTOM, 0); でどうよ
> クラスメソッドとどう違うんだろ 通常のクラスメソッドとは異なり,静的クラスメソッドには Self パラメータがまったくありません。 また,インスタンスメンバーにもアクセスできません。 また,クラスメソッドとは異なり,静的クラスメソッドは,virtual として宣言できません。 クラスプロパティのアクセッサは,静的クラスとして宣言する必要がある
>>960 ヘルプより
EM_SCROLLCARET
wParam = 0 ; // not used now; reserved for future use; must be zero
lParam = 0 ; // not used now; reserved for future use; must be zero
SB_BOTTOM はなんで?
そもそも末尾にキャレットあるとはかぎらんし
>>961 なるほどー
つまり、クラスメンバ(class var)用なのか?
自己流でdelphiをいじっているプログラマです。 複数のアプリケーションを立ち上げている状態で、タイマーで順次特定のボタンやリストボックスを 押下する機能を作りたいと思っています。 この場合、 アプリケーションのウインドウをアクティブにする ↓ マウスカーソルをボタンに移動 ↓ クリックという手順で行うのでしょうか? ヘルプや検索でタイマーは何とか実装することが出来ましたがここで躓いています。 参考になるソース等教えてもらえないでしょうか?
APIのSleepを使うとフォームが固まってしまいます。 フォームを固まらせずに一定時間待機するにはどうすれば良いでしょうか? 何か良いAPIはありますか? #タイマーコンポやスレッドを使うのは最終手段としたいです。
>>967 スレッドを使わずにかー。
指定時間まで、ループ回して、
ループ内で、
Sleep(1);
Application.ProcessMessages;
って手もあるが。
何をどれ位待つかにもよって、最適な手段が変わる。 もっと具体的に処理を示せ。 Application.ProcessMessageという物もあるが、 これは時間のかかる処理をしている間にフォームを固まらせないための処理で、 一定時間待つという用途にはあまり向いてない(予期しない挙動する可能性が増える)
>>966 > ボタンやリストボックスを押下する機能を作りたいと思っています。
別にアクティブにする必要はない。
1)ウィンドウハンドルを取得
2)動作させたいメッセージを送る。
これだけ。でも 1)が一番難しい。
>>968 なるほど!ありがとうございます。
>>969 すいません。具体的にはクライアント/サーバ アプリを作成中で、
クライアントからサーバに連続でデータを取りにいく際、接続開始を
一定時間(200ms程度)待機する際に使いたいと思っています。
973 :
966 :2006/05/23(火) 00:06:10
>>970 ,971
早速のお答え有難うございます。
今日は遅いので明日拝見してみますね。
procedure SleepProcessMessages(Milliseconds: Cardinal); var StartTime, NowTime: Cardinal; begin StartTime := GetTickCount; while true do begin NowTime := GetTickCount; if Milliseconds <= (NowTime - StartTime) then Break; Application.ProcessMessages; end; end; ただし、連続で呼び出すと挙動がおかしくなる。 ほかにあったら俺にも教えてくれ。
>972 それなら悪いこと言わん。スレッドの使い方覚えた方が良い。後々簡単だから。
ネットワークで待つ場合、スレッド必須だとおも。 スレッド覚えといたほうがいいよ・・・。
977 :
967 :2006/05/23(火) 01:40:35
皆さん助言ありがとうございます。 今回はスレッドを使ってみようと思います。
200msって固まるって感覚じゃぁないと思うけど・・・ まぁ、長くするかも知れないのなら漏れもスレッド勧める
979 :
デフォルトの名無しさん :2006/05/23(火) 11:58:17
TLogFont.lfWeightに対応するプロパティは何でしょうか? TCanvas、TFont、TPen一通り探しましたがそれらしいものはなかったです。
TFont.Style の fsBold 。 細かい設定はできない。
981 :
デフォルトの名無しさん :2006/05/23(火) 13:24:49
他のアプリを監視して応答が無くなったら強制終了させるアプリを作りたいのですが、 終了ボタンを押しても終了しないアプリを強制終了させる方法がありましたら教えてください。 postmessageのWM_Closeだけでは無理でした。
WM_TERMINATE
TIdHTTP.ResponseCodeに対する処理って皆さんはどの程度されていますか? ちなみに私は下に書いてるのみです。 200:; //正常処理 403:; //Forbidden 404:; //NotFound 500:; //InternalServerError 503:; //ServiceUnavailable
実行中アプリのフルパスからトップレベルウィンドウのハンドルを得るにはどうすればいいでしょうか?
988 :
985 :2006/05/23(火) 17:03:59
987は私ではないですよ。 んで、日本語じゃないらしいのでもうちっと詳しく書くと テキストファイルにアプリのパスをずらずらっと書いてだ そやつらにWM_CLOSEを送って終了させたい訳だ。 んでWM_CLOSEをPostMessageする為にはウィンドウハンドルがいると。 あらかじめクラス名とかを調べておくのは面倒なのでフルパスからなんとかトップレベルウィンドウのハンドルが得られないかと。 EnumWindowsとかやってみたんだがどれがトップレベルウィンドウかコードから判別する方法が知りたい訳だ。 パスが一致する物全てにWM_CLOSE送ってもいいんだが、かっちょ悪いっしょ?
テキストファイルにずらずらっと書いたアプリを CreateProccess使って自前で起動したのなら プロセスIDからウィンドウハンドル取得が出来る そうでないなら俺もやり方知らんから 知ってる人いたら教えて欲しい
CreateToolhelp32Snapshot は使えないかな
だいいち、一つのフルパスから複数起動されている場合だってあるだろうし。
>あらかじめクラス名とかを調べておくのは面倒なので こっちの方がずっと簡単だわな。FindWindow() つかえるから。
どうでもいいが、他のアプリを勝手にKILLするって・・・・作成罪が成立したら気を付けろよ
どうせ、まともなアプリじゃないんだろなぁ・・
埋め995
Cardinal や Int64 を IntToStr みたいに文字列にしたいのですが、 どうしたら良いのでしょうか?
intToStr は複数定義されて overloadされてるから、心配ない Caption:=IntToStr(Cardinal(-1)); Caption:=IntToStr(-1); は違う結果になる
ヘルプより function IntToStr(Value: Integer): string; overload; function IntToStr(Value: Int64): string; overload; つかえるんじゃないの?
999 :
デフォルトの名無しさん :2006/05/23(火) 19:01:58
すいません上で書いた者ですが、サーバーが繋がっていない時にSocket.SendTextで例外が発生しないのは仕様なんでしょうか?D5です。
1000だとかわいくて素直な彼女が出来る
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。