作成者 |
メッセージ |
|
|
また新しいトピックを作りましたんで、そこのほうに書き込みお願いします。
by:雷電
また新しいトピックを作りましたんで、そこのほうに書き込みお願いします。
by:雷電
|
|
|
投稿記事 |
Posted: 2006年1月16日(月) 21:03 |
|
|
|
|
|
> 1.20になったら、ツリービューも入れよかなーーー。
> というより今から教えてもらいたいんですけどね。
構いませんが、ツリービューに関しては usher@@さんのサイトが参考になります。
ここの、「ActiveBasicFan」「Control Windows」「11.ツリービューの使い方」を読んだ上で分からないことが有ったら質問するのが賢いと思います。
当たり前ですが、その時は新しくトピックを作って下さいね。
> 1.20になったら、ツリービューも入れよかなーーー。 > というより今から教えてもらいたいんですけどね。 構いませんが、ツリービューに関しては[url=http://abfan.active.client.jp/]usher@@さん[/url]のサイトが参考になります。 ここの、「ActiveBasicFan」「Control Windows」「11.ツリービューの使い方」を読んだ上で分からないことが有ったら質問するのが賢いと思います。 当たり前ですが、その時は新しくトピックを作って下さいね。
|
|
|
投稿記事 |
Posted: 2006年1月14日(土) 22:04 |
|
|
|
|
|
プログラム完成です
AppendMIssionEditor Ver1.00 完成
やっと。
1.20になったら、ツリービューも入れよかなーーー。
そのときもよろしくお願いします。
というより今から教えてもらいたいんですけどね。
プログラム完成です
AppendMIssionEditor Ver1.00 完成
やっと。 1.20になったら、ツリービューも入れよかなーーー。
そのときもよろしくお願いします。 というより今から教えてもらいたいんですけどね。
|
|
|
投稿記事 |
Posted: 2006年1月14日(土) 21:40 |
|
|
|
|
|
> 入力してやってみた。
> やばい。バグで、危なくなった、。。。
どんなバグか気になりますね...。
> となるのはいいんだけど、1回目押すと
> となって、2回目に押すと
> となっていくような、コードはありませんか?
押す度に数値が増えていくようにしたいのであれば、下のようになります。
[ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]コード: 'グローバル領域に整数型変数cntを宣言
Dim cnt=0 As Long
Sub MainWnd_CommandButton1_Click()
Dim bStr[256] As Byte
cnt=cnt+1
'28を超えたら1に戻す
If 28<cnt Then
cnt=1
End If
lstrcpy(bStr,"[UnitSet"+Str$(cnt)+Ex"]\r\n")
AddEditBoxText(hMainWnd,EditBox2,bStr)
End Sub
エディットボックスが初期化されて困るなら初期化の部分を飛ばして下さい。
> これは、あるプログラムを参考に作っているものです。
自分も昔、こういった入力支援プログラムを作ったことがあります。
> 入力してやってみた。 > やばい。バグで、危なくなった、。。。 どんなバグか気になりますね...。
> となるのはいいんだけど、1回目押すと > となって、2回目に押すと > となっていくような、コードはありませんか? 押す度に数値が増えていくようにしたいのであれば、下のようになります。 [hide][code]'グローバル領域に整数型変数cntを宣言 Dim cnt=0 As Long
Sub MainWnd_CommandButton1_Click() Dim bStr[256] As Byte
cnt=cnt+1 '28を超えたら1に戻す If 28<cnt Then cnt=1 End If lstrcpy(bStr,"[UnitSet"+Str$(cnt)+Ex"]\r\n") AddEditBoxText(hMainWnd,EditBox2,bStr) End Sub[/code][/hide] エディットボックスが初期化されて困るなら初期化の部分を飛ばして下さい。
> これは、あるプログラムを参考に作っているものです。 自分も昔、こういった入力支援プログラムを作ったことがあります。
|
|
|
投稿記事 |
Posted: 2006年1月14日(土) 20:42 |
|
|
|
|
|
追記します。
[ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]コード: Dim hEdit As HWND
Dim cnt As Long
Dim bStr[256] As Byte
hEdit=GetDlgItem(hMainWnd,EditBox1)
'エディットボックスの描写を無効
LockWindowUpdate(hEdit)
'エディットボックスの初期化
SetWindowText(hEdit,NULL)
For cnt=1 To 28
lstrcpy(bStr,"[UnitSet"+Str$(cnt)+Ex"]\r\n")
'自作関数
AddEditBoxText(hMainWnd,EditBox1,bStr)
Next
'エディットボックスの描写を有効
LockWindowUpdate(NULL)
こうすると、前に記入していた文字が消えてしまうんです。
初期化と入っているので、消えるのは当たり前ですが、、、
参考にしているプログラム
http://www.geocities.jp/niikata4747/twb/AppendMaster/
です。
追記します。
[hide][code]Dim hEdit As HWND Dim cnt As Long Dim bStr[256] As Byte
hEdit=GetDlgItem(hMainWnd,EditBox1) 'エディットボックスの描写を無効 LockWindowUpdate(hEdit) 'エディットボックスの初期化 SetWindowText(hEdit,NULL) For cnt=1 To 28 lstrcpy(bStr,"[UnitSet"+Str$(cnt)+Ex"]\r\n") '自作関数 AddEditBoxText(hMainWnd,EditBox1,bStr) Next 'エディットボックスの描写を有効 LockWindowUpdate(NULL)[/code][/hide]
こうすると、前に記入していた文字が消えてしまうんです。 初期化と入っているので、消えるのは当たり前ですが、、、
参考にしているプログラム [url]http://www.geocities.jp/niikata4747/twb/AppendMaster/[/url]
です。
|
|
|
投稿記事 |
Posted: 2006年1月14日(土) 20:25 |
|
|
|
|
|
入力してやってみた。
やばい。バグで、危なくなった、。。。
[UnitSet1]
[UnitSet2]
.
.
.
[UnitSet28]
となるのはいいんだけど、1回目押すと
[UnitSet1]
.
.
.
.
となって、2回目に押すと
[UnitSet2]
.
.
.
.
.
となっていくような、コードはありませんか?
あれば幸いです。
これは、あるプログラムを参考に作っているものです。
入力してやってみた。 やばい。バグで、危なくなった、。。。
[UnitSet1] [UnitSet2] . . . [UnitSet28]
となるのはいいんだけど、1回目押すと
[UnitSet1] . . . .
となって、2回目に押すと
[UnitSet2] . . . . .
となっていくような、コードはありませんか? あれば幸いです。 これは、あるプログラムを参考に作っているものです。
|
|
|
投稿記事 |
Posted: 2006年1月14日(土) 20:21 |
|
|
|
|
|
> というものなんですが、これをプログラムに利用したいと思います。
えーと、そのプログラムを出力するプログラムを、作っているんでしょうか?
やりたいことを分かりやすく書いてくれるとレスが返しやすいです。
> それは、このコード内にある、UnitSet(数字)を変数で扱おうと思っています。
>
> しかし、まだ、変数を利用したことがありません。
> 変数を、入力するのはどうやればいいですか?
AB付属のヘルプで「変数」と検索してみましたか?
変数はDimステートメントで宣言してあげた識別子が使用可能になります。
[ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]コード: Dim i As Long'符号付き32ビット整数型
Dim str As String'可変長文字列型
Dim pStr As BytePtr'Byte型データを示す符号無し32ビット整数型
i=10000
str="簡単に文字列を弄くれる"
pStr=calloc(256)
lstrcpy(pStr,"初心者には面倒かも")
Debug
free(pStr)
"UnitSet(数字)"という文字列をエディットボックスに出力したいのなら、下のようになります。
[ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]コード: Dim hEdit As HWND
Dim cnt As Long
Dim bStr[256] As Byte
hEdit=GetDlgItem(hMainWnd,EditBox1)
'エディットボックスの描写を無効
LockWindowUpdate(hEdit)
'エディットボックスの初期化
SetWindowText(hEdit,NULL)
For cnt=1 To 28
lstrcpy(bStr,"[UnitSet"+Str$(cnt)+Ex"]\r\n")
'自作関数
AddEditBoxText(hMainWnd,EditBox1,bStr)
Next
'エディットボックスの描写を有効
LockWindowUpdate(NULL)
実行してみると、
[UnitSet1]
[UnitSet2]
.
.
.
[UnitSet28]
となります。
長いコードを書く場合、「hide」「code」「/code」「/hide」、とすると良い感じになります。
> というものなんですが、これをプログラムに利用したいと思います。 えーと、そのプログラムを出力するプログラムを、作っているんでしょうか? やりたいことを分かりやすく書いてくれるとレスが返しやすいです。
> それは、このコード内にある、UnitSet(数字)を変数で扱おうと思っています。 > > しかし、まだ、変数を利用したことがありません。 > 変数を、入力するのはどうやればいいですか? AB付属のヘルプで「変数」と検索してみましたか? 変数はDimステートメントで宣言してあげた識別子が使用可能になります。 [hide][code]Dim i As Long'符号付き32ビット整数型 Dim str As String'可変長文字列型 Dim pStr As BytePtr'Byte型データを示す符号無し32ビット整数型
i=10000 str="簡単に文字列を弄くれる" pStr=calloc(256) lstrcpy(pStr,"初心者には面倒かも") Debug free(pStr)[/code][/hide] "UnitSet(数字)"という文字列をエディットボックスに出力したいのなら、下のようになります。 [hide][code]Dim hEdit As HWND Dim cnt As Long Dim bStr[256] As Byte
hEdit=GetDlgItem(hMainWnd,EditBox1) 'エディットボックスの描写を無効 LockWindowUpdate(hEdit) 'エディットボックスの初期化 SetWindowText(hEdit,NULL) For cnt=1 To 28 lstrcpy(bStr,"[UnitSet"+Str$(cnt)+Ex"]\r\n") '自作関数 AddEditBoxText(hMainWnd,EditBox1,bStr) Next 'エディットボックスの描写を有効 LockWindowUpdate(NULL)[/code][/hide] 実行してみると、 [UnitSet1] [UnitSet2] . . . [UnitSet28] となります。
長いコードを書く場合、「hide」「code」「/code」「/hide」、とすると良い感じになります。
|
|
|
投稿記事 |
Posted: 2006年1月14日(土) 20:01 |
|
|
|
|
|
いま、APMのファイルを作っています。
APMは、ゲームのファイルなんですが、ためしにコードを書いてみます。
コード: [Mission]
Name=~爆撃被害~日本を守れ!!
Author=雷電
Rank=8
PlaneSelectable=0
SubSelectable=0
DfPlane=MEIRYU
DfSub=Bomb
Sky=4
Map=海陸砂陸海
Reward=10000
Capt_Win=相手の爆撃機を落とす
Capt_Lose=友軍爆撃機の損傷
Message=相手はソ連軍。日本に対してかなりの大群を送ってきました。#それを阻止するために頑張ってください。
Type=3
Atlas_Sort=2
Atlas_X=155
Atlas_Y=55
WinAtLimit=0
Limit_Time=0
Limit_Comment=
ReversePrior=0
BGM=0
[PlayerUnit]
Block=2
Sector=1
Factor=InitOnBase
[Camp1]
WinCond=NoEnemyTank,NoEnemyHead,NoEnemyBomber
Escape=HTF,NoL,NoR
Wave1_comment=第一部隊出動!敵発見しだい打ち落とせ。
Wave2_comment=増援部隊を送る。直ちに敵陣地を攻撃せよ。
Wave2_time=40
Wave3_comment=第三部隊、特攻隊出撃せよ。
Wave3_time=90
WinComment=よし、直ちに空母に帰還せよ。
SplashEnemyPer=90
SplashTargetPer=90
EscFriendTargetPer=0
[Camp2]
WinCond=NoEnemyTank,NoEnemyHead,NoEnemyBomber
Escape=HTF,NoL,NoR
Wave2_comment=敵の第二部隊を確認。直ちに出撃隊を送る。
Wave2_time=30
Wave3_comment=敵の第三部隊確認。特攻隊を出撃させる。
Wave3_time=80
WinComment=空母がなくなった。相手の軍に特攻せよ。
SplashEnemyPer=90
SplashTargetPer=90
EscFriendTargetPer=0
[UnitSet1]
SetName=TaskForce1
Num=1
camp=1
wave=1
Level=5
Block=1
Sector=1
Factor=GreatGeneral
[UnitSet2]
SetName=TaskForce1
Num=1
camp=2
wave=1
Level=5
Block=5
Sector=12
Factor=GreatGeneral
[UnitSet3]
SetName=ArmyBase2
Num=1
camp=1
wave=1
Level=5
Block=2
Sector=9
Factor=
[UnitSet4]
SetName=ArmyBase2
Num=1
camp=2
wave=1
Level=5
Block=4
Sector=3
Factor=
[UnitSet5]
UnitName=SINDEN
SetName=
Num=7
camp=1
wave=1
Level=5
Block=1
Sector=1
Factor=InitOnBase,TouchDown
[UnitSet6]
UnitName=LA7
SetName=
Num=10
camp=2
wave=1
Level=5
Block=5
Sector=12
Factor=InitOnBase,TouchDown
[UnitSet7]
UnitName=RENZAN
SetName=
Num=7
camp=1
wave=1
Level=5
Block=1
Sector=1
Factor=InitOnBase,TouchDown
[UnitSet8]
UnitName=Tu2
SetName=
Num=10
camp=2
wave=1
Level=5
Block=5
Sector=12
Factor=InitOnBase,TouchDown
[UnitSet9]
UnitName=LRC
SetName=
Num=10
camp=1
wave=1
Level=5
Block=2
Sector=9
Factor=
[UnitSet10]
UnitName=LRC
SetName=
Num=10
camp=2
wave=1
Level=5
Block=4
Sector=3
Factor=
[UnitSet11]
UnitName=JPinf
SetName=
Num=30
camp=1
wave=1
Level=5
Block=2
Sector=11
Factor=GreatGeneral
[UnitSet12]
UnitName=SVinf
SetName=
Num=30
camp=2
wave=1
Level=5
Block=4
Sector=1
Factor=GreatGeneral
[UnitSet13]
UnitName=HONI
SetName=
Num=7
camp=1
wave=1
Level=5
Block=2
Sector=10
Factor=GreatGeneral
[UnitSet14]
UnitName=BT7
SetName=
Num=7
camp=2
wave=1
Level=5
Block=4
Sector=2
Factor=GreatGeneral
[UnitSet15]
UnitName=KI102
SetName=
Num=7
camp=1
wave=2
Level=5
Block=0
Sector=10
Factor=TouchDown
[UnitSet16]
UnitName=IL10
SetName=
Num=7
camp=2
wave=2
Level=5
Block=6
Sector=2
Factor=TouchDown
[UnitSet17]
UnitName=SIDEN21
SetName=
Num=7
camp=1
wave=3
Level=5
Block=0
Sector=10
Factor=TouchDown
[UnitSet18]
UnitName=JINPU
SetName=
Num=7
camp=1
wave=3
Level=5
Block=0
Sector=10
Factor=TouchDown
[UnitSet19]
UnitName=YAK9U
SetName=
Num=10
camp=2
wave=3
Level=5
Block=6
Sector=2
Factor=TouchDown
[UnitSet20]
UnitName=YAK9B
SetName=
Num=7
camp=2
wave=3
Level=5
Block=6
Sector=2
Factor=TouchDown
[UnitSet23]
UnitName=RENZAN
SetName=
Num=5
camp=1
wave=3
Level=5
Block=0
Sector=10
Factor=TouchDown
[UnitSet24]
UnitName=IL4
SetName=
Num=5
camp=2
wave=3
Level=5
Block=6
Sector=2
Factor=TouchDown
[UnitSet25]
UnitName=TroopShip
SetName=
Num=2
camp=1
wave=1
Level=5
Block=1
Sector=1
BorneBlock=3
BorneSector=5
Factor=GreatGeneral
[UnitSet26]
UnitName=TroopShip
SetName=
Num=2
camp=2
wave=1
Level=5
Block=5
Sector=12
BorneBlock=3
BorneSector=5
Factor=GreatGeneral
[UnitSet27]
UnitName=JPinf
SetName=
Num=7
camp=1
wave=1
Level=5
Block=3
Sector=5
Factor=Embark,GreatGeneral
[UnitSet28]
UnitName=SVinf
SetName=
Num=7
camp=2
wave=1
Level=5
Block=3
Sector=5
Factor=Embark,GreatGeneral
というものなんですが、これをプログラムに利用したいと思います。
それは、このコード内にある、UnitSet(数字)を変数で扱おうと思っています。
しかし、まだ、変数を利用したことがありません。
変数を、入力するのはどうやればいいですか?
ちなみに、このゲームの名前はTWB(The Wing Bluff)といいます。
このゲームに関しては、 http://primulasoft.cool.ne.jp/
を見てください。
いま、APMのファイルを作っています。 APMは、ゲームのファイルなんですが、ためしにコードを書いてみます。 [code][Mission] Name=~爆撃被害~日本を守れ!! Author=雷電 Rank=8 PlaneSelectable=0 SubSelectable=0 DfPlane=MEIRYU DfSub=Bomb Sky=4 Map=海陸砂陸海 Reward=10000 Capt_Win=相手の爆撃機を落とす Capt_Lose=友軍爆撃機の損傷 Message=相手はソ連軍。日本に対してかなりの大群を送ってきました。#それを阻止するために頑張ってください。 Type=3 Atlas_Sort=2 Atlas_X=155 Atlas_Y=55 WinAtLimit=0 Limit_Time=0 Limit_Comment= ReversePrior=0 BGM=0
[PlayerUnit] Block=2 Sector=1 Factor=InitOnBase
[Camp1] WinCond=NoEnemyTank,NoEnemyHead,NoEnemyBomber Escape=HTF,NoL,NoR Wave1_comment=第一部隊出動!敵発見しだい打ち落とせ。 Wave2_comment=増援部隊を送る。直ちに敵陣地を攻撃せよ。 Wave2_time=40 Wave3_comment=第三部隊、特攻隊出撃せよ。 Wave3_time=90 WinComment=よし、直ちに空母に帰還せよ。 SplashEnemyPer=90 SplashTargetPer=90 EscFriendTargetPer=0
[Camp2] WinCond=NoEnemyTank,NoEnemyHead,NoEnemyBomber Escape=HTF,NoL,NoR Wave2_comment=敵の第二部隊を確認。直ちに出撃隊を送る。 Wave2_time=30 Wave3_comment=敵の第三部隊確認。特攻隊を出撃させる。 Wave3_time=80 WinComment=空母がなくなった。相手の軍に特攻せよ。 SplashEnemyPer=90 SplashTargetPer=90 EscFriendTargetPer=0
[UnitSet1] SetName=TaskForce1 Num=1 camp=1 wave=1 Level=5 Block=1 Sector=1 Factor=GreatGeneral
[UnitSet2] SetName=TaskForce1 Num=1 camp=2 wave=1 Level=5 Block=5 Sector=12 Factor=GreatGeneral
[UnitSet3] SetName=ArmyBase2 Num=1 camp=1 wave=1 Level=5 Block=2 Sector=9 Factor=
[UnitSet4] SetName=ArmyBase2 Num=1 camp=2 wave=1 Level=5 Block=4 Sector=3 Factor=
[UnitSet5] UnitName=SINDEN SetName= Num=7 camp=1 wave=1 Level=5 Block=1 Sector=1 Factor=InitOnBase,TouchDown
[UnitSet6] UnitName=LA7 SetName= Num=10 camp=2 wave=1 Level=5 Block=5 Sector=12 Factor=InitOnBase,TouchDown
[UnitSet7] UnitName=RENZAN SetName= Num=7 camp=1 wave=1 Level=5 Block=1 Sector=1 Factor=InitOnBase,TouchDown
[UnitSet8] UnitName=Tu2 SetName= Num=10 camp=2 wave=1 Level=5 Block=5 Sector=12 Factor=InitOnBase,TouchDown
[UnitSet9] UnitName=LRC SetName= Num=10 camp=1 wave=1 Level=5 Block=2 Sector=9 Factor=
[UnitSet10] UnitName=LRC SetName= Num=10 camp=2 wave=1 Level=5 Block=4 Sector=3 Factor=
[UnitSet11] UnitName=JPinf SetName= Num=30 camp=1 wave=1 Level=5 Block=2 Sector=11 Factor=GreatGeneral
[UnitSet12] UnitName=SVinf SetName= Num=30 camp=2 wave=1 Level=5 Block=4 Sector=1 Factor=GreatGeneral
[UnitSet13] UnitName=HONI SetName= Num=7 camp=1 wave=1 Level=5 Block=2 Sector=10 Factor=GreatGeneral
[UnitSet14] UnitName=BT7 SetName= Num=7 camp=2 wave=1 Level=5 Block=4 Sector=2 Factor=GreatGeneral
[UnitSet15] UnitName=KI102 SetName= Num=7 camp=1 wave=2 Level=5 Block=0 Sector=10 Factor=TouchDown
[UnitSet16] UnitName=IL10 SetName= Num=7 camp=2 wave=2 Level=5 Block=6 Sector=2 Factor=TouchDown
[UnitSet17] UnitName=SIDEN21 SetName= Num=7 camp=1 wave=3 Level=5 Block=0 Sector=10 Factor=TouchDown
[UnitSet18] UnitName=JINPU SetName= Num=7 camp=1 wave=3 Level=5 Block=0 Sector=10 Factor=TouchDown
[UnitSet19] UnitName=YAK9U SetName= Num=10 camp=2 wave=3 Level=5 Block=6 Sector=2 Factor=TouchDown
[UnitSet20] UnitName=YAK9B SetName= Num=7 camp=2 wave=3 Level=5 Block=6 Sector=2 Factor=TouchDown
[UnitSet23] UnitName=RENZAN SetName= Num=5 camp=1 wave=3 Level=5 Block=0 Sector=10 Factor=TouchDown
[UnitSet24] UnitName=IL4 SetName= Num=5 camp=2 wave=3 Level=5 Block=6 Sector=2 Factor=TouchDown
[UnitSet25] UnitName=TroopShip SetName= Num=2 camp=1 wave=1 Level=5 Block=1 Sector=1 BorneBlock=3 BorneSector=5 Factor=GreatGeneral
[UnitSet26] UnitName=TroopShip SetName= Num=2 camp=2 wave=1 Level=5 Block=5 Sector=12 BorneBlock=3 BorneSector=5 Factor=GreatGeneral
[UnitSet27] UnitName=JPinf SetName= Num=7 camp=1 wave=1 Level=5 Block=3 Sector=5 Factor=Embark,GreatGeneral
[UnitSet28] UnitName=SVinf SetName= Num=7 camp=2 wave=1 Level=5 Block=3 Sector=5 Factor=Embark,GreatGeneral[/code]
というものなんですが、これをプログラムに利用したいと思います。 それは、このコード内にある、UnitSet(数字)を変数で扱おうと思っています。
しかし、まだ、変数を利用したことがありません。 変数を、入力するのはどうやればいいですか?
ちなみに、このゲームの名前はTWB(The Wing Bluff)といいます。 このゲームに関しては、[url]http://primulasoft.cool.ne.jp/[/url] を見てください。
|
|
|
投稿記事 |
Posted: 2006年1月14日(土) 18:25 |
|
|
|
|
|
ありがとうございました。
ちゃんといい具合に作動しました。
また、AB勉強して、もっといいプログラムを作っていきます。
応援よろしく(^^♪
by RAIDEN
↑雷電って言うのは、戦闘機の名前です。
[b]ありがとうございました。 ちゃんといい具合に作動しました。
また、AB勉強して、もっといいプログラムを作っていきます。
応援よろしく(^^♪
by RAIDEN
↑雷電って言うのは、戦闘機の名前です。[/b]
|
|
|
投稿記事 |
Posted: 2006年1月14日(土) 15:19 |
|
|
|
|
|
> Chr$()関数見てても、よく仕組みがわからないんで、。。。Exも・・・
Chr$()関数は指定された文字コードを文字に変換してくれる関数です。
Ex表記は、普通文字列はダブルコーテーション(")で囲みますが、Ex"文字列"とすることによってエスケープシーケンスで文字列を表現することができます。
メッセージボックスに「A(改行)B(改行)C」と表示させる。
コード: MessageBox(hMainWnd,Chr$(65)+Chr$(13)+Chr$(10)+Chr$(66)+Chr$(13)+Chr$(10)+Chr$(67),"Chr$()関数",MB_OK)
MessageBox(hMainWnd,Ex"A\r\nB\r\nC","Ex表記による文字列",MB_OK)
ということで改行は、Chr$()関数の場合、 Chr$(13)+Chr$(10)、Ex文字列は、 Ex"\r\n"、と表現します。
お勉強頑張ってください(^_^)
> Chr$()関数見てても、よく仕組みがわからないんで、。。。Exも・・・ Chr$()関数は指定された文字コードを文字に変換してくれる関数です。 Ex表記は、普通文字列はダブルコーテーション(")で囲みますが、Ex"文字列"とすることによってエスケープシーケンスで文字列を表現することができます。
メッセージボックスに「A(改行)B(改行)C」と表示させる。 [code]MessageBox(hMainWnd,Chr$(65)+Chr$(13)+Chr$(10)+Chr$(66)+Chr$(13)+Chr$(10)+Chr$(67),"Chr$()関数",MB_OK) MessageBox(hMainWnd,Ex"A\r\nB\r\nC","Ex表記による文字列",MB_OK)[/code] ということで改行は、Chr$()関数の場合、[b]Chr$(13)+Chr$(10)[/b]、Ex文字列は、[b]Ex"\r\n"[/b]、と表現します。
お勉強頑張ってください(^_^)
|
|
|
投稿記事 |
Posted: 2006年1月13日(金) 22:56 |
|
|
|
|
|
すいません。
ほんと、AB初心者なんでわかりません・・・・とほほ・・・・
すいませんけど、教えてください。
Chr$()関数見てても、よく仕組みがわからないんで、。。。Exも・・・
お手間かけますが、よろしくお願いします。・・・
それと、もっと、AB勉強します・・・。<(_ _)>
すいません。 ほんと、AB初心者なんでわかりません・・・・とほほ・・・・
すいませんけど、教えてください。 Chr$()関数見てても、よく仕組みがわからないんで、。。。Exも・・・
お手間かけますが、よろしくお願いします。・・・
それと、もっと、AB勉強します・・・。<(_ _)>
|
|
|
投稿記事 |
Posted: 2006年1月13日(金) 21:33 |
|
|
|
|
|
> この場合の改行は、どういうコードですか?
AB付属のヘルプ、Chr$()関数とEx表記による文字列を読めば分かると思います。
> また、このときにボタンを何回クリックしても、同じところにできてしまうんす。
SetWindowText()関数は、文字列を 設定するので既に入力されている文字列は無くなります。
どういったことがしたいのかよく分からないので解決するか分かりませんが、文字列を設定するのではなく、追加したら良いのではないのでしょうか。
エディットボックスの内容が消されることなく、最後尾に文字列が追加されます。
コード: Sub AddEditBoxText(ByVal hDlg As HWND,ByVal nIDDlgItem As Long,ByVal lpString As BytePtr)
Dim hEdit As HWND
hEdit=GetDlgItem(hDlg,nIDDlgItem)
SendMessage(hEdit,EM_SETSEL,GetWindowTextLength(hEdit),-1)
SendMessage(hEdit,EM_REPLACESEL,TRUE,lpString As LPARAM)
SetFocus(hEdit)
End Sub
Sub MainWnd_CommandButton1_Click()
AddEditBoxText(hMainWnd,EditBox1,"追加する文字")
End Sub
> この場合の改行は、どういうコードですか? AB付属のヘルプ、Chr$()関数とEx表記による文字列を読めば分かると思います。
> また、このときにボタンを何回クリックしても、同じところにできてしまうんす。 SetWindowText()関数は、文字列を[b]設定[/b]するので既に入力されている文字列は無くなります。 どういったことがしたいのかよく分からないので解決するか分かりませんが、文字列を設定するのではなく、追加したら良いのではないのでしょうか。
エディットボックスの内容が消されることなく、最後尾に文字列が追加されます。 [code]Sub AddEditBoxText(ByVal hDlg As HWND,ByVal nIDDlgItem As Long,ByVal lpString As BytePtr) Dim hEdit As HWND hEdit=GetDlgItem(hDlg,nIDDlgItem) SendMessage(hEdit,EM_SETSEL,GetWindowTextLength(hEdit),-1) SendMessage(hEdit,EM_REPLACESEL,TRUE,lpString As LPARAM) SetFocus(hEdit) End Sub
Sub MainWnd_CommandButton1_Click() AddEditBoxText(hMainWnd,EditBox1,"追加する文字") End Sub[/code]
|
|
|
投稿記事 |
Posted: 2006年1月12日(木) 21:42 |
|
|
|
|
|
書き直します。↑の文。
この場合の改行は、どういうコードですか?
教えてください。
また、このときにボタンを何回クリックしても、同じところにできてしまうんす。どういう意味かというと、ボタンを1回目クリックしたら、ちゃんとエディットボックスに出力されるのですが、2回目に、Enterキーをおして、クリックすると、もとの出力された場所に戻ってしまうんです。
どうしてでしょうか、↑のこと、教えていただけたら幸いです。[/hide]
書き直します。↑の文。
この場合の改行は、どういうコードですか?
教えてください。
また、このときにボタンを何回クリックしても、同じところにできてしまうんす。どういう意味かというと、ボタンを1回目クリックしたら、ちゃんとエディットボックスに出力されるのですが、2回目に、Enterキーをおして、クリックすると、もとの出力された場所に戻ってしまうんです。
どうしてでしょうか、↑のこと、教えていただけたら幸いです。[/hide]
|
|
|
投稿記事 |
Posted: 2006年1月12日(木) 20:47 |
|
|
|
|
|
ついでに、場合の改行は、どういうコードですか?
教えてください。
ついでに、場合の改行は、どういうコードですか?
教えてください。
|
|
|
投稿記事 |
Posted: 2006年1月12日(木) 20:39 |
|
|
|
|
|
RADツールでコマンドボタンを貼り付けたらそれを右クリックし、「イベントコード」、「ボタンがクリックされた時」を選択しコードを書きます。
ボタンをクリックした時に、エディットボックスに文字列を設定したい場合、SetWindowText()関数かSetDlgItemText()関数を使って文字列を設定します。
コード: SetWindowText(GetDlgItem(hMainWnd,EditBox1),"Bonjour")
SetDlgItemText(hMainWnd,EditBox1,"Bonjour")
エディットボックスに設定されている文字列に、新たな文字を追加する場合は、SendMessage()関数を使います。
コード: Dim hEdit As HWND
hEdit=GetDlgItem(hMainWnd,EditBox1)
SendMessage(hEdit,EM_SETSEL,GetWindowTextLength(hEdit),-1)
SendMessage(hEdit,EM_REPLACESEL,TRUE,"ADD")
SetFocus(hEdit)
RADツールでコマンドボタンを貼り付けたらそれを右クリックし、「イベントコード」、「ボタンがクリックされた時」を選択しコードを書きます。
[b]ボタンをクリックした時に、エディットボックスに文字列を設定したい場合、SetWindowText()関数かSetDlgItemText()関数を使って文字列を設定します。
[code]SetWindowText(GetDlgItem(hMainWnd,EditBox1),"Bonjour") SetDlgItemText(hMainWnd,EditBox1,"Bonjour")[/code]
エディットボックスに設定されている文字列に、新たな文字を追加する場合は、SendMessage()関数を使います。
[code]Dim hEdit As HWND hEdit=GetDlgItem(hMainWnd,EditBox1) SendMessage(hEdit,EM_SETSEL,GetWindowTextLength(hEdit),-1) SendMessage(hEdit,EM_REPLACESEL,TRUE,"ADD") SetFocus(hEdit)[/code]
|
|
|
投稿記事 |
Posted: 2006年1月11日(水) 20:31 |
|
|
|
|