Доброго времени!
Помогите, пожалуйста, исправить ошибку.
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids;
type
TfmDrawGrid = class(TForm)
dgDraw: TDrawGrid;
procedure FormCreate(Sender: TObject);
procedure FormDeactivate(Sender : TObject);
procedure dgDrawGetEditText(Sender : TObject;
ACol, ARow : integer;
var Value : string);
procedure dgdrawcell(Sender : TObject;
ACol, Arow : integer;
const Value : string);
procedure dgDrawDrawCell(Sender : TObject;
ACol, Arow : integer;
Rect : TRect;
State : TGridDrawState);
procedure Formrelize(Sender : TObject);
private
{ Private declarations }
slBitMap : TStringList; //список подписей и изображений
public
{ Public declarations }
end;
var
fmDrawGrid : TfmDrawGrid;
implementation
{$R *.dfm}
procedure TfmDrawGrid.FormCreate(Sender : TObject);
// создаёт и наполняет slBitMap в момент создания формы
const
Bmp_Path = 'C:\Program Files\Common Files\Borland Shared\'+'Images\Splash\16Color\';
Fnames : array [0..3] of string = ('athena.bmp', 'construc.bmp', 'earth.bmp', 'techlgy.bmp');
//имена фаулов с картинками
var
k : integer;
begin
//создаём список строк
slBitMap := TStringList.Create;
//вставляем в него названия файлов и картинки
with slBitMap do for k := 0 to 3 do
begin
Add(FNames[k]);
Objects[k] := TBitMap.Create;
(Objects[k] as TBitMap).LoadFromFile(Bmp_Path + FNames[k]);
end;
end;
procedure TfmDrawGrid.FormDeactivate(Sender: TObject);
//удаляем список slBitMap при разрушении формы
begin
slBitMap.Free
end;
procedure TfmDrawGrid.dgDrawGetEditText(Sender : TObject;
Acol, ARow : integer;
var Value : string);
//передаёт в редактируемое поле текст из ячейки
begin
Value := slBitMap[2 * ACol + ARow]
end;
procedure TfmDrawGrid.dgDrawSetEditText(Sender : TObject;
ACol, ARow : integer;
const Value : string);
// получает текст из редактируемого поля и сохраняет его в slBitMap
begin
slBitMap[2 * ACol + ARow] := Value
end;
procedure TfmDrawGrid.dgDrawDrawCell(Sender: TObject;
ACol: Integer;
Arow: Integer;
Rect: TRect;
State: TGridDrawState);
//рисуем картинку из slBitMap.OBjects и текст из slBitMap
var
k : integer;
begin
//пересчитываем координаты ячейки в индекс списка
k := 2 * ACol + ARow;
with dgDraw.Canvas, Rect, slBitMap do
begin
//уменьшаем высоту картинки для вывода под ней текств
Bottom := Bottom - TextHeight('1') -2;
//рисуем картинку
StretchDraw(Rect, (Objects[k] as TBitMap));
//центрируем тексст по горизонтали и выводим его
TextOut(Left + (Right - Left - TextWidth(slBitMap[k])) div 2,
Bottom + 1, slBitMap[k])
end
end;
procedure TfmDrawGrid.Formrelize(Sender: TObject);
//изменяем размеры ячеек при изменении размеров окна
//запас в один пиксел необходим для предотвращения автоматической прокрутки
begin
with dgDraw do
begin
DefaultColWidth := ClientRect.Right div 2 - 1;
DefaultRowHeight := ClientRect.Bottom div 2 - 1
end;
end;
end.
ошибка в procedure TfmDrawGrid.dgDrawSetEditText...... ....перед комментарием //получает текст из редактируемого поля и сохраняет его