+ RocalRuleTab.TabVisible := LocalRule.Checked;
+ ini.WriteBool('EditorForm', 'LocalRuleTab', RocalRuleTab.TabVisible);
+ ini.UpdateFile;
+ finally
+ ini.Free;
+ end;
+end;
+
+procedure TEditorForm.FormDeactivate(Sender: TObject);
+begin
+ if GikoSys.Setting.GestureEnabled then begin
+ MouseGesture.UnHook;
+ //MouseGesture.SetHook( GikoForm.Handle );
+ end;
+
+end;
+
+procedure TEditorForm.OnGestureStart(Sender: TObject);
+begin
+//
+end;
+
+procedure TEditorForm.OnGestureMove(Sender: TObject);
+var
+ s: string;
+ Action: TAction;
+ ActStr: string;
+begin
+ s := MouseGesture.GetGestureStr;
+ ActStr := '';
+ Action := GikoSys.Setting.Gestures.GetGestureAction(s);
+ if Action <> nil then
+ ActStr := '\81i' + Action.Caption + '\81j';
+ s := '\83W\83F\83X\83`\83\83\81[: ' + s + ActStr;
+ StatusBar.Panels[0].Text := s;
+end;
+
+procedure TEditorForm.OnGestureEnd(Sender: TObject);
+var
+ s: string;
+ Action: TAction;
+begin
+ s := MouseGesture.GetGestureStr;
+ MouseGesture.Clear;
+ Action := GikoSys.Setting.Gestures.GetGestureAction(s);
+ if Action <> nil then
+ Action.Execute;
+ StatusBar.Panels[0].Text := '';
+end;
+
+procedure TEditorForm.ShowBoardHead(ABoard: TBoard; AMemo: TMemo);
+var
+ wDoc, WTex, le: OLEVariant;
+begin
+ //\8eQ\8dl\8c³
+ //http://www.campus.ne.jp/~ishigami/CREATION/TECHNIC/WEBAP-2.htm
+ WebBrowser1.Navigate(ABoard.GETHEADTXTFileName,le,le,le,le);
+ //\83\8c\83^\83\8a\83\93\83O\82ª\92x\82·\82¬\82ÄTXT\82É\88Ú\82¹\82È\82¢\81B\82Ê\82é\82Ûorz
+ //\89º\82Ì\82æ\82¤\82É\82¿\82á\82ñ\82Æ\93Ç\82Ý\8d\9e\82Ý\82ª\8fI\82í\82Á\82Ä\82¢\82é\82©\81A\83`\83F\83b\83N\82·\82ê\82Î\82¢\82¢\82ñ\82¾\82æ\81B
+ //\82±\82ê\82Å\82¢\82¯\82Ü\82µ\82½\81B\82 \82è\82ª\82Æ\82¤\82²\82´\82¢\82Ü\82µ\82½\81B
+ while (WebBrowser1.ReadyState <> READYSTATE_COMPLETE) and
+ (WebBrowser1.ReadyState <> READYSTATE_INTERACTIVE) do begin
+ Application.ProcessMessages;
+ end;
+ wDoc := WebBrowser1.Document;
+ wTex := wDoc.body.createTextRange;
+ LocalEdit.Text := wTex.text;
+end;
+
+procedure TEditorForm.LocalRuleBrowseClick(Sender: TObject);
+var
+ URL: String;
+ ABoard: TBoard;
+begin
+ ABoard := GetBoard;
+
+ if ABoard = nil then Exit;
+
+ URL := ABoard.GETHEADTXTFileName;
+ GikoSys.OpenBrowser(URL, gbtAuto);
+end;
+
+procedure TEditorForm.SaveNameMailActionExecute(Sender: TObject);
+begin
+ SaveNameMailAction.Checked := not SaveNameMailAction.Checked;
+ KotehanCheckBox.Enabled := SaveNameMailAction.Checked;
+end;
+
+function TEditorForm.LFusianaGet(const s: String): Boolean;
+const
+ FUSIANA = 'fusianasan';
+var
+ i: Integer;
+begin
+ i := AnsiPos(FUSIANA, s);
+ Result := (i > 0);
+end;
+
+procedure TEditorForm.BeLogInOutEActionExecute(Sender: TObject);
+begin
+ GikoSys.Setting.BeLogin := not GikoSys.Setting.BeLogin;
+end;
+
+procedure TEditorForm.BeLogInOutEActionUpdate(Sender: TObject);
+begin
+ if (GikoSys.Setting.BeUserID <> '') and (GikoSys.Setting.BeCode <> '') then begin
+ if (GikoSys.Setting.BeLogin) then BeLogInOutEAction.Checked := true
+ else BeLogInOutEAction.Checked := false;
+ BeLogInOutEAction.Enabled := true
+ end else
+ BeLogInOutEAction.Enabled := false;
+
+end;
+// Cookie\82Ì\8eæ\93¾
+procedure TEditorForm.GetCookie(Rawtext: String; ABoard: TBoard);
+const
+ COOKIE_MARK = 'Set-Cookie:';
+ VAL_SPID = 'SPID=';
+ VAL_PON = 'PON=';
+ EXPIRES_MARK = 'expires=';
+var
+// i: Integer;
+ tmp : string;
+ val : string;
+begin
+ ABoard.Cookie := '';
+ while (AnsiPos(COOKIE_MARK, Rawtext) > 0 ) do begin
+ //i := 0;
+ tmp := Copy(Rawtext, AnsiPos(COOKIE_MARK, Rawtext) + Length(COOKIE_MARK), Length(Rawtext));
+ Delete(Rawtext, 1, AnsiPos('Set-Cookie', Rawtext)+ Length(COOKIE_MARK));
+ //Cookie\82ð\90Ø\82è\8fo\82·
+ val := Trim(GikoSys.GetTokenIndex(tmp, ';', 0));
+ if( AnsiPos(VAL_SPID, val) > 0 ) then begin
+ ABoard.SPID := Copy(val, AnsiPos(VAL_SPID, val) + Length(VAL_SPID), Length(val));
+ end else if( AnsiPos(VAL_PON, val) > 0 ) then begin
+ ABoard.PON := Copy(val, AnsiPos(VAL_PON, val) + Length(VAL_PON), Length(val));
+ end else begin
+ ABoard.Cookie := ABoard.Cookie + val + '; ';
+ end;
+ //expires\82ð\90Ø\82è\8fo\82·
+ val := Trim(GikoSys.GetTokenIndex(tmp, ';', 1));
+ if( AnsiPos(EXPIRES_MARK, val) > 0) then begin
+ Delete(val, 1, AnsiPos(EXPIRES_MARK, val) + Length(EXPIRES_MARK) - 1);
+ ABoard.Expires := GMTToLocalDateTime(val);
+ end;
+ end;
+end;
+
+
+//! \83T\83\93\83o\8dX\90V\82Ì\83A\83N\83V\83\87\83\93\82ÌUpdate\83C\83x\83\93\83g\81@\8aÈ\92P\82Ì\82½\82ß\83^\83C\83}\81[\82Æ\93¯\82¶\82É\82µ\82Ä\82¨\82
+procedure TEditorForm.UpdateSambaActionUpdate(Sender: TObject);
+begin
+ UpdateSambaAction.Enabled := FSambaTimer.Enabled;
+end;
+
+//! \83T\83\93\83o\8dX\90V\83A\83N\83V\83\87\83\93
+procedure TEditorForm.UpdateSambaActionExecute(Sender: TObject);
+var
+ input : String;
+ i : Integer;
+begin
+ if InputQuery('Samba24\90Ý\92è\92l\8dX\90V', '\90V\82µ\82¢\90Ý\92è\92l\82ð\93ü\97Í\82µ\82Ä\82\82¾\82³\82¢', input) then begin
+ input := ZenToHan(input);
+ if GikoSys.IsNumeric(input) then begin
+ FSambaTimer.UpdateSambaSetting(StrToInt(input));
+ UpdateSambaStatus;
+ //\91S\82Ä\82Ì\83t\83H\81[\83\80\82©\82ç\81ASamba\83^\83C\83}\81[\82ð\8dX\90V\82·\82é
+ for i := 0 to Screen.FormCount - 1 do begin
+ if Screen.Forms[i] is TEditorForm then begin
+ TEditorForm(Screen.Forms[i]).FSambaTimer.Update;
+ TEditorForm(Screen.Forms[i]).UpdateSambaStatus;
+ end;