VB 用のコードを AB 用に変換してください

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: VB 用のコードを AB 用に変換してください

Re: あれ…?

by M.S. » 2005年7月27日(水) 22:30

確かに、桁数が10文字くらいから、計算するとアクセス違反になりましたが、
hira 様が教えて下さったコードを入力するとアクセス違反のエラーがなくなりました。

どうも、ありがとうございました。

あれ…?

by hira » 2005年7月27日(水) 15:07

コード: 全て選択

Dim a As String,b As String,c As String
GetDlgItemText(hMainWnd,EditBox1,b,255)
GetDlgItemText(hMainWnd,EditBox2,c,255)
bとcにメモリが確保されてないっぽいですが…?
変数宣言後、GetDlgItemTextより前に

コード: 全て選択

b=ZeroString(255)
c=ZeroString(255)
を入れてください。
あるときは正しく動いているように見えても、別のときはアクセス違反になることがありますので…。

Re: VB 用のコードを AB 用に変換してください

by M.S. » 2005年7月27日(水) 13:00

コード: 全て選択


Dim a As String,b As String,c As String 
GetDlgItemText(hMainWnd,EditBox1,b,255) 
GetDlgItemText(hMainWnd,EditBox2,c,255) 
a=Str$(Val(b) / Val(c)) 
SetDlgItemText(hMainWnd,Static1,a) 

If Val(c)=0 Then 
SetDlgItemText(hMainWnd,Static1,"0 では割れません" 
Else 
a=Str$(Val(b) / Val(c)) 
SetDlgItemText(hMainWnd,Static1,a) 
End If

を、

Dim a As String,b As String,c As String 
GetDlgItemText(hMainWnd,EditBox1,b,255) 
GetDlgItemText(hMainWnd,EditBox2,c,255) 

If Val(c)=0 Then 
SetDlgItemText(hMainWnd,Static1,"0 では割れません" 
Else 
a=Str$(Val(b) / Val(c)) 
SetDlgItemText(hMainWnd,Static1,a) 
End If
にしたらできました。

Re: VB 用のコードを AB 用に変換してください

by M.S. » 2005年7月27日(水) 12:57

コンパイルはできるのですが、0 での除算ができません。

Re: VB 用のコードを AB 用に変換してください

by Mario2 » 2005年7月27日(水) 12:45

コード: 全て選択


Dim a As String,b As String,c As String
GetDlgItemText(hMainWnd,EditBox1,b,255)
GetDlgItemText(hMainWnd,EditBox2,c,255)
a=Str$(Val(b) + Val(c))
SetDlgItemText(hMainWnd,Static1,a)

コード: 全て選択


If Val(c)=0 Then
SetDlgItemText(hMainWnd,Static1,"0 では割れません"
Else
a=Str$(Val(b) / Val(c))
SetDlgItemText(hMainWnd,Static1,a)
End If
2つあわせると

コード: 全て選択


Dim a As String,b As String,c As String
GetDlgItemText(hMainWnd,EditBox1,b,255)
GetDlgItemText(hMainWnd,EditBox2,c,255)
a=Str$(Val(b) + Val(c))
SetDlgItemText(hMainWnd,Static1,a)

If Val(c)=0 Then
SetDlgItemText(hMainWnd,Static1,"0 では割れません"
Else
a=Str$(Val(b) / Val(c))
SetDlgItemText(hMainWnd,Static1,a)
End If
だと思います。(コンパイル未確認(^_^;;;))
(Static1が「スタティック テキスト」のID、EditBox1,EditBox2が「エディト ボックス」のIDです)
それと、「String」は「BytePtr」かも知れませんが、自分はそこまでは分かりません。
(変数の「a」,「b」,「c」は、ご自由に変えていただいてもかまいません。)

間違えていたらごめんなさい。

VB 用のコードを AB 用に変換してください

by M.S. » 2005年7月27日(水) 11:58

ある月刊誌に載っている計算プログラムの VB のコードを、
AB 使用に書き換えてください。

コード: 全て選択


Result.Caption = Str(Val(Input.Text) _
+ Val(Input2.Text))

コード: 全て選択


If Val(Input2.Text) = 0 Then
    Result.Caption = "0 では割れません"
Else
    Result.Caption = Str(Val(Input1.Text) _
    / Val(Input2.Text))
End If
注意 :
「Iuput1」と「Input2」は AB でいう「エディット ボックス」の ID です。

「Result」は AB でいう「スタティック テキスト」の ID です。

「+ , /」は VB の算術演算子です(AB の算術演算子と同じです)。

ページトップ