|
前頁からの続きです。
前頁ではお絵描きソフトについて考えてみました。複数PCで特定のデータを同時編集する事を考える場合、他PCとのコミュニケーションを取る必要が出てくる場合も多いでしょう。1つの部屋内で作業をする場合は実際に話をしながらでも可能ですが、部屋が広い場合に端と端では聞き取りにくくなるかもしれませんし、複数の部屋、フロアで作業しているかもしれません。ひょっとすると WANで遠隔地とアクセスしているかもしれません。そういう場合は、掲示板機能/チャット機能/メール機能、TV会議室のような機能も有り得ます。そこまで行くと、それ専用のソフトを利用すれば良いですが、チャット機能のようなものがある方が便利かもしれません。
前回 d020 を機能追加した d021 を作成します。
チャット機能といっても、1行入力を行ってデータ登録し、登録したデータ内容を表示するだけです。
テーブル「CHAT」(TABLE5)
名前 | 変数名 | 内容 |
登録番号 | N | 整数 1,2,3,… 他と重複しない |
作成者 | MN | 整数 「MEMBER」の登録番号 |
文章 | CTEXT | 文字(最大半角80文字) |
日付 | CDATE | 文字(半角8文字)yyyymmdd形式 |
時間 | CTIME | 文字(半角6文字)hhmmss形式 |
チャットを行う画面と、登録した内容を後で編集するための画面を用意します。このチャットを行う画面でも、タイマ割込により自動更新を行うようにしておきます。チャット画面はMDI子画面として表示しますが、テーブル「CHAT」は1つしかありませんので、チャット画面も1つだけ表示するようにします。
なお、チャットの文章はかなり多くなる事も予想されますので、データ削除は表を範囲選択して一括削除する事が出来るようにしています。
次に、文章で会話をするだけでは分かり難い場合もありますが、マウスで画面のココ!を指し示したいような場合、相手のマウス位置を分かるようにしたい=自分のマウス位置を相手に分からせたい、という事をしたいと想定します。
つまり、タイマ割込で自分のマウス位置を取得しデータベースに登録、データベースから他PCのマウス位置を取得して画面に表示、というような事をします。
テーブル「MOUSEPOS」(TABLE6)
名前 | 変数名 | 内容 |
作成者番号 | MN | 整数 「MEMBER」の登録番号 |
マウス状態 | ST | 整数 0:無し 1:有り |
マウス位置X | MX | 整数 画面座標(ドット) |
マウス位置Y | MY | 整数 画面座標(ドット) |
チャットメニューの下に「マウスポインタ」項目を追加し、その機能を実行している場合にのみ、こちらのマウス位置を登録し、他PCのマウス位置を取得して、マウスポインタの場所をフォーム表示によって示すようにします。この機能は1画面のみ実行出来るようにして、閉じた場合には各マウスポインタ画面を閉じるようにします。タイマ割込は長すぎるとマウスポインタの位置がなかなか反映されなくなりますが短すぎると負荷が掛かってしまいます。取りあえず1秒毎としています。
メニュー項目の「マウスポインタ」を実行すると、自分のマウス位置を登録し、他PCのマウス位置が上記のような水色の画面(Form13;Unit13.pas)で表示されます。Form13の画面は上に来て欲しいので、Form13 の FormStyle プロパティを「fsStayOnTop」にしています(指定していないと画面の下側になってしまって画面上に見えなくなる場合があります)。この「マウスポインタ」画面を閉じると、他PCのマウス位置を示す画面も閉じるようになっています。この画面を閉じずに本ソフトを終了すると他PCに自分のマウスポインタが残ってしまいますので注意して下さい。
但し、リモートソフトではありませんので、自分のPCと他PCの画面状態が同じであるとは限りません。マウス位置は Form1 からの相対座標として扱っていますが、Form1画面内の各画面の位置については異なる場合が多いと思われますので、先に、対象となる画面の位置を左上に合わせる等の相互やり取りが必要になると思われます。
|
|
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
シェアウェア
Script!World
データベース
A B C D
E F G H
I J K L
M N O P
Q R S T
U V W X
Y Z
|