?
Solved

Create tImages Dynamicly at runtime.

Posted on 2009-05-10
8
Medium Priority
?
403 Views
Last Modified: 2012-05-06
I need to point (browse) for a folder of images and for example there are 16 jpegs in the folder then i need to populate my Page Control "TabSheet10" with a timage for each jpg (ie. 16 Timages) . I just need a thumbnail view and if i double click on an image it will open the actual picture.jpg with the defalt windows viewer.
This needs to be dynamics so if the are 5 jpeg then 5 Timages will be created on the tabsheet 10.
This information needs to be saved and loaded each time the application is run.
I have no ideal where to start on this and do not want to waste time going in the wronge direction.
I need example code for this.
0
Comment
Question by:Grant Fullen
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
8 Comments
 
LVL 13

Accepted Solution

by:
ThievingSix earned 2000 total points
ID: 24349702


function CreateTImage(Name: String; Parent: TWinControl; Top, Left, Width, Height: Integer): TImage;
begin
  Result := TImage.Create(Parent);
  Result.Parent := Parent;
  Result.Top := Top;
  Result.Left := Left;
  Result.Width := Width;
  Result.Height := Height;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
var
  MyImage : TImage;
begin
  MyImage := CreateTImage('Image1',Form1,0,0,100,100);
  MyImage.Picture.LoadFromFile('C:\Users\Administrator\Desktop\Launcher Creator\Tool Icons\BITMAP\TImage32.bmp');
end;

Open in new window

0
 
LVL 13

Expert Comment

by:ThievingSix
ID: 24349704
Make sure you have ExtCtrls in your uses.
0
 

Author Comment

by:Grant Fullen
ID: 24349880
I tried your code and it only loads 1 bmp. I need to load all .jpg in a folder into seperate timages.
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:Grant Fullen
ID: 24349928
I was looking at TJvThumbnail component it supports .jpg this would be better to use than a timage .
0
 
LVL 5

Expert Comment

by:xr1140
ID: 24350068
you have to loop the code ThievingSix provided for every image in your folder
0
 
LVL 13

Expert Comment

by:ThievingSix
ID: 24350229
And if you wish to use a jpg look here: http://www.thecodecave.com/treating-a-timages-loaded-jpeg-as-a-bitmap-in-delphi/

And as xr1140 says you will need to call CreateTImage for every image in the folder. If you need an example of this look here: http://delphi.about.com/od/vclusing/a/findfile.htm
0
 

Expert Comment

by:Zozze
ID: 24380140
You might wanna use an array of TImages for this purpose

for instance:


const maxpic = 1024;
var
form1: Tform1;
myArr: Array[0..maxpic] of TImage;
 
Procedure loadimages(Pictures:Tstringlist)
var
I:Integer;
Begin
for i = 0 to SizeOf(myArr) do myArr[I].free;// first free any previous instances 
ZeroMemory(@MyArr,SizeOf(MyArr)); // Zero the array;
 
// loop trough the Pictures Tstringlist which will contain filepath of picture
for i = 0 to pictures.count-1 do
begin
//now use the function provided by thievingsix
 MyArr[I] := CreateTImage('Image1',Form1,0,0,100,100); // set the X:Y values after desired position
  MyArr[I].Picture.LoadFromFile(Pictures.strings[0]);
end;
end;
end;
 
 
Hope this was helpfull.

Open in new window

0
 

Author Comment

by:Grant Fullen
ID: 24542786
Have not got to try this stuff yet but will soon.
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article explains how to create forms/units independent of other forms/units object names in a delphi project. Have you ever created a form for user input in a Delphi project and then had the need to have that same form in a other Delphi proj…
Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
Add bar graphs to Access queries using Unicode block characters. Graphs appear on every record in the color you want. Give life to numbers. Hopes this gives you ideas on visualizing your data in new ways ~ Create a calculated field in a query: …
In this video you will find out how to export Office 365 mailboxes using the built in eDiscovery tool. Bear in mind that although this method might be useful in some cases, using PST files as Office 365 backup is troublesome in a long run (more on t…
Suggested Courses

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question