続・リアルタイムプレビューを作るには?


はる  2005-12-08 10:46:42  No: 93123

プレビュー表示が変になるエラーでどのようなときになるのかが分かったのでカキコしました。
前のスレに書いても良かったのですが、[解決]にしてしまったので新たに立たせてもらいました。すみません。

普通にタグを打っている分には問題はないのですが、
コマンドボタンやメニューからタグを貼り付けると変になります。

コマンドボタンを押してタグを挿入すると、それまで書いてあった文字が繰り返されてプレビューに表示されてしまうんです。

たとえば、テキストにはあらかじめ「あいうえお」というのが書いてあるとします。
そのあとでコマンドボタンを押して<br>タグを追加するとします。
すると、テキストには「あいうえお<br>」となっているのに、プレビューには「あいうえお(改行)あいうえお(改行)」と2回連続で表示されるといった具合です。

このあとにテキストに文字をなにか入れれば元に戻るのですが…

解決方法お願いします。


VB梅  2005-12-08 12:53:30  No: 93124

こんにちは、同じことをしてみましたが、再現できませんでした。
コードはこれで確認しました
Private Sub Command1_Click()
 Text1.Text = Text1.Text & "<br>"
End Sub

もし同じであれば
Private Sub Command1_Click()
 Text1.Text = Text1.Text & "<br>"
 call Text1_Change()
End Sub
としてみるとか?無駄かな^^;


VB梅  2005-12-08 12:57:45  No: 93125

Private Sub Command1_Click()
 Text1.Text = Text1.Text & "<br>"
 call Text1_Change()
End Sub
とした場合、同じように「あいうえお(改行)あいうえお(改行)」と表示されました

これではるさんがボタンの内容がなんとなく読めるのですが・・・・
Private Sub Command1_Click()
 Text1.Text = Text1.Text & "<br>"
 WebBrowser1.Document.write (Text1.Text)
End Sub
こんなことしてませんよね?


はる  2005-12-09 11:34:13  No: 93126

返事が遅くなってすみません。
>Private Sub Command1_Click()
> Text1.Text = Text1.Text & "<br>"
> WebBrowser1.Document.write (Text1.Text)
>End Sub
>こんなことしてませんよね?
してないですね。

コードはこんな感じです。

Private Sub Command1_Click()
 '選択済み文字列
 Dim moji As String

 moji = Text1.SelText
 'データベースから目的タグの場所を探す
 Data1.Recordset.FindFirst ("タグID = 3")
 'タグを貼り付ける
 Text1.SelText = "<" & Data1.Recordset.Fields("タグ") & ">" & moji
 If Data1.Recordset.Fields("終了タグ") = "-" Then
  '何もしない
 Else
  Text1.SelText = Data1.Recordset.Fields("終了タグ")
 End If
End Sub

データベース(Access)から目的のタグを探して、Text1に貼り付けるといった感じです。
その際に選択文字列があれば、それを挟むようにしてあります。
"タグID"、"タグ"、"終了タグ"ってのはデータベースの項目です。

VB梅さんのように直接書いた場合にはそのような現象はなりませんでした。
えと、分かったことを書いてみます。
1.直接タグを書いた場合は問題ない。
2.直接タグを書いても、終了タグがあるようなもの(Bタグなど)を使用し、選択文字列をネストで一部を挟んだときに変になる。
    例:<S>あい<B>うえお</B></S> →  あいあいうえお
3.データベースを参照した場合変になる。
    例:あいうえお<BR>  →  あいうえお(改行)あいうえお(改行)
        <B>あいうえお</B>  →  あいうえおあいうえお
こんな感じです。

分かりづらくてすみません。


VB梅  2005-12-10 09:06:47  No: 93127

こんにちわ
>>こんなことしてませんよね?
>してないですね。
失礼しました^^;

結論から言うと、このやり方は邪道です。
ファイルを保存してそれを読み込み表示するのが通常のやり方だと思います。
邪道で行く場合
たぶん、VBの画面更新が行われないためにおきる現象のようです
DoEventsで画面更新を行ってください。
次のような感じです。
Text1.SelText = Text1.SelText & "<" & Data1.Recordset.Fields("タグ") & ">" & moji
DoEvents
 If Data1.Recordset.Fields("終了タグ") = "-" Then
  '何もしない
 Else
  Text1.SelText = Text1.SelText & Data1.Recordset.Fields("終了タグ")

とすると動くようです。
>3.データベースを参照した場合変になる。
については、検証できないので不明です。

ご存知かもしれませんがカーソルの間にタグや文字をボタンで入力したい場合ここが参考になります
http://www.bcap.co.jp/hanafusa/VBHLP/TextEdit.htm
以上


※作成する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。







   このエントリーをはてなブックマークに追加