ab.com コミュニティ

ActiveBasicを通したコミュニケーション
前回の訪問日時: 2019年12月11日(水) 08:39 現在時刻 - 2019年12月11日(水) 08:39

All times are UTC+09:00




 [ 4 件の記事 ] 
作成者 メッセージ
 記事の件名: Mid$関数で
投稿記事Posted: 2012年9月29日(土) 09:31 
Dim Data$ As String
Dim buffer$ As String
と変数を定義して、MainWnd_EditBox1_Change()イベントで、
(1)
コード:
	GetDlgItemText(hMainWnd, EditBox1, Data$, 8)
	SetWindowText(GetDlgItem(hMainWnd, EditBox2), Data$)
とすると、EditBox1に入力した文字列がEditBox2にそのまま正常に表示されます。
又、
(2)
コード:
	Data$ ="1234"
	buffer$ =Mid$(Data$, 1, 2)
	SetWindowText(GetDlgItem(hMainWnd, EditBox2), buffer$)
とやっても、EditBox2には文字列"12"が正常に表示されます。

ところが、
(3)
コード:
	GetDlgItemText(hMainWnd, EditBox1, Data$, 8)
	buffer$ =Mid$(Data$, 1, 2)
	SetWindowText(GetDlgItem(hMainWnd, EditBox2), buffer$)
とすると、EditBox1に入力してもEditBox2には何も表示されません。

環境は、Windows XP SP3、ActiveBasic ver.4.24.00で起きています。
Windows Meでも同様なのでOSは関係ないと思います。
(3)は(1)と(2)の組み合わせで、EditBox2にはEditBox1に入力した内容の指定文字列が表示されると思ったのですが、何故でしょうか?


ページトップ
   
 
 記事の件名:
投稿記事Posted: 2012年9月30日(日) 00:20 
オフライン

登録日時: 2009年3月29日(日) 15:45
記事: 106
ポインタの概念が私はまだ、完璧ではないのでそのあたりはカットして……

コード:
Data$ = ZeroString(8)
GetDlgItemText(hMainWnd, EditBox1, VarPtr(Data$), 8)
buffer$ =Mid$(Data$, 1, 2)
SetWindowText(GetDlgItem(hMainWnd, EditBox2), buffer$) 
と、するとうまくいきそうな気がします。
実験していないので定かではありませんが……

_________________
↓個人的ソフト置き場
http://www.software.jpn.org/
↓萌えゲー製作とかしていたい
http://www.holygate.jpn.org/


ページトップ
   
 
 記事の件名:
投稿記事Posted: 2012年9月30日(日) 02:10 
オフライン

登録日時: 2005年5月31日(火) 17:59
記事: 899
お住まい: 東京都
水波形さんの方法でうまくいきます。

このほか、エディットボックスの内容の取得の一番最後の淡幻星さんの発言のところにある拙作GetWindowTextStr関数でも可能です。
コード:
GetWindowTextStr(GetDlgItem(hMainWnd, EditBox2), Data$)
buffer$ =Mid$(Data$, 1, 2)
SetWindowText(GetDlgItem(hMainWnd, EditBox2), buffer$) 
GetWindowText関数はABのStringのことなど露知らずです。なので、水波形さん案のZeroStringにせよGetWindowTextStrにせよ、こちら側でStringとのすりあわせを行ってあげないといけないということなのです。


ページトップ
   
 
 記事の件名:
投稿記事Posted: 2012年9月30日(日) 08:49 
水波形さん、イグトランスさん ヒント 大変ありがとうございます。

水波形さんの方法はMicrosoftへのエラ-報告画面が出たので止めました。
イグトランスさんのGetWindowTextStr関数とCode(EditBox1に修正して)でEditBox2に指定どおりの文字列が表示されました。


ページトップ
   
 
 [ 4 件の記事 ] 

All times are UTC+09:00


オンラインデータ

このフォーラムを閲覧中のユーザー: CCBot, SemrushBot & ゲスト[0人]


トピック投稿: 不可
返信投稿: 不可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

ページ移動:  
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean