
24.03.2015, 16:48
|
Прохожий
|
|
Регистрация: 24.03.2015
Сообщения: 3
Версия Delphi: 4.453
Репутация: 10
|
|
Загрузить из файла в StringGrid
На форме есть StringGrid,рисую на нём какой-либо узор клетками(они закрашиваются при нажатии на ЛКМ),нажимаю запись и цвета записываются в c:\2.txt.Вопрос в том,как достать этот рисунок из c:\2.txt и поместить его на StringGrid при нажатии,например,на вторую кнопку?
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Button1: TButton;
Button2: TButton;
procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure StringGrid1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
Tm= array [0..50,0..50] of byte;
var
Form1: TForm1;
m:tm;
implementation
{$R *.dfm}
procedure TForm1.StringGrid1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
Sg : TStringGrid;
Col, Row : Integer;
begin
Sg := Sender as TStringGrid;
Sg.MouseToCell(X, Y, Col, Row);
if Button = mbLeft then begin
Sg.Rows[Row].Objects[Col] := Pointer(1);
M[Row,Col]:=66;
end else if Button = mbRight then begin
Sg.Rows[Row].Objects[Col] := Pointer(0);
M[Row,Col]:=65;
end;
end;
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
type
TSave = record
BrColor : TColor;
end;
var
Sg : TStringGrid;
Save : TSave;
Flag : Integer;
begin
Sg := Sender as TStringGrid;
Flag := Integer(Sg.Rows[ARow].Objects[ACol]);
if Flag <> 1 then Exit;
with Sg.Canvas, Save do begin
BrColor := Brush.Color;
Brush.Color := RGB(10, 80, 10);
FillRect(Rect);
Brush.Color := BrColor;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var f:integer;
begin
f:=fileCreate('c:\2.txt');
filewrite(f,m,sizeof(m));
fileclose(f);
end;
end.
Это близко к истине?((
Код:
procedure TForm1.Button2Click(Sender: TObject);
var f:TextFile;
begin
AssignFile(f,'2.txt');
Reset(f);
fileread(f,m,sizeof(m));
end;
|