Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2011, 23:10   #1
Anny_Apple
Пользователь
 
Регистрация: 07.03.2011
Сообщений: 32
Радость Создание таблицы

Доброго времени!

Помогите, пожалуйста, исправить ошибку.


Код:
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...... ....перед комментарием //получает текст из редактируемого поля и сохраняет его
Anny_Apple вне форума Ответить с цитированием
Старый 01.04.2011, 23:40   #2
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Нормааальный подход...
Код:
procedure TfmDrawGrid.dgDrawSetEditText(Sender : TObject;    
                                        ACol, ARow : integer;
                                        const Value : string);
// получает текст из редактируемого поля и сохраняет его в slBitMap
begin
    slBitMap[2 * ACol + ARow] := Value

end;
Ну, и чему же равно Value ???
asmodey1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создание таблицы данных selby_25 Microsoft Office Excel 8 27.12.2010 17:39
Создание таблицы с 0-ым отступом. Polotenchik Microsoft Office Word 5 29.08.2009 23:36
Создание таблицы в цикле xxxsas PHP 2 18.03.2009 17:20