procedure TMainForm.SaveBoard;
var
MemoryStream: TMemoryStream;
FileStream : TFileStream;
Writer : TWriter;
Buffer : Pointer;
Size : Longint;
Column : Integer;
Row : Integer;
begin
MemoryStream := TMemoryStream.Create;
FileStream := TFileStream.Create (SaveFilename, fmCreate);
Writer := TWriter.Create (FileStream, $1000);
try
for Column := 0 to 4 do for Row := 0 to
4 do
begin
MemoryStream.Clear;
Bitmaps[Column, Row].SaveToStream (MemoryStream);
Buffer := MemoryStream.Memory;
Size := MemoryStream.Size;
Writer.WriteInteger (Size);
Writer.Write (Buffer^, Size);
end;
finally
Writer.Free;
FileStream.Free;
MemoryStream.Free;
end;
end;
procedure TMainForm.Open1Click(Sender: TObject);
var
MemoryStream: TMemoryStream;
FileStream : TFileStream;
Buffer : Pointer;
Reader : TReader;
Column : Integer;
Row : Integer;
Size : Longint;
begin
OpenDialog2.Filename := SaveFilename;
if not OpenDialog2.Execute then Exit;
MemoryStream := TMemoryStream.Create;
FileStream := TFileStream.Create (OpenDialog2.Filename,
fmOpenRead);
Reader := TReader.Create (FileStream, $1000);
try
for Column := 0 to 4 do for Row := 0 to
4 do
begin
Size := Reader.ReadInteger;
MemoryStream.SetSize (Size);
Buffer := MemoryStream.Memory;
Reader.Read (Buffer^, Size);
Bitmaps[Column, Row].LoadFromStream (MemoryStream);
end;
finally
Reader.Free;
FileStream.Free;
MemoryStream.Free;
end;
DrawGrid1.Repaint;
SaveFilename := OpenDialog2.Filename;
Caption := 'Bingo-создатель - ' +
ExtractFilename (SaveFilename);
end;