Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.04;
Скачать: CL | DM;

Вниз

DrawGrid   Найти похожие ветки 

 
Barma   (2007-01-15 14:58) [0]

день добрый всем,я начинающий.
вопрос пытаюсь сделать чтото похожее на фотоальбом(принцип жмёш на кнопку открывается диалог меню выбираеш рис и он прорисовывается в дравгриде).код примерно такой
а вот как сделать чтоб при следущем нажатии на кнопку и выборе картинки она помещалась уже в следущую ячейку и т.д....
за ранее спасибоOpenPictureDialog1.Filter := GraphicFilter(TGraphic);
if OpenPictureDialog1.Execute
then Image1.Picture.LoadFromFile
(OpenPictureDialog1.FileName);
end;
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if ((ARow = 0) and (acol = 0)) then
DrawGrid1.Canvas.StretchDraw(Rect,Image1.Picture.Graphic);
end;
end.


 
DimaBr   (2007-01-15 15:40) [1]

Внимание! Здесь обсуждаются вопросы, связанные с разработкой компонентов, редакторов свойств, редакторов компонентов и экспертов IDE.
Вопросы по поиску и использованию готовых компонентов, редакторов или экспертов являются нарушением тематики и могут быть удалены.


 
DimaBr   (2007-01-15 15:49) [2]

У вас сама картинка хранится в Image1 , а рисуется гридом. Храните вторую (третью.......)  в массиве, а в StringGride храните номер картинки в массиве.

var Pictures: array of TBitMap;

var x: integer;
begin
if OpenPictureDialog1.Execute then begin
  X := High(Pictures)+1;
  SetLength(Pictures, X+1);
  Pictures[X] := TBitMap.Create;
  Pictures[X].LoadFromFile(OpenPictureDialog1.FileName);
  StringGrid1.ColCount := X;
  StringGrid1.Cells[X,1] := IntToStr(X);
end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var x: integer;
begin
 if (ARow = 1) then begin
   x := StrToInt(StringGrid1.Cells[ACol,1]);
   DrawGrid1.Canvas.StretchDraw(Rect,Pictures[X]);
 end;
end;

 


 
Barma   (2007-01-15 16:40) [3]

Тут чтото то стринг грид то дравгрид ну вопщем если даже всё переделать вот такprocedure TForm1.Button1Click(Sender: TObject);
var Pictures: array of TBitMap;
var x: integer;
begin
if OpenPictureDialog1.Execute then begin
 X := High(Pictures)+1;
 SetLength(Pictures, X+1);
 Pictures[X] := TBitMap.Create;
 Pictures[X].LoadFromFile(OpenPictureDialog1.FileName);
 DrawGrid1.ColCount := X;
 DrawGrid1.Cells[X,1] := IntToStr(X);
end;
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
 Rect: TRect; State: TGridDrawState);
  var X: integer;
begin
if (ARow = 1) then begin
  x := StrToInt(DrawGrid1.Cells[ACol,1]);
  DrawGrid1.Canvas.StretchDraw(Rect,Pictures[X]);
end;
end.

то выдаёт ощибку вот тутDrawGrid1.Cells[X,1] := IntToStr(X); ну вопщем проверьте код что нетак?


 
Плохиш ©   (2007-01-15 16:44) [4]


> то выдаёт ощибку вот тутDrawGrid1.Cells[X,1] := IntToStr(X);
>  ну вопщем проверьте код что нетак?

Откуда у DrawGrid взялось свойство Cells?


 
DimaBr   (2007-01-16 09:22) [5]

Читайте внимательнее

> а в StringGride храните номер картинки в массиве


 
Barma   (2007-01-16 14:35) [6]

но веть у меня используется дравгрид значит то что посоветано неверно


 
Barma   (2007-01-16 14:38) [7]

а есть ли гдето какиенить исходники по работе с драв гридом?может ктонить поделится исключительно в целях образования.можно на barma@xaker.ru


 
Elen ©   (2007-01-16 14:54) [8]


> а есть ли гдето какиенить исходники по работе с драв гридом?

В целях образования вот примерчик :  по нажатию на кнопку в ImageList добавляется картинка (Для данного примера все картинки уже добавленны в дизайне):

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ImgList, Grids;

type
 TForm1 = class(TForm)
   DrawGrid1: TDrawGrid;
   ImageList1: TImageList;
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
   procedure DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
     Rect: TRect; State: TGridDrawState);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
DrawGrid1.RowCount:=DrawGrid1.RowCount+1;
end;

procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
 Rect: TRect; State: TGridDrawState);
begin
if acol=1 then
ImageList1.Draw(DrawGrid1.Canvas,rect.Left,rect.top,arow);
end;

end.


Ну и проверочку на конец ImageLista



Страницы: 1 вся ветка

Текущий архив: 2007.02.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.038 c
2-1169198094
Steep
2007-01-19 12:14
2007.02.04
Flash Drive


15-1168732050
lookin
2007-01-14 02:47
2007.02.04
ICQ на сотовом


3-1163662709
Ega23
2006-11-16 10:38
2007.02.04
Могу ли я использовать TBLOBField


15-1168621866
AntiUser
2007-01-12 20:11
2007.02.04
Несколько уязвимостей в ядре Linux


2-1168800281
azl
2007-01-14 21:44
2007.02.04
Мигание иконки в Строке заголовка формы