Solved

Create tImages Dynamicly at runtime.

Posted on 2009-05-10
8
389 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
8 Comments
 
LVL 13

Accepted Solution

by:
ThievingSix earned 500 total points
Comment Utility


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
Comment Utility
Make sure you have ExtCtrls in your uses.
0
 

Author Comment

by:Grant Fullen
Comment Utility
I tried your code and it only loads 1 bmp. I need to load all .jpg in a folder into seperate timages.
0
 

Author Comment

by:Grant Fullen
Comment Utility
I was looking at TJvThumbnail component it supports .jpg this would be better to use than a timage .
0
What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

 
LVL 5

Expert Comment

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

Expert Comment

by:ThievingSix
Comment Utility
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
Comment Utility
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
Comment Utility
Have not got to try this stuff yet but will soon.
0

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

Suggested Solutions

Objective: - This article will help user in how to convert their numeric value become words. How to use 1. You can copy this code in your Unit as function 2. than you can perform your function by type this code The Code   (CODE) The Im…
Introduction I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…
You have products, that come in variants and want to set different prices for them? Watch this micro tutorial that describes how to configure prices for Magento super attributes. Assigning simple products to configurable: We assigned simple products…

763 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

Need Help in Real-Time?

Connect with top rated Experts

6 Experts available now in Live!

Get 1:1 Help Now