Форум: "Начинающим";
Текущий архив: 2007.02.04;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.042 c