>Sounds like you are making a document format.  I also think that you  
>would want to store other information such as picture order (back to  
>front), the actual FolderItem property (not just the name since that  
>might change), and possibly a mask for the picture as well.

It's essentially a flow chart.  Users would decide a sequence of events by
dropping icons onto a Canvas.  Each icon represents a step in a process.
The pictures will be embedded in the application, so link information isn't
a concern.

So far, I've had some luck by adding position information and image name to
an array and then saving the information to a text file.  Opening the text
file places the correct icons in the correct positions.

Now I need to figure out how to make each of the images respond to
single-clicks, double-clicks, move, etc.  Whoo hoo!



-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Phil M
Sent: Saturday, June 10, 2006 8:17 PM
To: Getting Started
Subject: Re: (no subject)


On Jun 10, 2006, at 4:50 PM, RBNUBE wrote:

> I'm making a grid using a Canvas.  The grid allows you to drop
> multiple images on it that you have dragged from a ListBox.  I need  
> to store the name of the picture, the top and left coordinates for  
> retrieval at some time in the future, even if the application has  
> been closed.
>
> Any suggestions as to go about storing references multiple images
> and their positions?  Multiple arrays?  Dictionaries? Any  
> suggestions would be appreciated.

Sounds like you are making a document format.  I also think that you  
would want to store other information such as picture order (back to  
front), the actual FolderItem property (not just the name since that  
might change), and possibly a mask for the picture as well.

Dealing with pictures is a big pain especially when they get deleted,  
renamed or moved.  If at all possible, it would probably be better to  
store the entire picture in the document instead of trying to keep an  
alias to the original file.  Though this is what professional  
programs do, it is a lot more work and may not be necessary for you.

So what I would do is create a new Class "ImageObj" with the  
following properties:

     X As Integer
     Y As Integer
     Height As Integer (Computed Property linked to Image.Height or 0)
     Width As Integer (Computed Property linked to Image.Width or 0)
     Name As String
     Image As Picture

The ImageObj has at least three methods... a Constructor, an Import  
and an Export function.  The Constructor is more of a convenience  
function and just refers to the Import function with the "ImageObj"  
data.  For storing/retrieving the picture data, I would use the  
PNGUtilities to store the picture into string data.  Then you just  
prepend the X and Y values and the length of the PNG data to have the  
picture saved to disk.

     X As Integer (4 Bytes)
     Y As Integer (4 Bytes)
     Length As Integer (4 Bytes)... length of PNG data ONLY
     PNGData As String (? Bytes)

For your canvas, you would have an array of these "ImageObj" to keep  
track of their order.  For storing/retrieving all of the pictures,  
you would just write the array to disk with some sort of header.  For  
example:

     Count As Integer (4 Bytes)
     Offset_N As Integer (4 Bytes multiplied by Count)
     ImageObjData_N (? Bytes for each ImageObj)

For example:

     00000004   Number of objects
     00000014    Offset of first object data (byte 20)
     00000227   Offset of second object data (byte 551)
     0000051A    Offset of third object data (byte 1306)
     00000904    Offset of fourth object data (byte 2308)
     ----        Start of first object data
     000000F8    X position of first object
     00000000    Y position of first object
     0000020B    Length of PNGData for first object
     ????????    PNGData for ? bytes
     ----        Start of second object data
     ...
     ----        Start of third object data
     ...
     ----        Start of fourth object data
     ...
     ----        End Of File

_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>

_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>

Reply via email to