StringGridのFixedColとFixedRowの部分をクリックすると、Showmodalで別のフォームが呼び出されるようにしたいです。
また、列や行によって呼び出されるフォームを変えたいです。
できるのでしょうか?
ソースの例など書いていただけると助かります!
>できるのでしょうか?
>ソースの例など書いていただけると...
ヘルプを見れば、それの実現に必要なメソッド、イベントは見当がつくと
思うけどネ。ヘルプを見てもココが分からんというなら、ソコを具体的に
質問してネ。
OnMouseDownイベントで
MouseToCell メソッドを使ってクリックされたセルの列と行の位置を取得し、
FixedColとFixedRowの部分か判断する
でどうでしょう?
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のような動きをさせたいです。
>どうもうまくいきません。
具体的には、どううまくいかないのですか?
var
Column, Row: Longint;
begin
StringGrid1.MouseToCell(X, Y, Column, Row);
if Column=0 and Row=0 then
begin
form2.showmodal:
end;
end;
などなど座標を指定して、form2が出るようにしようとしているのですが、どうも座標を指定するところから上手くいきません。
↑のコードはStringGridのOnMouseDownイベントで実行しているのですか?
>座標を指定するところから上手くいきません。
具体的には、どのように上手くいかないのですか?
(コンパイル時にエラーが出るのですか?、実行時に例外エラーなどが発生するのですか?)
OnMouseDownイベントです。
エラーはif文の行で「互換性のない型です」と表示されます。
ヘルプで互換性について読んでみたのですが、このエラーはColumnの値が数字だといけないということでしょうか?
if (Column=0) and (Row=0) then
じゃないかな
動きました!
うんとさん、igyさんご親切にどうもありがとうございました。
出来の悪い初心者ですが、またご指導いただけると幸いです。
いわゆる「演算子の優先順位」ね
編集 削除