助けてください。・゚・(ノД`)・゚・。

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。

質問の仕方

1 個までオプションを選択できます

 
 
投票結果を見る

メッセージ
作成者
伯羽
記事: 15
登録日時: 2005年10月11日(火) 23:44
お住まい: 埼玉県
連絡する:

助けてください。・゚・(ノД`)・゚・。

#1 投稿記事 by 伯羽 »

デスクトップマスコット作りに挑戦しているのですが、
わからないことが幾つかあるので教えてください。

現状→http://mhgs.dip.jp/soft/p.PNG

1.ラベルに文字列入れてそのまま表示している
*ファイルから文字列を読み込んで表情変え&発言させることができない
 ↓ファイルの中身↓
 01,Angry
 02,Enjoy
 03,Sad
 表情,発言内容

2.閉じることはできるがまたウインドウを出すことができない
*ヘルプを見てもわからなかったので。非表示はできたんですが。。。(´・ω・`)

お願いします。
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

#2 投稿記事 by konisi »

閉じるボタンを押した後、何所をどうすればまた表示できるのかをちゃんと考えて設計していますか?たとえば、Ctrl+Shift+Vで再表示できるようにメインループ内で工夫するとか。

もっとも、人工知能(?)作りは難しいものです。人間の入力した文字列を読み込んで、特定の文字列があるかどうかを調べて、それに対応した動作を継続させる・・・
特定の文字列内に指定文字列が含まれているかどうかを調べる関数なら
InStr関数(ヘルプファイルに記載)を参照。

”デスクトップマスコット”作り、頑張ってください。
伯羽
記事: 15
登録日時: 2005年10月11日(火) 23:44
お住まい: 埼玉県
連絡する:

#3 投稿記事 by 伯羽 »

返信ありがとうございます。
そうですね。最初に作ろうと思ったのが間違いだったのかもしれません。
でも作るからには最後までやりますよヽ( ´ー`)ノ

>閉じるボタンを押した後、何所をどうすればまた表示できるのかをty(ry
 していますがソースがおかしいのか命令が違うのか表示してくれないんです。
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

#4 投稿記事 by konisi »

ソースをここに載せる事はできますか?
載せたくないなら構いまんが、対応するのが遅れる可能性があります。
伯羽
記事: 15
登録日時: 2005年10月11日(火) 23:44
お住まい: 埼玉県
連絡する:

#5 投稿記事 by 伯羽 »

プロジェクトを圧縮してみたので助けてくれる方のみどぞ。
改変使用は無しで。

ファイルをそのまま持ち逃げする人が多くいたので
リンクはずしました。助けてくれる人プライベートメッセージください。
最後に編集したユーザー 伯羽 [ 2005年11月04日(金) 18:12 ], 累計 2 回
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

#6 投稿記事 by konisi »

えー、あちこち未知の領域があって僕にはムリです、はい。
イグトランスさん、よかったらこの板に参加してください。
伯羽
記事: 15
登録日時: 2005年10月11日(火) 23:44
お住まい: 埼玉県
連絡する:

( ´゚д゚`)

#7 投稿記事 by 伯羽 »

未知の領域ですか。。。
誰か助けてください。・゚・(ノД`)・゚・。
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

#8 投稿記事 by イグトランス »

#呼ばれてと言うわけではありませんが。
伯羽鳥 さんが書きました:1.ラベルに文字列入れてそのまま表示している
*ファイルから文字列を読み込んで表情変え&発言させることができない
 ↓ファイルの中身↓
 01,Angry
 02,Enjoy
 03,Sad
 表情,発言内容
ファイルからの読み込みは面倒なので、
そのうちファイルからの読み込みをするコードを書くということにして、
たとえばこのようにとりあえずソースコードに直接書いておくことにしたらどうでしょうか。
Dim Expression[ELM(3)] = ["Angry", "Enjoy", "Sad"] As String

> 2.閉じることはできるがまたウインドウを出すことができない
閉じると言うのはShowWindow(hMessage, SW_HIDE)のことですよね。
それなら2番目の引数をSW_HIDEからSW_SHOWへ変えれば良いと思います。

ところでChara_Character_ClickはCharacterのプロパティの通知にチェックを入れないと呼ばれないですよ。
ヘルプには書いてありませんが気をつける必要があります。
伯羽
記事: 15
登録日時: 2005年10月11日(火) 23:44
お住まい: 埼玉県
連絡する:

( ´゚д゚`)<うおおおおお?!!!

#9 投稿記事 by 伯羽 »

イグトランスさんが言ったとおりに通知にチェックして、
キャラをクリックしたらメニューが出てきてくれました!
ありがとうございます!
伯羽
記事: 15
登録日時: 2005年10月11日(火) 23:44
お住まい: 埼玉県
連絡する:

#10 投稿記事 by 伯羽 »

Dim Expression[ELM(3)] = ["Angry", "Enjoy", "Sad"] As String
これの使い方がわからないのですが(;´A`)
教えていただけないでしょうか。
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

#11 投稿記事 by イグトランス »

> Dim Expression[ELM(3)] = ["Angry", "Enjoy", "Sad"] As String
これは以下と同等だと思ってください。

コード: 全て選択

Dim Expression[2] As String
Expression[0] = "Angry"
Expression[1] = "Enjoy"
Expression[2] = "Sad"
そのうち余裕が出来たらExpressionの要素数を大きくし、
ファイルからExpressionへ読み込むように改良することにすれば、
暫くはファイルからの読み込みをどうするかということを考えずに済みます。

つまり余計な部分を後回しにして先に主立った部分の作業に集中できます。(私がよくやる手です)
伯羽
記事: 15
登録日時: 2005年10月11日(火) 23:44
お住まい: 埼玉県
連絡する:

#12 投稿記事 by 伯羽 »

SetWindowTextまではわかったのですが
そのEspression(?)の読み込み方がわかりません。

Dim Expression[ELM(3)] = ["Angry", "Enjoy", "Sad"] As String

Sub Menu_SPEAKBTM_Click()
SetWindowText(GetDlgItem(hMessage,MesBox),Expression)
ShowWindow(hMenu,SW_HIDE)
ShowWindow(hMessage,SW_SHOW)
End Sub

出力結果
、S

SPEAKBTM=話すボタンを押したとき
MesBox=スタティックテキスト
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

#13 投稿記事 by イグトランス »

N番目の表情に対応する発言はExpression[N]と書けば得られます。
たとえばSetDlgItemText(hMessage, MesBox, Expression[0])とすればAngryと表示されるはずです。
(SetDlgItemTextはSetWindowText(GetDlgItem(とするのと同じです。)
伯羽
記事: 15
登録日時: 2005年10月11日(火) 23:44
お住まい: 埼玉県
連絡する:

#14 投稿記事 by 伯羽 »

> N番目の表情に対応する発言はExpression[N]と書けば得られます。
乱数を利用してランダムにメッセージを表示しようといろいろがんばっているのですがうまくできません。(泣

コード: 全て選択

Dim RnS As Long
Dim RnMsg As String
RnS=Int(Rnd()*3+1)
RnMsg="Expression[" + RnS + "]"
SetDlgItemText(hMessage, MesBox, RnMsg)

出力結果
ression[]
できないってことは違ってるんですよね。。。(´・ω・`)
「Expression[]」を出そうとしてますし
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

#15 投稿記事 by イグトランス »

ではこれでできると思います。
SetDlgItemText(hMessage, MesBox, Expression[RnS])
返信する