StrigGridのFixedcol&rowクリックで別フォームを出すには?

解決


みさ  2007-09-16 02:53:07  No: 27795  IP: 192.*.*.*

StringGridのFixedColとFixedRowの部分をクリックすると、Showmodalで別のフォームが呼び出されるようにしたいです。
また、列や行によって呼び出されるフォームを変えたいです。
できるのでしょうか?
ソースの例など書いていただけると助かります!

編集 削除
ヘルプにヘルプ  2007-09-16 09:08:05  No: 27796  IP: 192.*.*.*

>できるのでしょうか?
>ソースの例など書いていただけると...
ヘルプを見れば、それの実現に必要なメソッド、イベントは見当がつくと
思うけどネ。ヘルプを見てもココが分からんというなら、ソコを具体的に
質問してネ。

編集 削除
igy  2007-09-16 09:57:04  No: 27797  IP: 192.*.*.*

OnMouseDownイベントで
MouseToCell メソッドを使ってクリックされたセルの列と行の位置を取得し、
FixedColとFixedRowの部分か判断する
でどうでしょう?

編集 削除
みさ  2007-09-16 18:02:41  No: 27798  IP: 192.*.*.*

var
  Column, Row: Longint;
begin
  StringGrid1.MouseToCell(X, Y, Column, Row);
  StringGrid1.Cells[Column, Row] := 'Col ' + IntToStr(Column) +
    ',Row ' + IntToStr(Row);

ヘルプで探した上記を利用しようと思うのですが、どうもうまくいきません。

StringGrid1.cells[0,0]をクリックするとform2.showmodalのような動きをさせたいです。

編集 削除
igy  2007-09-16 18:17:02  No: 27799  IP: 192.*.*.*

>どうもうまくいきません。

具体的には、どううまくいかないのですか?

編集 削除
みさ  2007-09-16 22:25:20  No: 27800  IP: 192.*.*.*

var
  Column, Row: Longint;
begin
  StringGrid1.MouseToCell(X, Y, Column, Row);

if Column=0 and Row=0 then
begin
form2.showmodal:
end;
end;

などなど座標を指定して、form2が出るようにしようとしているのですが、どうも座標を指定するところから上手くいきません。

編集 削除
igy  2007-09-16 23:53:31  No: 27801  IP: 192.*.*.*

↑のコードはStringGridのOnMouseDownイベントで実行しているのですか?

>座標を指定するところから上手くいきません。

具体的には、どのように上手くいかないのですか?
(コンパイル時にエラーが出るのですか?、実行時に例外エラーなどが発生するのですか?)

編集 削除
みさ  2007-09-17 00:48:35  No: 27802  IP: 192.*.*.*

OnMouseDownイベントです。
エラーはif文の行で「互換性のない型です」と表示されます。

ヘルプで互換性について読んでみたのですが、このエラーはColumnの値が数字だといけないということでしょうか?

編集 削除
うんと  2007-09-17 01:07:35  No: 27803  IP: 192.*.*.*

if (Column=0) and (Row=0) then

じゃないかな

編集 削除
みさ  2007-09-17 01:39:04  No: 27804  IP: 192.*.*.*

動きました!
うんとさん、igyさんご親切にどうもありがとうございました。
出来の悪い初心者ですが、またご指導いただけると幸いです。

編集 削除
半人前  2007-09-18 08:18:03  No: 27805  IP: 192.*.*.*

いわゆる「演算子の優先順位」ね

編集 削除