OSDN Git Service

・メニューの開放に Delete ではなく Free を使うように。
[gikonavigoeson/gikonavi.git] / Editor.pas
index b5d1175..c569832 100644 (file)
@@ -10,7 +10,7 @@ uses
 {$ELSE}
        SHDocVw_TLB,
 {$IFEND}
-       ActiveX, {HTTPApp,} YofUtils, IniFiles, StrUtils,
+       ActiveX, {HTTPApp,} YofUtils, Trip, IniFiles, StrUtils,
        GikoSystem, GikoUtil, ImgList, Clipbrd, BoardGroup,
        IdAntiFreezeBase,       IdAntiFreeze, IdBaseComponent, IdComponent,
        IdTCPConnection, IdTCPClient, IdHTTP, ActnList, StdActns, IdIntercept,
@@ -81,12 +81,12 @@ type
                TransAction: TAction;
                A1: TMenuItem;
                KotehanCheckBox: TCheckBox;
-    TitlePanel: TPanel;
+               TitlePanel: TPanel;
                Label1: TLabel;
                TitleEdit: TEdit;
-    SelectAllAction: TAction;
-    N2: TMenuItem;
-    SelectAll1: TMenuItem;
+               SelectAllAction: TAction;
+               N2: TMenuItem;
+               SelectAll1: TMenuItem;
                procedure EditorPageChange(Sender: TObject);
                procedure FormCreate(Sender: TObject);
                procedure BrowserStatusTextChange(Sender: TObject;
@@ -118,7 +118,7 @@ type
                        AStream: TStream);
                procedure IdLogDebugSend(ASender: TIdConnectionIntercept;
                        AStream: TStream);
-    procedure SelectAllActionExecute(Sender: TObject);
+               procedure SelectAllActionExecute(Sender: TObject);
        private
                FThreadItem: TThreadItem;
                FBoard: TBoard;
@@ -210,7 +210,7 @@ end;}
 procedure TEditorForm.FormCreate(Sender: TObject);
 var
        wp: TWindowPlacement;
-    hUser32 : HINST;
+               hUser32 : HINST;
 begin
        FWork := False;
        Browser.Navigate('about:blank');
@@ -264,12 +264,12 @@ begin
        MailComboBox.Items.Assign(GikoSys.Setting.MailList);
        SetFont;
        //u32 := GetModuleHandle('User32.dll') <> 0;
-    hUser32 := LoadLibrary('User32.dll');
-    if hUser32 <> 0 then
-       TransAction.Enabled := true
-    else
-        TransAction.Enabled := false;
-    FreeLibrary(hUser32);
+               hUser32 := LoadLibrary('User32.dll');
+               if hUser32 <> 0 then
+                       TransAction.Enabled := true
+               else
+                               TransAction.Enabled := false;
+               FreeLibrary(hUser32);
 
 end;
 
@@ -360,7 +360,7 @@ begin
 //     s := StringReplace(s, '&', '&amp;', [rfReplaceAll]);
        s := StringReplace(s, '<', '&lt;', [rfReplaceAll]);
        s := StringReplace(s, '>', '&gt;', [rfReplaceAll]);
-//     s := StringReplace(s, ' ', '&nbsp;', [rfReplaceAll]);  //\8ed\97l\95Ï\8dX\82É\82æ\82è&nbsp;\8eg\97p\95s\89Â
+//     s := StringReplace(s, ' ', '&nbsp;', [rfReplaceAll]);   //\8ed\97l\95Ï\8dX\82É\82æ\82è&nbsp;\8eg\97p\95s\89Â
        s := StringReplace(s, '"', '&quot;', [rfReplaceAll]);
        Result := s;
 end;
@@ -522,11 +522,7 @@ begin
                RefURL := GikoSys.UrlToServer(FBoard.URL) + 'test/bbs.cgi';
        end else begin
                URL := FThreadItem.GetSendURL;
-               RefURL := GikoSys.UrlToServer(FThreadItem.ParentBoard.URL)
-                                               + 'test/read.cgi/'
-                                               + FThreadItem.ParentBoard.BBSID
-                                               + '/' + ChangeFileExt(FThreadItem.FileName, '')
-                                               + '/l50';
+               RefURL := FThreadItem.URL;
        end;
        Indy.Request.UserAgent := GikoSys.GetUserAgent;
        Indy.Request.Referer := RefURL;
@@ -679,17 +675,17 @@ begin
        if AnsiPos('\8f\91\82«\82±\82Ý\82ª\8fI\82í\82è\82Ü\82µ\82½', ResponseText) <> 0 then
                Result := grtOK
        else if (AnsiPos('\83N\83b\83L\81[\82ª\82È\82¢\82©\8aú\8cÀ\90Ø\82ê\82Å\82·', ResponseText) > 0) or
