お世話になります。
D2007StringGridの各セルの文字の配置を中央配置にしたいのですが、方法がわかりません。過去ログやD2007のヘルプをかなり探したのですが、わかりません。(D2007のヘルプファイルのわかり難いと。)
どなたかよろしくお願いいたします。
ところで、前回投稿の際、初めての投稿で、間違ってFusaさんのログに書き込んでしまいました。Fusaさんお許しください。
以下の例ではDelphi2007では動きません??
https://www.petitmonte.com/bbs/answers?question_id=1066
Ruさんありがとうございます。
早速試してみたのですが、反応しません。戻り値をみてみると「0」で実行を失敗しているようです。MSDNやHELPをみながら試してみたのですが、上手くいきません。記述は以下のとおりです。
begin
S:= StringGrid1.Cells[ACol,ARow];
DrawText(Handle,Pchar(S),Length(S),Rect, DT_SingleLine or DT_VCenter or DT_Center );
end;
ほかにSTRINGGRIDの設定が必要なのでしょうか?
リンク先のソースは一部抜粋だったのかな?(HandleはStringGridのHandle指定する必要あり)
Handle を TStringGrid(Sender).Canvas.Handle
に変えてみてもダメですかね?
Ruさん。何度も早速のレス有難うございます。
HandleにCanvasを指定してもだめでした。中央に位置しないし、セル内のテキストが2重になってしまいます。
何か良い知恵がございましたらよろしくお願いいたします。
手元にあるD6の参考書では、ご指摘のとおりの記述でいいように書いてあるのですが。MSDNでも、特に変更はないようにみえるのですが?
文字が二重?ほなら、文字描画出来とるちゅうことやんか。
with StringGrid1 do begin
Canvas.FillRect(Rect);
S := Cells[ACol,ARow];
DrawText(Canvas.Handle, Pchar(S), Length(S), Rect, DT_SingleLine or DT_VCenter or DT_Center);
end;
そうなん?さん。Ruさん。有難うございます。
解決しました。1日このことにかかっていました。
Canvas.FillRect(Rect);この1行!実はこの意味がまだよくわかっていないのですが、HELPで調べてみます。
どうしても分からないい場合、また質問させていただきます。
ほんとにありがとうございました。
ツイート | ![]() |