Главная страница
    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.044 c
15-1168543701
ArtemESC
2007-01-11 22:28
2007.02.04
Так и не понял Паскаля...


2-1169389410
$00FF00
2007-01-21 17:23
2007.02.04
Контролы ХР-стиля в API


15-1168430363
<rm>
2007-01-10 14:59
2007.02.04
Уместно ли использовать компонент Indy?


15-1168945620
Alexm112
2007-01-16 14:07
2007.02.04
Обеспечение безопасности пассажиров при полетах на самолете.


2-1168983685
16alex
2007-01-17 00:41
2007.02.04
развертывание dbexpress приложения





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский