はじめまして
初めてABでプログラミングしています。(Ver.4.24)
プログラムの経験はN88BASICのみです。
kadushi氏や皆様方のコードを参考にRS232Cの通信プログラムを作りました。
受信したデータは19項目有り、それをエディタに、1行に2項目ずつ揃えて表示
したいのですが思うようにいきません。1項目目はスペースを入れて揃えたの
ですが、2項目目は1項目目の文字数により位置がずれてしまいます。
そこで*印の2行を加えてみたのですが何も変わりません。
EditBoxに位置を指定して表示する方法をご教授願えないでしょうか。
よろしくお願いいたします。
---前略---
'エディタ表示
Sub AddStr(ByVal hWnd As HWND,ByVal hID As Long,ByVal lpStr As String)
SendMessage(GetDlgItem(hWnd,hID),EM_REPLACESEL,TRUE,lpStr)
End Sub
---中略---
If lstrcmp(DisN, "M1") = 0 Then '1
AddStr(hMainWnd, EditBox1, " 計 測 値")
AddStr(hMainWnd, EditBox1, Ex" "+Str$(Val(Data))+" ℃")
End If
If lstrcmp(DisN, "M2") = 0 Then '2
AddStr(hMainWnd, EditBox1,Ex"\r") '*1
SendMessage(GetDlgItem(hMainWnd,EditBox1),EM_LINESCROLL,50,0) '*2
AddStr(hMainWnd, EditBox1, " 電流検出器入力")
AddStr(hMainWnd, EditBox1, Ex" "+Str$(Val(Data)))
AddStr(hMainWnd, EditBox1, Ex"\r\n")
End If
If lstrcmp(DisN, "AA") = 0 Then '3
AddStr(hMainWnd, EditBox1, " 上 下 限 警 報")
If Val(Data) = 0 Then
AddStr(hMainWnd, EditBox1, " OFF")
Else
AddStr(hMainWnd, EditBox1, " ON")
End If
End If
---後略---
*1で行頭へ移動し、*2で位置を指定したつもりです。
EditBoxに位置を指定して表示する
EditBoxに位置を指定して表示する
最後に編集したユーザー 田中 宏 [ 2008年11月20日(木) 17:55 ], 累計 1 回
Re:EditBoxに位置を指定して表示する
こんばんは、
そちらの目的に沿った返事かどうかわかりませんが...
まず、EditBox自体のフォントが可変ピッチフォント(MS Pゴシック・UIゴシックなど)だと文字によって幅が変化するためキレイに整列できません。「MS ゴシック」などの固定ピッチフォントを使用してみてください。
あと、項目ごとに整列表示する方法として「リストビューコントロール」を検討してみては
いかがでしょうか?
そちらの目的に沿った返事かどうかわかりませんが...
まず、EditBox自体のフォントが可変ピッチフォント(MS Pゴシック・UIゴシックなど)だと文字によって幅が変化するためキレイに整列できません。「MS ゴシック」などの固定ピッチフォントを使用してみてください。
あと、項目ごとに整列表示する方法として「リストビューコントロール」を検討してみては
いかがでしょうか?
リストビューへ表示する
リストビュー? RADツールの「コントロール」一覧に載っていたのですが使用方法等、
解説が無くどうしたものかと、いろいろ検索しているとabfanというサイトにたどり着き
そこに詳しい解説とコードまで表示されていました。
おかげさまでリストビューに表示することが出来る様になりました。
エディタと比べるとコードも増えかなり扱いにくい感じはありますが、表示位置を容易に
指定できるのが利点です。
ABユーザーの方、みなさん親切な方ばかりだなと痛感しました。
これからもよろしくお願いいたします。ありがとうございました。
解説が無くどうしたものかと、いろいろ検索しているとabfanというサイトにたどり着き
そこに詳しい解説とコードまで表示されていました。
おかげさまでリストビューに表示することが出来る様になりました。
エディタと比べるとコードも増えかなり扱いにくい感じはありますが、表示位置を容易に
指定できるのが利点です。
ABユーザーの方、みなさん親切な方ばかりだなと痛感しました。
これからもよろしくお願いいたします。ありがとうございました。