簡易HTMLエディターを作成するには・・・。

解決


ぺろ  2009-04-20 03:14:28  No: 34111

ブログの書き込み用に、簡易htmlエディタを作りたいんですが・・・、どういう方法が近道かさえ分かりません。^^;

ようは、
見た目で、色や文字のサイズを変えられる。
  この際は、タグは非表示。
htmlタグ形式でも、書かれている。

タグが非表示って事は、赤い『赤い』という文字を編集していると同様に、実質は、『<font color="#FF0000">赤</font>』を編集しているという事。
もちろん、リアルタイムである必要はなく、別画面に切り替える時や文字コピーのみで、問題ないです。

なんですが、さて、どうしたらいいでしょうか?
出来れば、無料で。(コンポーネントは無料ならOKで。

まず、リッチエディットでーーーーーーー、と考えましたが、文字のプロパティを変える方法は分かったのですが、その色やサイズ変更した文字のプロパティを調べる方法はあるんですが、全文をループしないといけないかなー?と。

次は、ブログを保存して調べたところ、innerHTMLを使えばタグ付きと中身を取り出せそう・・・・?だけど、これまた面倒だなー、と。
今のところ、こちらを中心に調べてはいます。

他にも、Delphi6で、IEコンポーネントを入れているので、そちらを使えないかなー?とは、思ったのですが・・・、よく分からない。

面倒、面倒と書きましたが、「この方法なら、いけるよ!」という意見さえあれば、研究してみたいとは思っています。

素人ですが、よろしく御願いします。
荷が勝ちすぎてる気もしますが。^^;


武田  2009-04-22 22:22:03  No: 34112

初心者ですが私もこのようなツールがほしくて探しましたが、
Microsoft FrontPageやIBMホームページビルダーなど本格的なのしか見あたりません。
HTMLエディターはたくさんありますがあくまでテキストエディタです。
相当難しいんでしょうか。
そうかといってサイトの一部を切り取りコピペして資料作りをしたいので
自分用の超簡易ホームページ文書作成ツールを作り使っています。
素人がやっていることですから、めちゃくちゃだと思いますが。
これで画像や文はコピペできるし文も書けます。
たとえば他のサイトの画像をコピペしたら、その画像をローカルにダウンロードして
そのテキストのタグ文のアドレス部分にローカルアドレスに自動的に書き換えるようにしています。
私が出来たのはここまでです。
あとは、HTML画面上で何かしたら、その場所をテキストのタグ文上で特定してタブコードが入るようにしたらいいなと思いますが、それだけの実力はありませんからそのままです。

procedure TForm1.Button1Click(Sender: TObject);
var
    Doc:TStringList;
    FileName:string;
begin
    Doc:=TStringList.Create;
    try
        FileName:= '●新しいページ'++'.html';//ファイル名を作成
            //強引にhtmlファイルのサンプルを書いてhtmlファイルを作成する
            //Titleにファイル名拡張子を付けないとcaptionにファイル名を自動的に付けてくれない
        Doc.Add('<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">');
            Doc.Add('<html lang="ja">');
            Doc.Add('<head>');
            Doc.Add('<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">');
            Doc.Add('<meta name="generator" content="Microsoft FrontPage 4.0">');
          Doc.Add('<title>'+FileName+'</title><!-- saved from url -->');
          Doc.Add('</head>');
          Doc.Add('<body>');
          Doc.Add('</body>');
            Doc.Add('</html>');
            Doc.SaveToFile(FileName);//一旦htmlファイルを保存する

        //貼り付けてあるwebbrowser1コントロールにロードする
        webbrowser1.Navigate(FileName);

       //このままでは編集できないので編集可能にする
        SetDesignMode(true);  
    finally
        Doc.Free;
    end;
end;
 //HTML編集モードonoffする
procedure TForm1.SetDesignMode(Value: Boolean);                   
var
 HTML: IHTMLDocument2;
begin
    if WebBrowser1.Document <> nil then
    begin
        try
            HTML := WebBrowser1.Document as IHTMLDocument2;
            if Value then
                HTML.designMode := 'On'
            else
                HTML.designMode := 'OFF';
        except end;
    end;
end;


通りすがり  2009-04-23 00:31:43  No: 34113

ActiveXでMicrosoft DHTML Editing Controlだったかなんだったかというのがあったと思う。
それを取り込んで作ったDelphi製のHTMLエディターが昔けっこうあったと思うんだけど、最近あんまり見ないな。


ぺろ  2009-04-23 11:01:07  No: 34114

WebBrowser1.Document系、ActiveX系ですかー。
参考になります。
調べてみます。
私も?私は?素人なので、この方法なら確実に・簡単にいける!って方法が分からないんですよね。

実際に最初は、必死こいてリッチエディター系を調べていました。^^;

私はDreamweaverの古いバージョンを持っているのですが、貧弱ノートで使っているので、起動が遅くって。
ブログのために、って気軽には行きません。
ブログでさえ、若干重いし。

ゆくゆくは、SEO対策機能や、特定のブログなら自動更新出来たらなー。
お二方ありがとうございます。

とりあえず、一時解決で。


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

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






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