home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 2001 June
/
VPR0106A.BIN
/
OLS
/
FSC202
/
fsc202.lzh
/
LtHand.fxl
< prev
next >
Wrap
Text File
|
2001-03-25
|
25KB
|
1,104 lines
//----------------------------------------------------
//
// Light Hand Script Source Code
//
// 2000.12.22 by y.Fuji
// http://free01.plala.or.jp/~yfuji/
//----------------------------------------------------
//このファイル最後にFXLの特に解りにくい点を解説しています
//================================================
//起動時処理
//================================================
Str_version="Light Hand v2.02";
sys.AddAccKey("CTR","F");
if (sys.usedll("lhd.dll")=="true") {
USE_LHD="on";
if (lhdsys.ckstay(arg.pos())==true) {
return;
}
lhdsys.maketray();
}
MakeEditWinList();
main(EditWinList).popup.add("新規作成","NewEditWin();main.visible=true;");
main.popup.add("ファイルを開く","OpenFile();");
main.popup.add("-","-");
main.popup.add("最近開いたファイル","ShowRecentWinList();");
main.popup.add("編集ウィンドウ一覧","ShowEditWinList();");
main.popup.add("-","-");
main.popup.add("終了","end();");
Edit_Name="";
deffunc.set(macro.body); //このファイルをアプリケーションに登録
//これによりファイル中のサブルーチンが使用可能になる
//前回終了時にウィンドウ状態を記憶していたか確認
//通常起動
if (arg.length==0) {
//コマンドラインオプションがないので空ウィンドウをオープン
if (USE_LHD != "On") {
NewEditWin();
} else {
MakeRecentWinList();
}
main.visible="true";
} else {
//コマンドラインのウィンドウをオープン
OpenFile(arg(1));
}
return;
}
//=====================================================
//アプリケーション登録関数
//=====================================================
//----------------------------------------------------
//基本編集のコマンド
//----------------------------------------------------
//フォームにファイルがDropされたとき
function OnDrop()
{
OpenFile(arg(1));
main.setfocus();
}
//他のLightHandからの受信
function MessFromOther()
{
arg.top();
OpenFile(arg.line);
main.SetForeground();
}
//ファイルオープン 引数が無い場合はダイアログ表示
function OpenFile()
{
//以前開いたファイルか確認
if (USE_LHD=="on") {
a = lhdhist.ckhist(sys.ToLongName(arg(1)));
if (a != "") {
arg.set(a); //以前のウィンドウサイズを復元
}
}
arg.replace("/","\\r\\n");
//ファイルが既に開かれているか確認
w.set(main.getwinlist());
w.topline();
while (w.take()=="true") {
id = main(w.line).id; //スコープを変更
if (edit_name == arg(1)) {
main.SetForeground();
return;
}
}
//LZHファイルか確認
if (file.ext(arg(1))==".lzh") {
Open_LZH(sys.ToLongName(arg(1)));
return;
}
//Dropされたウィンドウがエディタでなかったら新しいウィンドウをオープン
if (editor != "on") {
NewEditWin();
}
//さらにウィンドウが空でなかったら新しいウィンドウをオープン
if (main.fxedit(1).lines.length()!=0) {
NewEditWin();
}
if (arg(1)=="") {
arg.set(sys.fileselect("ファイルを開く",file.path(Edit_Name)));
}
if (arg(1)=="") {
return;
}
//検索文字列の設定
main.fxedit.ed(str("SetFind:",FindStr));
//タイプ別の初期化プログラムの呼び出し
edit_name=sys.ToLongName(arg(1));
Edit_Name = edit_name;
EditWindow = main.id;
main.fxedit(1).ed("OFF");
ext = str(file.ext(edit_name),".");
w.set(".cpp.c.h.hpp.fxl.");
if (w.search(ext)!=-1) {
ext=".cpp.";
}
w.set("doevent(\"Format");
w.add(ext);
w.add("\");");
w.replace(".","_");
macro.str(w.pos());
main.fxedit.ed(str("Load,",edit_name));
main.fxedit.ed("ON");
main.caption = edit_name;
//以前のカーソル位置を復元
w.set(arg(2));
if (w.replace("j","")==1) {
main.fxedit.ed(str("Jp#",w.pos()));
}
//以前のサイズを復元
w.set(arg(3));
if (w.replace("p","") ==1) {
w.replace(",","\\r\\n");
main.left = w(1);
main.top = w(2);
main.width = w(3);
main.height = w(4);
}
main.visible="true";
//履歴の記憶
SaveHist();
}
//履歴の記憶
function SaveHist()
{
if (USE_LHD=="on") {
//アクティブウィンドウが最大化されていたら元に戻す
lhdsys.window_res();
if (edit_name != "edit_name") {
w.set(edit_name);
w.add(" /j");
w.add(main.fxedit(1).ed("Get,CursorLine"));
w.add(" /p");
w.add(main.left);
w.add(",");
w.add(main.top);
w.add(",");
w.add(main.width);
w.add(",");
w.add(main.height);
lhdhist.addhist(w.pos());
}
}
}
//ファイルの保存
function SaveFile()
{
if (main.fxedit(1).ed("Save")=="true") {
main.caption = edit_name;
}
}
//名前をつけてファイルの保存
function SaveAs()
{
a = sys.FileSelect("保存ファイル名の指定");
if (a != "") {
if (main.fxedit(1).ed(str("SaveAs:",a))=="true") {
edit_name = a;
main.caption = edit_name;
}
}
}
//HTML出力
function ToHTML()
{
x.clear();
x.addline("<html><head><title>");
x.addline(edit_name);
x.addline("</title></head><body>");
x.addline("<font face=\"MS ゴシック\">");
x.addline("<pre>");
main.fxedit(1).ed("CopyToSub");
if (main.fxedit.subtext.length()>0) {
y.set(main.fxedit.subtext.pos());
} else {
y.set(main.fxedit.lines.pos());
}
y.replace("<","<");
y.replace(">",">");
x.add(y.pos());
x.addline("</pre></font></body></html>");
//tmpファイルに保存
a = 1;
while ("true") {
y.set(str(sys.instpath,"\\tmp",a,".htm"));
if (file.type(y.pos()) == "false") {
break;
}
eval("a=a+1");
if (a > "20") {
a="0";
break;
}
}
if (x.savefile(y.pos()) == "false") {
alert("保存に失敗しました",y.pos());
return;
}
//HTMLファイルを実行
shell(y.pos());
}
//再読み込み
function Reopen()
{
main.fxedit(1).ed("Reload");
main.fxedit(1).ed("Clear Undo");
main.caption = edit_name;
}
//エディタフォームの作成
function NewEditWin()
{
//メインフォーム作成
main.add(0,0,700,500,,,1);
main.icon="<r0:icon2>";
main.taskbar=true;
main.caption=Str_version;
//エディタ部品貼り付け
main.fxedit.add();
main.fxedit.align="alClient";
CreateEditBase();
//ツールバー作成
w.set(sys.getstring("ToolbarString",deffunc.pos()));
w.replace(",","\\r\\n");
main.toolbar.add(16,16,w.pos());
//メインメニュー作成
w.set(sys.getstring("MenuString",deffunc.pos()));
w.replace(",","\\r\\n");
w.replace("\\t"," ");
main.menu.add(w.pos());
//エディタのPOPUP
w.set(sys.getstring("PopupString",deffunc.pos()));
w.replace(",","\\r\\n");
w.replace("\\t"," ");
main.fxedit.popup.add(w.pos());
//追加のポップアップメニュー
w.set(sys.getinitcmd("PopupString"));
w.replace(",","\\r\\n");
w.replace("\\t"," ");
if (w.length()>0) {
main.fxedit.popup.add(w.pos());
}
//メインフォーム表示
main.move("center","/step=0");
doevent("CreateEdit");
//インディケータ(検索ウィンドウなどと区別するために使用)
editor="on";
}
//FxEditの内容が変更された場合のイベント
function OnFxEditInfoChange1()
{
if (arg(1) == "ModFlag") {
main.caption = str(main.caption," (変更)");
}
}
//クリッカブルURLイベント
function OnFxEditClick1()
{
if (arg(1) == "http") {
shell(arg(2));
}
if (arg(1) == "mailto") {
shell(str("mailto:",arg(2)));
}
}
//フォームにフォーカスが来た場合の処理
function OnSetFocus()
{
if (editor=="on") {
EditWindow=main.id;
main.fxedit(1).setfocus();
}
}
//CPPファイルの読み込み時実行
function Format_CPP_()
{
w.set("AddKeyWord=");
w.add(sys.getstring("CPPKeyWord",deffunc.pos()));
main.fxedit(1).ed(w.pos());
main.fxedit.ed("ShowKey=On")
main.fxedit.ed("TabSize#4")
main.fxedit.ed("ShowC=On")
ShowMkColorClick();
main.fxedit.ed("ShowString=On")
//main.fxedit.modcheck=true;
ShowNumClick();
}
//編集画面のデフォルト作成
function CreateEditBase()
{
main.fxedit(1).ed("AddAlias:%CT+S%=Post:SaveFile()");
//main.fxedit.ed("AddAlias:%CT+F%=Post:ShowFindWin()"); -> AccKeyに変更
main.fxedit.ed("AddAlias:%CT+L%=Post:SetFindStr()");
main.fxedit.ed("AddAlias:PutOne: =Post:PutTab()");
w.set(sys.getinitcmd("KeyWord"));
if (w.length() > 0) {
w.set("AddKeyWord=");
w.add(sys.getinitcmd("KeyWord"));
main.fxedit.ed(w.pos());
}
w.set(sys.getinitcmd("KeyUserWord"));
if (w.length() > 0) {
w.set("AddUserWord=");
w.add(sys.getinitcmd("KeyUserWord"));
main.fxedit.ed(w.pos());
}
main.fxedit(1).ed("ModMark=On");
main.fxedit.ed("Show2Spc=On")
}
//クリッカブルURL ON/OFF
function ChgClick()
{
id=main.menu.getid("クリッカブルURL(&U)");
if (id == "") {
return;
}
if (main.menu.checked(id) == "true") {
main.fxedit(1).ed("ShowURL=Off");
main.menu.checked(id,"false");
} else {
main.fxedit(1).ed("ShowURL=On");
main.menu.checked(id,"true");
}
main.fxedit(1).ed("Paint");
}
//行番号 ON/OFF
function ShowNumClick()
{
id=main.menu.getid("行番号表示(&N)");
if (id == "") {
return;
}
if (main.menu.checked(id) == "true") {
main.fxedit(1).ed("ShowNum=Off");
main.menu.checked(id,"false");
} else {
main.fxedit(1).ed("ShowNum=On");
main.menu.checked(id,"true");
}
main.fxedit(1).ed("Paint");
}
//マーク行の色分け ON/OFF
function ShowMkColorClick()
{
id=main.menu.getid("マーク行色分表示(&M)");
if (id == "") {
return;
}
if (main.menu.checked(id) == "true") {
main.fxedit(1).ed("ShowMarkLine=Off");
main.menu.checked(id,"false");
} else {
main.fxedit(1).ed("ShowMarkLine=On");
main.menu.checked(id,"true");
}
main.fxedit(1).ed("Paint");
}
//TABの挿入
function PutTab()
{
if (USE_LHD=="on") {
w.set(main.fxedit(1).lhd.puttab());
if (w.length()>0) {
w.insert(0,"sPutStr:");
main.fxedit(1).ed(w.pos());
} else {
main.fxedit(1).ed("PutStr: ");
}
} else {
main.fxedit(1).ed("PutStr: ");
}
}
function OnAccKey()
{
//検索ウィンドウ表示
if (arg.pos()=="1") {
ShowFindWin();
return;
}
}
//----------------------------------------------------
//検索ウインドウ表示処理
//----------------------------------------------------
function SetFindStr()
{
EditWindow = main.id;
main.fxedit(1).ed(str("GetFind"));
FindStr = main.fxedit(1).ed("Get,Find");
if (editor=="on") {
x.set(main.getwinlist());
x.topline();
while (x.take()=="true") {
a = main(x.line).caption; //スコープの変更
if (editor=="on") {
main.fxedit(1).ed(str("SetFind:",FindStr));
}
}
}
a=main(EditWindow).fxedit(1).ed("Update"); //スコープの変更
//^^^fxeditのオブジェクトポインタを再設定するため必要
}
function ShowFindWin()
{
if (editor=="on") {
EditWindow = main.id;
FindStr = main.fxedit(1).ed("Get,Find");
FindCase = main.fxedit.ed("Get,FindCase");
FindWord = main.fxedit.ed("Get,FindWord");
w.set(main.fxedit.ed("Get,SelText"));
SelWord = w(1);
}
if (FindWindow!="FindWindow") {
main(FindWindow).visible=true;
main.setfocus();
main.combobox(1).text=FindStr;
main.combobox.setfocus();
if (SelWord != "") {
main.combobox(1).text=SelWord;
}
return;
}
FindWindow = main.add(0,0,493,110,,,2);
main.icon="<r0:icon4>";
main.caption="検索文字列設定";
main.taskbar=true;
main.combobox.add("22","10","325","20"); //object
main.combobox.setfocus();
main.combobox.text=FindStr;
main.btn.add("371","10","100","21"); //object
main.btn.caption="上検索 Ctrl+↑";
main.btn.add("370","50","100","22"); //object
main.btn.caption="下検索 Ctrl+↓";
main.btn.add("277","50","80","22"); //object
main.btn.caption="取込 Ctrl+L";
main.checkbox.add("36","50","97","17"); //object
main.checkbox.caption="ワード検索";
if (FindWord==true) {
main.checkbox.checked=true;
}
main.checkbox.add("144","50","120","17"); //object
main.checkbox.caption="大小文字同一視";
if (FindCase==true) {
main.checkbox.checked=true;
}
if (SelWord != "") {
main.combobox(1).text=SelWord;
}
main.combobox.setfocus();
main.deffunc.set(macro.body);
main.move("center","/step=0");
main.visible="true";
//deffunc登録
main.deffunc.set(sys.getstring("FindWinFunction",deffunc.pos()));
}
//上検索
function FindUp()
{
if (main(EditWindow).fxedit(1).ed("FindUp")=="false") {
alert("検索文字は見つかりません");
}
}
//下検索
function FindDown()
{
if (main(EditWindow).fxedit(1).ed("FindDown")=="false") {
alert("検索文字は見つかりません");
}
}
//検索ウインドウの調整
function SetFindWindow()
{
if (FindWindow=="FindWindow") {
return;
}
if (EditWindow=="EditWindow") {
return;
}
FindStr = main(FindWindow).combobox(1).text;
FindWord = main(FindWindow).checkbox(1).checked;
FindCase = main(FindWindow).checkbox(2).checked;
FindStr=main(EditWindow).fxedit(1).ed(str("SetFind:",FindStr));
w.set(main(FindWindow).combobox(1).items);
w.insline(FindStr);
w.topline();
w.take();
while (w.take()=="true") {
if (w.line == FindStr) {
w.delline();
}
}
main(FindWindow).combobox(1).items=w.pos();
main(FindWindow).combobox(1).text=FindStr;
}
//----------------------------------------------------
//編集ウィンドウ表示処理
//----------------------------------------------------
function MakeEditWinList()
{
if (EditWinList!="EditWinList") {
return;
}
EditWinList = main.add(0,0,400,105,,,3);
main.icon="<r0:icon6>";
main.caption="編集ウィンドウ一覧";
main.taskbar=true;
main.listbox.add();
main.listbox.align="alClient";
main.move("center","/step=0");
//deffunc登録
main.deffunc.set(sys.getstring("EditWinListFunction",macro.body));
}
function ShowEditWinList()
{
EditWindow = main.id;
if (EditWinList!="EditWinList") {
main(EditWinList).visible=true;
main.setfocus();
} else {
MakeEditWinList();
}
RedrawEditWinList();
}
function RedrawEditWinList()
{
main(EditWinList).listbox(1).text="";
x.set(main.getwinlist());
x.topline();
x.take(); //id=1のウィンドウは必ずウンドウ一覧(最初に作られるため)
while (x.take()=="true") {
main(EditWinList).listbox(1).additem(str(x.line," ",main(x.line).caption));
}
}
//----------------------------------------------------
//最近開いたファイルウィンドウ表示処理
//----------------------------------------------------
function MakeRecentWinList()
{
if (RecentList!="RecentList") {
return;
}
RecentList = main.add(0,0,400,200,,,4);
main.icon="<r0:icon6>";
main.caption="最近開いたファイル";
main.taskbar=true;
main.listview.add();
main.listview.align="alClient";
main.listview.Columns("名前",100,"種類",50,"フルパス",200);
main.move("center","/step=0");
main.deffunc.add("function OnListViewDblClick1()");
main.deffunc.add("{");
main.deffunc.add("x.set(main.listview(1).selected)");
main.deffunc.add("OpenFile(x(3))");
main.deffunc.add("}");
main.deffunc.add("function OnFormCloseQuery(){main.visible=false;}");
main.deffunc.add("function OnSetFocus(){RedrawRecentWinList();}");
}
function ShowRecentWinList()
{
if (RecentList!="RecentList") {
main(RecentList).visible=true;
main.setfocus();
} else {
MakeRecentWinList();
main.visible=true;
}
RedrawRecentWinList();
}
function RedrawRecentWinList()
{
main(RecentList).listview(1).items="";
main.listview.items=lhdhist.gethist();
//lhdhist.gethist()は
//ファイル名
//拡張子
//フルパスの順に文字列を作る
}
//----------------------------------------------------
//アウトライン表示処理
//----------------------------------------------------
function ShowOutlineList()
{
if (USE_LHD != "on") {
alert("LHD.DLLがインストールされていません");
return;
}
if (editor!="on") {
return;
}
if (outline!="on") {
main.listview.add(0,0,0,0);
main.listview.align="alLeft";
main.listview.visible=true;
main.listview.Columns("名前",120,"情報",50,"コマンド",0);
main.splitter.add();
main.splitter.align=alLeft;
outline="on";
outline_now="off";
}
if (outline_now == "on") {
outline_now="off";
main.listview(1).visible=false;
main.splitter(1).visible=false;
main.listview.width=0;
main.splitter.width=0;
main.repaint();
return;
} else {
outline_now="on";
}
main.listview(1).visible=true;
main.listview.width=170;
main.splitter(1).visible=true;
main.splitter.active();
main.repaint();
w.set(main.fxedit.lhd.getoutline(edit_name));
main.listview.items=w.pos();
}
function OnListViewDblClick1()
{
w.set(main.listview(1).selected);
main.fxedit(1).ed(str("Jp#",w(3)));
main.fxedit(1).setfocus();
}
//----------------------------------------------------
//終了時関数
//----------------------------------------------------
//フォームを閉じるとき
function OnFormCloseQuery()
{
if (editor=="on") {
//履歴の記憶
SaveHist();
if (main.fxedit(1).ed("Get,ModFlag")=="true") {
a = confirm(3,"ファイルは変更されています。保存しますか?");
if (a == "Cancel") {
a=false;
return;
}
if (a == "Yes") {
if (main.fxedit(1).ed("Save")!="true") {
a=false;
return;
}
}
}
}
a=true;
}
//アプリケーション終了
function AllQuit()
{
now_edit=false;
x.set(main.getwinlist());
x.topline();
while (x.take()=="true") {
a = main(x.line).caption; //スコープの変更
if (editor=="on") {
if (main.fxedit(1).ed("Get,ModFlag")=="true") {
now_edit=true;
}
}
}
if (now_edit=="true") {
a = confirm(4,"編集中のテキストがあります強制\r\n終了しますか?");
if (a == "No") {
a=false;
return;
}
}
end();
}
//タスクトレイイベント
function OnTrayRBClick()
{
main(EditWinList).popup.popup();
}
function OnTrayLBClick()
{
main(EditWinList).popup.popup();
}
//----------------------------------------------------
//LZHファイル内容表示ウィンドウ
//----------------------------------------------------
function Open_LZH()
{
main.add();
main.taskbar=true;
main.width="337";
main.height="345";
main.listbox.add("17","38","294","154"); //ext object
main.label.add("17","15","65","12"); //object
main.label.caption="ファイル一覧";
main.btn.add("20","263","52","24"); //object
main.btn.caption="解凍";
main.btn.add("75","263","52","24"); //object
main.btn.caption="削除";
main.btn.add("130","263","52","24"); //object
main.btn.caption="編集";
main.editbox.add("17","228","294","20"); //object
main.label.add("27","211","79","12"); //object
main.label.caption="解凍先フォルダ";
main.editbox.caption=str(sys.winpath,"\\デスクトップ");
main.deffunc.set(sys.getstring("LZH_FormEvent",deffunc.pos()));
main.move("center","/step=0");
main.visible="true";
main.setfocus();
base_fullname = arg(1);
base_path = file.path(arg(1));
base_name = file.name(arg(1));
main.caption=base_fullname;
y.set(base_fullname);
len = y.length();
x.readdir(arg(1),"*.*",true,true);
main.listbox.text="";
x.topline();
while (x.take()=="true") {
z.set(x.line);
main.listbox.additem(z.pos(len));
}
}
//================================================
//文字登録
//================================================
StringResource MenuString()
{
ファイル(&F)\新規(&N),NewEditWin();main.visible=true;
ファイル(&F)\開く(&O),OpenFile();
ファイル(&F)\上書き保存(&S),SaveFile();
ファイル(&F)\名前をつけて保存(&A),SaveAs();
ファイル(&F)\再読み込み(&R),Reopen();
ファイル(&F)\-,-
ファイル(&F)\選択部分をブラウザで表示(&P),ToHTML();
ファイル(&F)\-,-
ファイル(&F)\終了(&Q),AllQuit();
編集(&E)\元に戻す(&U),main.fxedit(1).ed("Undo");
編集(&E)\やり直し(&R),main.fxedit(1).ed("Redo");
編集(&E)\-,-
編集(&E)\切り取り(&T),main.fxedit(1).ed("{OneOn}{OFF}{Copy}{Del}{ON}{OneOff}");
編集(&E)\コピー,main.fxedit(1).ed("Copy");
編集(&E)\貼り付け(&P),main.fxedit(1).ed("Paste");
編集(&E)\削除(&D),main.fxedit(1).ed("Del");
編集(&E)\-,-
編集(&E)\全て選択,main.fxedit(1).ed("SelAll");
編集(&E)\-,-
編集(&E)\マーク解除(&X),main.fxedit(1).ed("Clear Mark");
検索(&S)\検索文字列設定(&F)\tCtrl+F,ShowFindWin();
検索(&S)\検索文字列の取込(&L)\tCtrl+L,main.fxedit(1).ed("SetFind");
検索(&S)\上検索(&P)\tCtrl+↑,main.fxedit(1).ed("FindUp");
検索(&S)\下検索(&N)\tCtrl+↓,main.fxedit(1).ed("FindDown");
表示(&V)\クリッカブルURL(&U),ChgClick();
表示(&V)\行番号表示(&N),ShowNumClick();
表示(&V)\マーク行色分表示(&M),ShowMkColorClick();
表示(&V)\-,-
表示(&V)\編集中ウィンドウ一覧(&R),ShowEditWinList();
表示(&V)\アウトライン表示(&O),ShowOutlineList();
ヘルプ(&H)\オンラインヘルプ/最新版の確認(&O),shell("http://free01.plala.or.jp/~yfuji/Lthand/Lthand05.htm");
}
StringResource PopupString()
{
切り取り(&T),main.fxedit(1).ed("{OneOn}{OFF}{Copy}{Del}{ON}{OneOff}");
コピー(&C),main.fxedit(1).ed("Copy");
貼り付け(&P),main.fxedit(1).ed("Paste");
-,-
全て選択(&A),main.fxedit(1).ed("SelAll");
-,-
検索文字列の取込(&L)\tCtrl+L,main.fxedit(1).ed("SetFind");
上検索(&P)\tCtrl+↑,main.fxedit(1).ed("FindUp");
下検索(&N)\tCtrl+↓,main.fxedit(1).ed("FindDown");
}
StringResource ToolbarString()
{
<c6>,新規作成,NewEditWin();main.visible=true;
<c7>,開く,OpenFile();
<c8>,保存,SaveFile();
-,,
<c0>,切り取り,main.fxedit(1).ed("{OneOn}{OFF}{Copy}{Del}{ON}{OneOff}");
<c1>,コピー,main.fxedit(1).ed("Copy");
<c2>,貼り付け,main.fxedit(1).ed("Paste");
-,,
<c3>,元に戻す,main.fxedit(1).ed("Undo");
<c4>,やり直し,main.fxedit(1).ed("Redo");
-,,
<r0:icon4>,検索設定,ShowFindWin();
<c22>,マーク下検索,if(main.fxedit(1).ed("MarkDown")!=true) {main.fxedit(1).ed("FileTop")};
}
//<c10>,設定,-
StringResource CPPKeyWord()
{
#define
#else
#endif
#if
#ifdef
#ifndef
#include
#pragma
#undef
__declspec
auto
break
bool
BOOL
true
TRUE
false
FALSE
case
catch
char
class
const
continue
default
define
delete
do
double
else
endif
enum
extern
float
for
friend
goto
if
ifdef
include
inline
int
line
long
new
private
protected
public
return
short
signed
sizeof
static
struct
switch
template
this
throw
try
typedef
unsigned
virtual
void
while
}
StringResource LZH_FormEvent()
{
function OnBtnClick1()
{
if (main.listbox(1).selected=="") {
alert("ファイルを選択してください");
return;
}
x.set(main.listbox.selected);
x.topline();
y.set(main.editbox.caption);
y.trimr("*.\\");
y.add("\\");
y.add(base_name);
while (x.take()=="true") {
f = str(base_fullname, x.line);
z.set(x.line);
z.replace("\\","\\r\\n");
if (file.copy(f, str(y.pos(),"\\",z(2)))!="true") {
alert("コピーできませんでした");
return;
}
}
shell(y.pos());
}
function OnBtnClick2()
{
if (main.listbox(1).selected=="") {
alert("ファイルを選択してください");
return;
}
x.set(main.listbox.selected);
if (confirm(x.pos(),"を削除しますか?") != "Yes") {
return;
}
x.topline();
y.clear();
while (x.take()=="true") {
f = str(base_fullname, x.line);
if (file.delete(f)!="true") {
y.addline(f);
}
}
if (y.length() > 0) {
alert(y.pos(),"は削除できませんでした");
}
OnDrop(base_fullname);
}
function OnBtnClick3()
{
if (main.listbox(1).selected=="") {
alert("ファイルを選択してください");
return;
}
x.set(main.listbox.selected);
x.topline();
if (x.take()=="true") {
OpenFile(str(base_fullname, x.line));
return;
}
}
}
StringResource FindWinFunction()
{
function OnBtnClick1()
{
SetFindWindow();
FindUp();
}
function OnBtnClick2()
{
SetFindWindow();
FindDown();
}
function OnComboBoxEnter1()
{
SetFindWindow();
FindDown();
}
function OnBtnClick3()
{
FindStr=main(EditWindow).fxedit(1).ed("SetFind");
main(FindWindow).combobox(1).text=FindStr;
SetFindWindow();
}
function OnFormCloseQuery()
{
main.visible=false;
}
}
StringResource EditWinListFunction()
{
function OnListDblClick1(){
x.set(main.listbox(1).selected);
a = x.search(" ");
x.length=a;
a = x.pos();
main(a).visible=true;
main.setfocus();
}
function OnFormCloseQuery(){
main.visible=false;
}
function OnSetFocus(){
RedrawEditWinList();
}
}
// ======== FXLコードの注意点 ========================================
//
// 以下の点は特に間違えやすいので注意してください
//
// 1. while文、if文は必ず{}でくくること(省略不可)
//
// 2. FXLのスコープ概念はわかりにくいので注意!
//
// x,y,zオブジェクト等と、大文字で始まる変数などはグローバル
// 小文字で始まる変数はローカル
// ローカルとは各ウインドウ単位(mainオブジェクト毎)に存在し、
// main(???).オブジェクト名
// というように、メインオブジェクトを指定するか
// main.add();
// でメインオブジェクトを生成した時点でスコープが切り替わる
//
// 3. イベント発生時には、メインオブジェクト以下のオブジェクトID指定を
// 忘れずに。(メインオブジェクト以外は自動設定されないため)
//
// 例
// 1. NG 例
// OnFormClose()
// {
// main.listbox.items="aaaa";
// }
// 2. OK 例
// OnFormClose()
// {
// main.listbox(1).items="aaaa";
// }
//
// ===================================================================