-                                       (AnsiPos('<title>\83N\83b\83L\81[\8am\94F\81I</title>', ResponseText) > 0)  or
-                                       (AnsiPos('<title>\81¡\83N\83b\83L\81[\8am\94F\81I\81¡</title>', ResponseText) > 0)  or
+                                       (AnsiPos('<title>\83N\83b\83L\81[\8am\94F\81I</title>', ResponseText) > 0)    or
+                                       (AnsiPos('<title>\81¡\83N\83b\83L\81[\8am\94F\81I\81¡</title>', ResponseText) > 0)        or
                                        //(AnsiPos('\83N\83b\83L\81[\8am\94F', ResponseText) > 0) or
-                                       (AnsiPos(RES2CH_COOKIE, ResponseText) > 0)  then
+                                       (AnsiPos(RES2CH_COOKIE, ResponseText) > 0)      then
                Result := grtCookie
-       else if (AnsiPos('<font size=+2 color=#FF0000>\8f\91\82«\8d\9e\82Ý\83`\83F\83b\83N\81I </font>', ResponseText) > 0)  or
-                                       (AnsiPos('<title>\81¡ \8f\91\82«\8d\9e\82Ý\8am\94F\82µ\82Ü\82· \81¡</title>', ResponseText) > 0)  or
-                                       (AnsiPos('<title>\93\8a\8de\8am\94F</title>', ResponseText) > 0)  or
-                                       (AnsiPos('<b>\8f\91\82«\82±\82Ý\8am\94F</b>', ResponseText) > 0)  or
-                                       (AnsiPos('="../test/subbbs.cgi">', ResponseText) > 0)  or
-                                       (AnsiPos(RES2CH_FALSE, ResponseText) > 0)  then
+       else if (AnsiPos('<font size=+2 color=#FF0000>\8f\91\82«\8d\9e\82Ý\83`\83F\83b\83N\81I </font>', ResponseText) > 0)   or
+                                       (AnsiPos('<title>\81¡ \8f\91\82«\8d\9e\82Ý\8am\94F\82µ\82Ü\82· \81¡</title>', ResponseText) > 0)  or
+                                       (AnsiPos('<title>\93\8a\8de\8am\94F</title>', ResponseText) > 0)  or
+                                       (AnsiPos('<b>\8f\91\82«\82±\82Ý\8am\94F</b>', ResponseText) > 0)      or
+                                       (AnsiPos('="../test/subbbs.cgi">', ResponseText) > 0)   or
+                                       (AnsiPos(RES2CH_FALSE, ResponseText) > 0)       then
                Result := grtCheck
        else
                Result := grtError;
@@ -776,6 +772,7 @@ procedure TEditorForm.SendActionExecute(Sender: TObject);
 var
        Board: TBoard;
        rc: Integer;
+       state : TGikoDownloadState;
 begin
        if FWork then
                Exit;
@@ -807,7 +804,42 @@ begin
                        Board.KotehanName := NameComboBox.Text;
                        Board.KotehanMail := MailComboBox.Text;
                end;
-               Send(Board.SPID, Board.PON, True);
+
+               if Board.IsBoardPlugInAvailable then begin
+                       if FThreadItem = nil then begin
+                               // \83X\83\8c\97§\82Ä
+                               state := TGikoDownloadState( Board.BoardPlugIn.CreateThread(
+                                       DWORD( Board ), TitleEdit.Text, NameComboBox.Text, MailComboBox.Text, BodyEdit.Text ) );
+
+                               if state = gdsComplete then begin
+                                       GikoForm.PlaySound('ResEnd');
+                                       SaveSendFile;
+                                       GikoForm.AddMessageList(FBoard.Title + ' [\90V\83X\83\8c\91\97\90M\8fI\97¹]', nil, gmiOK);
+                                       Close;
+                               end else if State = gdsError then begin
+                                       GikoForm.AddMessageList(FBoard.Title + ' [\90V\83X\83\8c\91\97\90M\8e¸\94s]', nil, gmiNG);
+                               end else if State = gdsAbort then begin
+                                       GikoForm.AddMessageList(FThreadItem.Title + ' [\92\86\92f]', nil, gmiSAD);
+                               end;
+                       end else begin
+                               // \83\8c\83X
+                               state := TGikoDownloadState( FThreadItem.BoardPlugIn.WriteThread(
+                                       DWORD( FThreadItem ), NameComboBox.Text, MailComboBox.Text, BodyEdit.Text ) );
+
+                               if state = gdsComplete then begin
+                                       GikoForm.PlaySound('ResEnd');
+                                       SaveSendFile;
+                                       GikoForm.AddMessageList(FThreadItem.Title + ' [\83\8c\83X\91\97\90M\8fI\97¹]', nil, gmiOK);
+                                       Close;
+                               end else if State = gdsError then begin
+                                       GikoForm.AddMessageList(FThreadItem.Title + ' [\83\8c\83X\91\97\90M\8e¸\94s]', nil, gmiNG);
+                               end else if State = gdsAbort then begin
+                                       GikoForm.AddMessageList(FThreadItem.Title + ' [\92\86\92f]', nil, gmiSAD);
+                               end;
+                       end;
+               end else begin
+                       Send(Board.SPID, Board.PON, True);
+               end;
        finally
                FWork := False;
        end;