Napomena: slike sam numerisao prema ID-ovima ljudi iz baze, sto je olaksalo rad.
Npr: ako korisnik ima id= 134, onda je ime njegove slike : 134.jpg
Postavi na formu komponente: TDrawGrid, TFileListBox i ubaci kod:
Code:
unit frmImages;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, Contnrs, StdCtrls, FileCtrl, ExtCtrls;
type
TfrmImage = class(TForm)
DrawGrid1: TDrawGrid;
filesBox: TFileListBox;
procedure FormCreate(Sender: TObject);
procedure DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure DrawGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
private
{ Private declarations }
FImgList: TStringList;
function LinearIndexOf(Row, Column: integer): integer;
public
{ Public declarations }
end;
implementation
{$R *.dfm}
uses Jpeg;
const
cPicDir = 'Data\Pictures\';
procedure TfrmImage.FormCreate(Sender: TObject);
var
i: integer;
sPicFolder: string;
sFN : string;
jpg: TJPEGImage;
bmp: TBitmap;
begin
DrawGrid1.DefaultDrawing := false;
filesBox.mask := '*.jpg'; // da ti izlista samo jpg fajlove
sPicFolder := IncludeTrailingPathDelimiter
( IncludeTrailingPathDelimiter( ExtractFilePath( Application.ExeName)) + cPicDir);
self.filesBox.Directory := sPicFolder;
DrawGrid1.ColCount := 6;
DrawGrid1.RowCount := 1 + (filesBox.Items.Count div DrawGrid1.ColCount);
FimgList := TStringList.Create;
jpg := TJPEGImage.Create;
for i:=0 to filesBox.Items.Count-1 do
begin
sFN := sPicFolder + filesBox.Items.Strings[i];
if fileExists(sFN) then
begin
jpg.LoadFromFile(sFN);
bmp := TBitmap.Create;
bmp.Assign(jpg);
// ime slike + slika:
FImgList.AddObject( filesBox.Items.Strings[i], bmp);
end;
end;
FreeAndNil(jpg);
end;
function TfrmImage.LinearIndexOf (Row, Column : integer) : integer;
begin
Result := DrawGrid1.ColCount * Row + Column // Returns the index of the given cell
end;
procedure TfrmImage.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
index : integer;
bmp: TBitmap;
begin
// ovo iscrtava slike:
index := LinearIndexOf(ARow, ACol);
if (0<=index) and ( index < FImgList.Count) then
begin
bmp := TBitmap( FImgList.Objects[index]);
try
if assigned( bmp) then
DrawGrid1.Canvas.StretchDraw(Rect, bmp);
except
end;
end;
end;
procedure TfrmImage.DrawGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
var
index: integer;
IDValue: integer;
begin
index := LinearIndexOf(ARow, ACol);
if (0<=index) and ( index < FImgList.Count) then
begin
try
IDValue := StrToInt(ChangeFileExt( FImgList.Strings[index], ''));
// iscitas iz baze za dati ID podatke . . .
except
end;
end;
end;
end.