Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.47 MB
Время: 0.475 c
15-1168941024
SkySpeed
2007-01-16 12:50
2007.02.04
Проблема или с сетевой картой или с ПО...


15-1168706846
Kolan
2007-01-13 19:47
2007.02.04
Чем заменить NAN


15-1168625855
1-st...
2007-01-12 21:17
2007.02.04
SSL +delphi


15-1168639940
kaZaNoVa
2007-01-13 01:12
2007.02.04
Универсальный вызов функции


4-1159033538
иван8511
2006-09-23 21:45
2007.02.04
Отслеживание запущенной программы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский