[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 09/14 10:51 / Filesize : 241 KB / Number-of Response : 832
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Delphi初心者のための寺子屋



1 名前:デフォルトの名無しさん mailto:sage [2005/11/23(水) 23:31:08 ]
Delphi初心者が問題をコツコツと解きながらレベルアップするためのスレです。


802 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 15:24:36 ]
>>800

すみません、規制で書き込みませんでした。


ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1225706387?fr=shopping_search

こんな感じですが。
よろしくお願いします。



803 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 15:46:02 ]
>>801

タイマーのインターバルを50msec位にして、タイマーのイベントで100msec位かかる処理を行うとどうなりますか?
また、スレッドを50msec毎に作成して100msec位かかる処理を行うとどうなりますか?



804 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 22:31:38 ]
>801
タイマを使うってのはメインスレッドの中で処理が順次行われていくってこと。例えていうなら
中の人が5分おきに電話で起こされて仕事をしてまた寝るってのを繰り返す感じ。だから
処理は並行には行われない。それに対してスレッドのほうは中の人を5人用意してそれぞれに
仕事を割り振って一斉に(でなくてもいいけど)平行して仕事をしてもらう。でも1つしかない
資源は排他的に扱う(一度に一人だけが使用する)ようにしなければならない。

勘違いしやすいのは、タイマはタイマ割り込みではなく、指定した時間が経過したことを
示すフラグでしかない(WM_TIMERはフラグが立ったことの通知)というあたり。

805 名前:デフォルトの名無しさん mailto:sage [2010/05/17(月) 23:45:33 ]
>>803,804
ありがとうございました。
すっきりしますた。

806 名前:デフォルトの名無しさん mailto:sage [2010/05/18(火) 01:06:28 ]
>>802
なんかオレにも出来そうだな。
ちょっと書いてみるか。

807 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 12:26:43 ]
複数のスレッドが並列処理されることは保証されるの? 片方のスレッドが停滞することは
ありえないの?

808 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 12:48:02 ]
>>803の答えはどうなるの? タイマは呼び出しスタックが積み上がるイメージだけど

809 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 13:35:27 ]
>>807
マルチタスクで片方のタスクが停滞することはありえないの?

810 名前:806 mailto:sage [2010/05/22(土) 21:35:02 ]
挫折



811 名前:デフォルトの名無しさん [2010/05/24(月) 14:48:48 ]
Exeのアイコンをタスクバーでは非表示にして、
タスクバーのツールバー(?)に表示するには、
どうしたら良いのでしょう?

812 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 15:15:45 ]
タスクトレイ?

813 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 15:51:40 ]
その通りです!!!

タスクバーのアイコンを非表示にして、タスクトレイにアイコンを表示したいでつ。

814 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 16:10:48 ]
そうか。わかった。

815 名前:デフォルトの名無しさん [2010/05/24(月) 16:12:33 ]
教えて下さいorz

816 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 16:23:18 ]
>>815
えっと、質問何だったっけ?

817 名前:デフォルトの名無しさん mailto:sage [2010/05/24(月) 17:19:24 ]
見つけました:

ttp://kazina.seesaa.net/article/20890953.html

818 名前:デフォルトの名無しさん mailto:sage [2010/05/27(木) 11:18:13 ]
Delphi 6 を最近始めました。
 シリアル通信で マイクロソフトのActiveX MSCOMM32.OCX を使った場合
 処理の途中でポートが開いているか判別するのに

if MSComm1.PortOpen = False then // クローズ状態
begin
{ ポートがクローズしていた場合の処理 }
end else
begin
{ ポートがオープンしていた場合の処理 }
end;

とやるところを、CommX で
www.moriq.com/apollo/ext/comm/Phi/CommX.html
ttp://www.moriq.com/delphi/CommX106.lzh

TCommX.Handleプロパティ
>property Handle: THandle;
>通信ハンドルの値を示します。

819 名前:デフォルトの名無しさん mailto:sage [2010/05/27(木) 11:19:16 ]
-続き-

>このプロパティは、拡張のために用意されています。
>また、オープンされていない状態のときは、
>必ず -1 となるので通信コンポーネントの状態を知ることもできます。
とあるので

if CommX1.Handle = -1 then // クローズ状態?
begin
{ ポートがクローズしていた場合の処理 }
end else
begin
{ ポートがオープンしていた場合の処理 }
end;

とやってもポートopen/close 関わらず片一方の処理しかできません。
ポートの開閉状態を知るのに何かコツでもあるのでしょうか?
検索を掛けても、手動でボタンなどを操作するソースばかりでわかりません。
壮絶な勘違いをしているかもしれませんが、教えてください。

820 名前:818-819 です mailto:sage [2010/05/27(木) 17:43:42 ]
半分 自己解決です。
この場合の if CommX1.Handle = -1 then
−1は
Integer型「符号あり整数値」= −1
 じゃなくて
Cardinal(UINT)型 = 4294967295
 になるんですね・・・

又は 16進数で = FFFFFFFF

if CommX1.Handle = 4294967295 then
if CommX1.Handle = $FFFFFFFF then

で逝けました・・・



821 名前:デフォルトの名無しさん mailto:sage [2010/05/27(木) 21:00:45 ]
つ INVALID_HANDLE_VALUE

822 名前:818-819 です mailto:sage [2010/05/27(木) 22:47:47 ]
>>821 (〃▽〃) おぉそのような文字列があったのですね・・・

しかし、MSCOMM32.OCX から CommX に変えると、シリアル経由で
1秒間隔毎にだらだらと送られてくる文字を足していって #13#10 で区切って文字列にし、
必用な部分を抜いて、別に送ると
これまでの約5倍ほどの遅延が発生するようになってしまいました。

ttp://sourceforge.net/projects/comport/files/
TComPort に切り替えて読み込みの遅延は押さえ込めそうなのですが、
今度は>>818 の処理をさせる書式が見当たりません。
どなたか判る方、教えていただけませんでしょうか?

823 名前:デフォルトの名無しさん mailto:sage [2010/05/27(木) 22:56:05 ]
遅延はやり方が悪いだけだろ

824 名前:デフォルトの名無しさん mailto:sage [2010/05/27(木) 23:55:38 ]
>822
つ Connected

825 名前:824 mailto:sage [2010/05/28(金) 00:00:45 ]
>822
あ、OnRxCharのようなデータの受信イベントで処理するのが常道だから。

826 名前:818-819 です mailto:sage [2010/05/28(金) 01:56:16 ]
>>824
行けました・・とサクっと書きたかったのですが、
最初入れていたのが TComPort component version 1.50 で、その書式だとエラー
なんとか比較的新しいコンポーネントに入れなおして突破できました。
ありがとうございました。
>>825 地道に理解していきます m(_ _)m

827 名前:デフォルトの名無しさん [2010/06/18(金) 14:29:38 ]
BDE無しでODBC使いたいです。

828 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 16:33:12 ]
ADOは?

829 名前:827 mailto:sage [2010/06/18(金) 17:01:15 ]
d

実は、C++ Builder 6 なんですが、ADO経由でODBC出来るんでしたっけ?

830 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 17:07:22 ]
detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1126289866



831 名前:827 mailto:sage [2010/06/18(金) 17:09:14 ]
d

とりあえず、ADOアクセス検討してみまつ。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<241KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef