ImageEn for Delphi and C++ Builder ImageEn for Delphi and C++ Builder

 

ImageEn Forum
Profile    Join    Active Topics    Forum FAQ    Search this forumSearch
 All Forums
 ImageEn Library for Delphi, C++ and .Net
 ImageEn and IEvolution Support Forum
 Dual output

Note: You must be registered in order to post a reply.
To register, click here. Registration is FREE!

View 
UserName:
Password:
Format  Bold Italicized Underline  Align Left Centered Align Right  Horizontal Rule  Insert Hyperlink   Browse for an image to attach to your post Browse for a zip to attach to your post Insert Code  Insert Quote Insert List
   
Message 

 

Emoji
Smile [:)] Big Smile [:D] Cool [8D] Blush [:I]
Tongue [:P] Evil [):] Wink [;)] Black Eye [B)]
Frown [:(] Shocked [:0] Angry [:(!] Sleepy [|)]
Kisses [:X] Approve [^] Disapprove [V] Question [?]

 
Check here to subscribe to this topic.
   

T O P I C    R E V I E W
egrobler Posted - Apr 26 2012 : 16:43:06
Hello,

I have a program where a teacher draws annotations on an image (TImageEnVect) for students in a class.
The program runs on a dual screen.
Is it possible to paint the contents of the image twice, to the normal canvas and to a larger canvas on the second monitor/projector in real time?

Best Regards
Eric
4   L A T E S T    R E P L I E S    (Newest First)
fab Posted - May 02 2012 : 07:39:36
Hello,
why do you need to set ImageEnVect1 back to the original state?
Assume this:
1) ImageEnVect1 is the main viewer (where actually images are loaded)
2) ImageEnVect2 is the external viewer

You should set:

ImageEnVect2.SetExternalBitmap( ImageEnVect1 );

Now you should work only on ImageEnVect1 and update ImageEnVect2. For example, if a new image needs to be loaded just execute:

ImageEnVect1.IO.LoadFromFile(...); // load in ImageEnVect1
ImageEnVect2.Update(); // refresh ImageEnVect2 display

You should refresh ImageEnVect2 also whenever ImageEnVect1 changes:

ImageEnVect1.Proc.Negative(); // makes image in ImageEnVect1 negative
ImageEnVect2.Update(); // refresh ImageEnVect2 display

You should call SetExternalBitmap(nil) only at the end of your application, or if you want to make ImageEnVect2 stand-alone.
egrobler Posted - Apr 29 2012 : 08:06:15
Hi Fabrizio,

The ExternalBitmap demo sets the SetExternalBitmap back to nil when the form is closed, but how can I set ImageEnVect1 back to the original state, so that I can load a new image independently?

It seems like I need to call Clear and ResetState additionally.
Is this the correct way?
Example:

  ImageEnVect1.SetExternalBitmap(ImageEnVect2.IEBitmap);
  ImageEnVect1.IO.loadfromfile('pic1.jpg');
  ImageEnVect2.Update;

  ShowMessage('Press to detach');
  ImageEnVect1.SetExternalBitmap(nil);  
  ImageEnVect1.ResetState;
  ImageEnVect1.Clear;
  ImageEnVect1.IO.loadfromfile('pic2.jpg');
egrobler Posted - Apr 29 2012 : 06:30:41
Thank you, that is what I was looking for.

Is there also a way to play a video on 2 screens simultaneously?
fab Posted - Apr 29 2012 : 00:49:34
Hello,
you should use SetExternalBitmap method. For example, having ImageEnView1 on a monitor and ImageEnView2 on another monitor, you could write:

ImageEnView2.SetExternalBitmap( ImageEnView1.IEBitmap );

Look at Display\ExternalBitmap for a sample.

Another way could be to handle OnDrawBackBuffer event and replicate the content of first ImageEnView to another one.