Perlについての質問箱 12箱目
■ このスレッドは過去ログ倉庫に格納されています
0539_gunzip
NGNGPerlScriptは、友人に使わせるPerlスクリプトのをTkで組むのがだるいときにHTAと何度か使った程度。
一応テキストボックスやボタンとかも揃っているしな。それなりのことはできる。
Textboxに表示したいなら、button1_clock()を以下に差し替え、
sub button1_click {
my $form = $window->document->form;
my $host = $form->host->{"value"};
$form->result->{innerText} = join("", execute_command("tracert $host"));
}
<textarea id="result" cols="80" rows="10"></textarea>を下のフォーム内に挿入してやれば
結果がテキストボックスに表示される。
この辺りは通常のPerlスクリプトとは勝手が違うから何をやっているか説明する・・・程のこともないよな。
ただ単に$form->resultオブジェクトの"innerText"プロパティにexecute_command()の結果をセットしただけだ。
HTMLで出力したいときは、結果はexecute_command()から
リストで返ってきているのだから適当に加工すればよいだけ。
・・・もういちいち書かなくて良いよな?
$window->document->write("<html><body>", join("<br>", execute_command("tracert $host")), "</body></html>");
いい加減だが。
というか何かある度に聞くのも面倒くさいだろうから書くけど、今後独習するつもりなら。
例えば、どのオブジェクトでも良いが、
my $form = $window->document->form;
foreach my $attr (sort keys %$form) {
$window->document->write("$attr = \"$form->{$attr}\"<br/>");
}
とかやってみ。"innerHTML"や"tagName"といったプロパティ、"onClick"や"onmousemove"といったシグナルなどが
ずらずらと大量に表示されるはずだ。他は"parentNode"や"children"とかWin32::OLEオブジェクトだ。
面倒なので説明せんけど。まあわかるよな。
前者は先から見るようにいろいろ値をセットできるし、
後者は$form->result->{onclick} = sub { do_something(); } のようにコールバックを登録できるはずだ。
あとは自分で試行錯誤してみてくれ。
■ このスレッドは過去ログ倉庫に格納されています