From: C.Ponapalt Date: Tue, 7 Sep 2004 08:51:17 +0000 (+0000) Subject: SLPPのエラー処理の強化 X-Git-Tag: BOTTLE2-72~9 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;ds=sidebyside;h=7f1915dd4da29a0555f90648f609577b67daa898;p=winbottle%2Fwinbottle.git SLPPのエラー処理の強化 --- diff --git a/bottleclient/Logs.pas b/bottleclient/Logs.pas index e431df8..0dcda69 100755 --- a/bottleclient/Logs.pas +++ b/bottleclient/Logs.pas @@ -377,7 +377,7 @@ begin // ‚±‚̃ƒO’†‚̃`ƒƒƒ“ƒlƒ‹‚ðŽæ‚èo‚· // TStrings‚ÌŽÀ‘•‚ÍTHashedStringList„§ for i := 0 to Count-1 do begin - if Length(Bottles[i].Channel) > 0 then begin + if Bottles[i].Channel <> '' then begin if Target.IndexOf(Bottles[i].Channel) < 0 then begin Target.Add(Bottles[i].Channel); end; @@ -391,7 +391,7 @@ begin // ‚±‚̃ƒO’†‚̃S[ƒXƒg‚ðŽæ‚èo‚· // TStrings‚ÌŽÀ‘•‚ÍTHashedStringList„§ for i := 0 to Count-1 do begin - if Length(Bottles[i].Ghost) > 0 then begin + if Bottles[i].Ghost <> '' then begin if Target.IndexOf(Bottles[i].Ghost) < 0 then begin Target.Add(Bottles[i].Ghost); end; diff --git a/bottleclient/MainForm.pas b/bottleclient/MainForm.pas index 6f5dfad..ab7d3b5 100755 --- a/bottleclient/MainForm.pas +++ b/bottleclient/MainForm.pas @@ -1421,15 +1421,24 @@ begin //ƒƒbƒZ[ƒWŽóM DispatchBottle(EventType, HeadValue); end; + etMemberCount: begin + //‘ŽQ‰ÁŽÒ” StatusBar.Panels[PanelMembers].Text := HeadValue['Num'] + 'l' end; + etChannelCount: begin + //ƒ`ƒƒƒ“ƒlƒ‹•ÊŽQ‰ÁŽÒ” try - ChannelList.Channel[HeadValue['Channel']].Members := StrToInt(HeadValue['Num']); + if HeadValue['Channel'] <> '' then begin + if ChannelList.Channel[HeadValue['Channel']] <> nil then begin + ChannelList.Channel[HeadValue['Channel']].Members := StrToInt(HeadValue['Num']); + end; + end; except end; end; + etConnectOk: begin ShowHintLabel('SSTP BottleƒT[ƒo‚ƒʐMŠm—§B'); Added := true; @@ -1437,34 +1446,50 @@ begin //ƒ`ƒƒƒ“ƒlƒ‹Ž©“®“o˜^ if not Connecting then PostCommand(['Command: getChannels']); - SakuraSeeker.BeginDetect; + try + SakuraSeeker.BeginDetect; + except + on E: Exception do ShowHintLabel(E.Message,WarningColor); + end; end; + etChannelList: begin UpdateJoinChannelList(HeadValue); // ÅŒã‚ÉŽQ‰Á‚µ‚Ä‚¢‚½ƒ`ƒƒƒ“ƒlƒ‹‚ð‹L˜^‚·‚é if JoinChannelsBackup = nil then JoinChannelsBackup := TStringList.Create; JoinChannelsBackup.Assign(JoinChannels); end; + etCloseChannel: begin - with JoinChannels do - if IndexOf(HeadValue['Channel']) >= 0 then - Delete(IndexOf(HeadValue['Channel'])); - with tabChannel do begin - if Tabs.IndexOf(HeadValue['Channel']) >= 0 then - Tabs.Delete(Tabs.IndexOf(HeadValue['Channel'])); - if Tabs.Count > 0 then TabIndex := 0 else TabIndex := -1; - tabChannelChange(self); + //ƒ`ƒƒƒ“ƒlƒ‹”pŽ~ + if HeadValue['Channel'] <> '' then begin + with JoinChannels do + if IndexOf(HeadValue['Channel']) >= 0 then + Delete(IndexOf(HeadValue['Channel'])); + with tabChannel do begin + if Tabs.IndexOf(HeadValue['Channel']) >= 0 then + Tabs.Delete(Tabs.IndexOf(HeadValue['Channel'])); + if Tabs.Count > 0 then TabIndex := 0 else TabIndex := -1; + tabChannelChange(self); + end; + ShowHintLabel(HeadValue['Channel'] + 'ƒ`ƒƒƒ“ƒlƒ‹‚Í”pŽ~‚³‚ê‚Ü‚µ‚½', + WarningColor); + frmLog.AddCurrentSystemLog('SYSTEM', HeadValue['Channel'] + 'ƒ`ƒƒƒ“ƒlƒ‹‚Í”pŽ~‚³‚ê‚Ü‚µ‚½'); + frmMessageBox.ShowMessage(HeadValue['Channel'] + 'ƒ`ƒƒƒ“ƒlƒ‹‚Í”pŽ~‚³‚ê‚Ü‚µ‚½'); end; - ShowHintLabel(HeadValue['Channel'] + 'ƒ`ƒƒƒ“ƒlƒ‹‚Í”pŽ~‚³‚ê‚Ü‚µ‚½', - WarningColor); - frmLog.AddCurrentSystemLog('SYSTEM', HeadValue['Channel'] + 'ƒ`ƒƒƒ“ƒlƒ‹‚Í”pŽ~‚³‚ê‚Ü‚µ‚½'); - frmMessageBox.ShowMessage(HeadValue['Channel'] + 'ƒ`ƒƒƒ“ƒlƒ‹‚Í”pŽ~‚³‚ê‚Ü‚µ‚½'); end; + etForceBroadcastInformation: begin - if HeadValue['Type'] = 'Vote' then begin - frmLog.VoteLog(HeadValue['MID'], StrToIntDef(HeadValue['Num'], 0)); - end else if HeadValue['Type'] = 'Agree' then begin - frmLog.AgreeLog(HeadValue['MID'], StrToIntDef(HeadValue['Num'], 0)); + //“Š•[^“¯ˆÓ^‚»‚Ì‘¼ƒuƒ[ƒhƒLƒƒƒXƒgî•ñ + if HeadValue['MID'] <> '' then begin + try //Num‚ª”’l‚Å‚È‚©‚Á‚½‚Æ‚«‘΍ô + if HeadValue['Type'] = 'Vote' then begin + frmLog.VoteLog(HeadValue['MID'], StrToIntDef(HeadValue['Num'], 0)); + end else if HeadValue['Type'] = 'Agree' then begin + frmLog.AgreeLog(HeadValue['MID'], StrToIntDef(HeadValue['Num'], 0)); + end; + except + end; end; end; end; @@ -1623,8 +1648,9 @@ begin Tabs.Clear; for i := 0 to JoinChannels.Count-1 do begin //ŽóMê—pƒ`ƒƒƒ“ƒlƒ‹‚Í•\Ž¦‚µ‚È‚¢ - if not ChannelList.Channel[JoinChannels[i]].NoPost then - Tabs.Add(JoinChannels[i]); + if ChannelList.Channel[JoinChannels[i]] <> nil then + if not ChannelList.Channel[JoinChannels[i]].NoPost then + Tabs.Add(JoinChannels[i]); end; Tabs.EndUpdate; // Œ³‚©‚çƒ`ƒƒƒ“ƒlƒ‹‚ÉŽQ‰Á‚µ‚Ä‚¢‚½ê‡‚Í @@ -1699,10 +1725,11 @@ var Opt: TSstpSendOptions; CueItem: TLogItem; ReplaceHash: THeadValue; begin + Channel := Dat['Channel']; + Opt := []; if Pref.NoTranslate then Opt := Opt + [soNoTranslate]; if Pref.NoDescript then Opt := Opt + [soNoDescript]; - Channel := Dat['Channel']; case EventType of etScript: Sender := Channel; etForceBroadcast: Sender := 'y‚¨’m‚点z';