procedure SetOnLoadFailure(const Value: TBottleLogLoadFailureEvent);
procedure SetSelectedIndex(const Value: integer);
procedure SetOnLoadWork(const Value: TNotifyEvent);
+ procedure DoLoadFailure(const ErrorMessage: String);
public
constructor Create(const Title: String);
destructor Destroy; override;
var LogItem: TLogItem;
begin
LogItem := TLogItem.Create(ltBottle, MID, Channel, Script, Ghost, Now());
- Insert(0, LogItem);
+ try
+ Insert(0, LogItem);
+ except
+ LogItem.Free;
+ raise;
+ end;
end;
procedure TBottleLogList.AddSystemLog(const MessageString: String);
var LogItem: TLogItem;
begin
LogItem := TLogItem.Create(ltSystemLog, '', '', MessageString, '', Now());
- Insert(0, LogItem);
+ try
+ Insert(0, LogItem);
+ except
+ LogItem.Free;
+ raise;
+ end;
end;
function TBottleLogList.Bottle(MID: String): TLogItem;
end;
end;
+procedure TBottleLogList.DoLoadFailure(const ErrorMessage: String);
+begin
+ self.Clear;
+ self.AddSystemLog(ErrorMessage);
+ if Assigned(FOnLoadFailure) then FOnLoadFailure(self, ErrorMessage);
+end;
+
function TBottleLogList.GetBottles(Index: integer): TLogItem;
begin
Result := Items[Index] as TLogItem;
procedure TBottleLogList.HttpFailure(Sender: TObject);
begin
- if Assigned(FOnLoadFailure) then FOnLoadFailure(Self, '\83T\81[\83o\82Ì\90Ú\91±\82É\8e¸\94s\82µ\82Ü\82µ\82½');
+ if Assigned(FOnLoadFailure) then DoLoadFailure('\83T\81[\83o\82Ì\90Ú\91±\82É\8e¸\94s\82µ\82Ü\82µ\82½');
end;
procedure TBottleLogList.HttpSuccess(Sender: TObject);
StrList.Text := Stream.DataString;
if StrList[0] <> 'Result: OK' then begin
if Assigned(FOnLoadFailure) then
- FOnLoadFailure(Self, '\83T\81[\83o\82ª\83G\83\89\81[\82ð\95Ô\82µ\82Ü\82µ\82½'#13#10 + Stream.DataString);
+ DoLoadFailure('\83T\81[\83o\82ª\83G\83\89\81[\82ð\95Ô\82µ\82Ü\82µ\82½'#13#10 + Stream.DataString);
end else begin
while StrList.Count > 0 do
if StrList[0] <> '' then StrList.Delete(0) else Break; //\83w\83b\83_\81[\82ð\8dí\8f\9c\82·\82é
StrToInt(Copy(S, 9, 2)), StrToInt(Copy(S, 11, 2)), StrToInt(Copy(S, 13, 2)), 0);
end;
begin
- Self.Clear;
Source := nil;
SourceStream := nil;
try
Source.Text := SourceStream.DataString;
i := 0;
if Source.Count = 0 then begin
- if Assigned(FOnLoadFailure) then FOnLoadFailure(Self, '\83\8d\83O\82ª\93Ç\82Ý\8eæ\82ê\82Ü\82¹\82ñ');
+ DoLoadFailure('\8ew\92è\8fð\8c\8f\82Ì\83\8d\83O\82Í\91¶\8dÝ\82µ\82Ü\82¹\82ñ');
Exit;
end;
if Source[0] <> 'OK' then begin
end;
+ Self.Clear;
while (i + 7) < Source.Count do begin
LogItem := TLogItem.Create(ltBottle, Source[i+1], Source[i+2],
Source[i+7], Source[i+3], S2D(Source[i]));
end;
except
On EConvertError do begin
- if Assigned(FOnLoadFailure) then FOnLoadFailure(Self, '\83\8d\83O\82Ì\8c`\8e®\82ª\95s\90³\82Å\82·');
+ DoLoadFailure('\83T\81[\83o\89\9e\93\9a\82Ì\8c`\8e®\82ª\95s\90³\82Å\82·');
Self.Clear;
end;
end;