>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>