Accessing Icons in the Image Folder


DevX Home    Today's Headlines   Articles Archive   Tip Bank   Forums   

Page 1 of 3 123 LastLast
Results 1 to 15 of 36

Thread: Accessing Icons in the Image Folder

  1. #1
    Join Date
    Feb 2010
    Location
    Central WV, USA
    Posts
    212

    Accessing Icons in the Image Folder

    I have put some icon files in my projects' image folder, I'm now wanting to access these inside my app for use in listview control.

    Code:
    lsvWells.LargeImageList.Images.Add(?)
    but I can't seem to get the syntax correct.

    It would also be nice to have these ico's embeded in my .exe so the user could do the properties-->change icon. But I can't get them to embed.

  2. #2
    Join Date
    Nov 2003
    Location
    Portland, OR
    Posts
    8,387
    Phil Weber
    http://www.philweber.com

    Please post questions to the forums, where others may benefit.
    I do not offer free assistance by e-mail. Thank you!

  3. #3
    Join Date
    Feb 2010
    Location
    Central WV, USA
    Posts
    212
    That's better than the page I found, thanks Phil

  4. #4
    Join Date
    Feb 2004
    Location
    Longueuil, Québec
    Posts
    577
    Just one little thing, since the code in the page sent by Phil is in C#, and this is one of the few places where VB and C# use a different syntax.

    Instead of

    Code:
    myProject.Properties.Resources.Image01;
    retrieve the resource with

    Code:
    My.Resources.Image01
    Jacques Bourgeois
    JBFI
    http://www3.sympatico.ca/jbfi/homeus.htm

  5. #5
    Join Date
    Feb 2010
    Location
    Central WV, USA
    Posts
    212
    I'm now going back through and cleaning everything up, should I try and move all of my string constants to the Res file? I have lots of strings here and there(filenames, msgbox text, ect), can I leave it in the code or is it best to res it. Seems like a lot of work if I move them all to a res file. But wouldn't this give the user a way to edit filenames and paths? Other than that I can't think of any good reasons to spend hours moving my strings. Maybe on the start of my next project, I'll use it from the start.

  6. #6
    Join Date
    Feb 2004
    Location
    Longueuil, Québec
    Posts
    577
    I have read a few things on the Microsoft site were they say that it is better to put the strings in resource files instead of in the code, and I tend to agree. According to one of those, that is why the strings are color coded in .NET. When you see something in brownish red, it is an indication that maybe you should move it to a resource file.

    But you have to balance the advantages of resources against the extra work of maintaining resources. It takes a little longer to code with resource files, but as far as I am concerned, that little extra time is worth it in the medium to long run.

    And it is specially worth weighting the advantages when you need to convert an almost finished project to the use of resources. I have had a project for years to create an add-in that does the job for you... I just never found the time.

    First of all, according to those sources at Microsoft, the application can be a little faster, because the resources are not treated the same way as strings in memory. Have to say that I did many tests and never saw a convincing difference.

    The main reason to use a resource file, and this was the main reason for their creation too in the 90's (they were not as easy to use then), is for multilingual application.

    Everything that has to do with English, not only the strings themselves, but also in some cases the size and position of TextBoxes and Labels on the screen can be recorded in a resource file. If you need a French version of the application, simply make a copy of the original English file, translate all the text except the name you gave to your resources, and adjust the size of the controls where needed (because French tends to takes more place than English). Switch the resource files, recompile, and voilà, you have a French version of the application without even having to touch to the code. Since resource files can also contain sound and images, you can adjust a lot of things that way. You could even compile the French resource in a .dll, deploy it along your English .exe, and the framework will automatically switch languages according to the Control Panel or the language of the Windows version that is running. All the software that Microsoft writes, be it Office or Visual Studio, is built that way.

    Since I live in Quebec, all my applications are built that way, even when the customer wants an unilingual version of the application. They always come out a few months or years later, after a fusion of 2 companies sometimes, and request a new language. Had to do a Spanish version a couple of years back. Ouch! I simply converted the .resx to a text file, sent it to a translator, converted back the result of its work into a dll, and shipped the dll to my custormer. No need even to redeploy the application. Instant Spanish version. There is a tool out there that can convert a resource file back and forth between .resx, .txt and .dll. Think that is my application had been written with strings in the code, I would have had to ask the translator to work directly in my code. Ouch again!

    Another reason to use resources is that it is a good way to make sure that everything is uniform. I have seen applications where some forms have a Quit button, others a Close and also a few Exit. By having a standard way of working with resources, it is easier to be uniform. I have customers that want Quit, others that prefer Close. My resource in all my application is always labelled btnQuit, so it is a reflex for me to assign that to a Quit button. If the user prefers Close, I simply set it in the resource file and forget about it.

    And as you implied, although I will disgress with you later on that, the word could be changed to Exit, even for only one user if needed, simply by changing the resource.

    However, you cannot change that as easily as you seem to imply. The .resx file is not distributed with the application. It is compiled either in the .exe (this is the default) or into a dll (mainly for multilingual applications). Once compiled, the user cannot edit it as he would an xml file. But once again, there is a tool that enables you to modify a recource even once it is compiler.

    And finally, I would not save filenames and paths in the resources. This is data, not text. Data is best saved in the Settings of the application. The settings are distributed as xml (no need for a very special tool to edit them) and can be even modified through a Form in the application if needed.

    As a basic rule, consider resources as a replacement for constants. Things that are prone to change should be kept in the settings.
    Jacques Bourgeois
    JBFI
    http://www3.sympatico.ca/jbfi/homeus.htm

  7. #7
    Join Date
    Feb 2010
    Location
    Central WV, USA
    Posts
    212
    I can't seem to get this listview control to display icons while in large or small icon view mode.

    Code:
    Sub LoadCombos()
            'Load Combos and Listboxes with a datasource
            Dim ref As Integer = 0
    
            lsvWells.View = View.LargeIcon
            ImageList1.Images.Add("0", My.Resources.BlueRig)
            ImageList1.Images.Add(My.Resources.RedRig)
            ImageList1.Images.Add(My.Resources.Meter)
            ImageList1.Images.Add(My.Resources.Purchaser)
            ImageList1.Images.Add(My.Resources.Rig)
            
            lsvWells.LargeImageList = ImageList1
            lsvWells.SmallImageList = ImageList1
    
    
            lsvWells.Columns.Add("Well Name", -2, HorizontalAlignment.Left) 
            lsvWells.Columns.Add("Universal ID", -2, HorizontalAlignment.Left)
            lsvWells.Columns.Add("Record Type", -2, HorizontalAlignment.Left)
        
    
            For Each item As MeterGroups In MGCollection
                        Dim ListViewItem1 As System.Windows.Forms.ListViewItem =  _
                       New System.Windows.Forms.ListViewItem(New String() _
                       {item.WellName, item.UniversalID, item.RecordType}, 0)
    
                        lsvWells.Items.Add(ListViewItem1)
              
             'lsvWells.Items(0).ImageIndex = 0  ' tried to manually set one (still didn't work)
    
                Next
    end sub
    It loads the all my fields but doesn't display an icon. Any Ideas? I even tried to force it on the first item, still didn't work.

    ...later on


    I've found an alternative method, I'm gonna play around with this and see what happens...

    ...


    Still no dice, I'm starting to suspect theres something wrong with my resource file, or there not getting loaded.

    Code:
    ImageList1.Images.Add(My.Resources.BlueRig)
            ImageList1.Images.Add(My.Resources.RedRig)
            ImageList1.Images.Add(My.Resources.Meter)
            ImageList1.Images.Add(My.Resources.Purchaser)
            ImageList1.Images.Add(My.Resources.Rig)
            
            'LoadListView()
    
            With lsvWells
                .View = View.LargeIcon
                .LargeImageList = ImageList1
                .SmallImageList = ImageList1
                .LabelEdit = True
                .AllowColumnReorder = True
                '.CheckBoxes = True
                .FullRowSelect = True
                .GridLines = True
                .Sorting = SortOrder.Ascending
                .Columns.Add("Well Name", -2, HorizontalAlignment.Left)
                .Columns.Add("Universal ID", -2, HorizontalAlignment.Left)
                .Columns.Add("Record Type", -2, HorizontalAlignment.Left)
            End With
    
                        Dim item1 As New ListViewItem(Trim(item.WellName), 0)
                        item1.SubItems.Add(Trim(item.UniversalID))
                        item1.SubItems.Add(Trim(item.RecordType))
                        lsvWells.Items.AddRange(New ListViewItem() {item1})
    Last edited by rrjii2000; 08-19-2010 at 11:27 PM.

  8. #8
    Join Date
    Feb 2010
    Location
    Central WV, USA
    Posts
    212
    In your previous post you refered to keeping filenames in the "settings". What form or file are you specificaly refering to?

    Here are all my file names (currently in a module)

    Code:
    Public OwnerMasterFile As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\WellOwnerMaster_as400.csv"
        Public OwnerMasterFileBAK As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\WellOwnerMaster_as400.bak"
        Public fileWTRecords As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\WTRecords.txt"
        Public fileWTRecordsBAK As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\WTRecords.bak"
        Public fileWTRecordsNew As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\WTRecordsNew.txt"
        Public filePumperMaster As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\PumperMasterFile.hec"
        Public filePumperMasterBAK As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\PumperMasterFile.bak"
        Public fileMGRecords As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\MGRecords.txt"
        Public fileMGRecordsBAK As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\MGRecords.bak"
        Public fileMGRecordsNew As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\MGRecordsNew.txt"
        Public fileMPRecords As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\MPRecords.txt"
        Public fileOldMPRecords As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\OldMPRecords.txt"
        Public fileMPRecordsBAK As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\MPRecords.bak"
        Public fileMPRecordsTemp As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\MPRecordsTemp.txt"
        Public fileSBRecords As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\SBRecords.txt"
        Public fileSBRecordsBAK As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\SBRecords.bak"
        Public filePHRecords As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\PHRecords.txt"
        Public filePHRecordsBAK As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\PHRecords.bak"
        Public fileMGIndex As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\MGIndex.hec"
        Public fileMGIndexBAK As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\MGIndex.bak"
        Public fileEGRecords As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\EGRecords.txt"
        Public fileEGRecordsBAK As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\EGRecords.bak"
        Public fileOWRecords As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\OWRecords.txt"
        Public fileOWRecordsBAK As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\OWRecords.bak"
        Public fileEntryGroups As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\EntryGRP.hec"
        Public fileEntryGroupsBAK As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\EntryGRP.bak"
        Public fileGPRecords As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\GPRecords.txt"
        Public fileGPRecordsBAK As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\GPRecords.bak"
        Public fileWDRecords As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\WDRecords.txt"
        Public fileWDRecordsBAK As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\WDRecords.bak"
        Public fileWPRecords As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\WPRecords.txt"
        Public fileWPRecordsBAK As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\WPRecords.bak"
        Public fileUSRecords As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\USRecords.txt"
        Public fileUSRecordsBAK As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\USRecords.bak"
        Public fileTemp As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\Temp.hec"
        Public WPPath As String = "C:\Program Files\Windows NT\Accessories\wordpad.exe "
        Public fileRTF As String = "c:\Reports\RTF.rtf"
        Public pathNotes As String = "c:\MGNotes"
        Public pathReports As String = "c:\Reports"
        Public WorksheetPath As String = "C:\Users\RRJII2000\00 AS400 Import 00"
        Public WorksheetWDPath As String = "C:\Documents and Settings\Main\My Documents\00 HEDC Fileshare 00\00 Well Data 00\Well Dynamics"
        Public MSWord As String = "C:\Program Files\Microsoft Office\Office12\winword.exe "
        Public AppDataDir As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\"

  9. #9
    Join Date
    Feb 2004
    Location
    Longueuil, Québec
    Posts
    577
    I must admit that I have worked very little with the ListView, it was many years ago, and never with icons, so I cannot see what goes wrong. You're on your own on this one.

    I can just tell you that the second piece of code is not a good choice. It loads the images from the hard disk, wich is a lot slower than reading them from the resources. And you will have to send the images with the application. You will also have to put everything in a Try...Catch block in case one of the image files goes somewhere else, such as the Recycle Bin.

    Do you know that you can fill an image view from the Property Windows. It's Image property can call a small interface that might make it easier to loadin it with images.

    Answer to the file names in a separate post.
    Jacques Bourgeois
    JBFI
    http://www3.sympatico.ca/jbfi/homeus.htm

  10. #10
    Join Date
    Feb 2004
    Location
    Longueuil, Québec
    Posts
    577
    About the filenames.

    That is a lot of files. And I have a lot of remarks about that one.

    -----

    You define the values as variables in the code, where, if I understand, they will never change. In such a case, they should be defined as constants:

    Code:
    Public Const FileWTRecords As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\WTRecords.txt"
    Note that the convention for naming a constant is that its name starts with an uppercase character.

    -----

    When you have so many files in the same directory, it makes sense to define the directory as a separate constant that you reuse in all the others. If you ever decide to move the files, you would only have to change the constant, not all the entries:

    Code:
    Public Const BaseDir As String = "C:\Users\rrjii2000\00 AS400 Import 00\HEC\"
    Public Const FileWTRecords As String = BaseDir & "WTRecords.txt"
    Public Const FileMGRecordsBAK As String = BaseDir & "MGRecords.bak"
    -----

    When you are dealing with default system directories such as C:\Users\rrjii2000, do not call them by their names as you do.

    First of all, the name of that directory will change from user to user.

    Second, it might also change when you move from one version of Windows to another. It has changed at least 3 times in the last 10 years or so. C:\Users appeared only in Windows Vista. Before that it was Documents and Settings, before that it was something with Profile in the name.

    There is a method to retrieve the name of all the standard directories in the current version of Windows, and it should always be used. To get the user's directory, you would call it this way:

    Code:
    Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)
    You would get My Documents by requesting SpecialFolder.Personal

    Since you cannot define a constant by calling a method, you would thus need to keep working with variables as you were doing, even it would be preferable to work with constants.

    Code:
    Public BaseDir As String = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) & "00 AS400 Import 00\HEC\"
    Public FileWTRecords As String = BaseDir & "WTRecords.txt"
    Public FileMGRecordsBAK As String = BaseDir & "MGRecords.bak"
    Ah! Those decisions a programmer has to make sometimes between two best things.

    -----

    The Settings is the configuration file for the application. It works a lot like resources in the code, but is not treated the same way on compilation.

    There is a Settings tab in the project properties. You fill it in as you do with resources, but in order for the compiler to be able to detect errors, you must specify a type for each entry. A settings can be something else than a String. Settings could be used for instance to record the Size and Location of a form on the screen so that you reopen it in the same size and location when the user restart the application.

    You also mark each as User or Application. User settings can be changed in the application, and are individual for each user when doing so. Application settings are readonly in the application and can be changed only by working manually in the application configuration file.

    Those entries are written in XML in the app.config file that you might already have in the root directory of your project. When you compile, that file is copied in the compilation directory, but is renamed with the name of the application followed by .config (Ex: JBWoodwork.exe.config).

    In your code, you use the settings just as you do with the resources, not forgetting to save if you change a setting while the application is running:

    Code:
    lang = My.Settings.Language
    ...
    My.Settings.Language = "fr"
    My.Settings.Save
    Jacques Bourgeois
    JBFI
    http://www3.sympatico.ca/jbfi/homeus.htm

  11. #11
    Join Date
    Feb 2010
    Location
    Central WV, USA
    Posts
    212
    One thing I forgot to mention is that I have 2 different versions of these filenames. One for home and one for work. You got to see the home version, thats why it's in a static directery under my name. I just comment out the filenames for my alternate location when I'm not using them. The deployable version of the filenames will point to a network path on a server that will never change. But that 2 variable approach (Basedir + filename) is great, I can see how that would save some work, thanks as always.


    Code:
    Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)
    This will be usefull as well


    ...On the config file, Thats like the same thing a PC game would have, where you can go in and screw with the game settings, sometimes totally ruining the gameplay But I always make a backup first.
    Last edited by rrjii2000; 08-20-2010 at 02:10 PM.

  12. #12
    Join Date
    Feb 2004
    Location
    Longueuil, Québec
    Posts
    577
    The comparison to game settings is right on the spot (did not know you were a gamer... what do you play?).

    Games usually use the old .ini file format. But I have seen one recently that uses a .NET .config file. Probably not for the game itself, .NET is not fast enough for what contemporary games request. But more and more game launchers are written in .NET. They can then pass the information from the .config file to the game.

    -----

    Looks like you have 2 versions of your file, one for Home and one for the Shop.

    Here is another trick that could serve you. Visual Studio is a bag full of tricks. It is called conditional compilation.

    At the top of the screen, you probably have that ComboBox with Release and Debug. You can add other configuration in there, through the Configuration Manager that appears as the last option.

    Once in there, under the Active solution configuration ComboBox, you have the option to create a New configuration.

    You could create one called Home that, supposing you have Visual Studio installed on your home computer, would copy the Debug configuration by default, which would enable you to debug you application while you are using it at home.

    Once this is done, if you go in your project properties, you will be able, in some of the tabs, to select between Relase, Debug and Home at the top of the tab window. In that case, some of the options in the page (but not all, and it is not evident which ones), will apply only to the selected configuration.

    This the case in the Compile tab and its Build output path which, by default, is different for each configuration, unless your application was initially created in an older version of Visual Studio that put all the configurations directly in bin.

    However, the Compile options are not affected by the configuration.

    the Advanced Compile Options are affected, and this is the one that interests me for this discussion. There, you can define a Custom constant, let's say HOME=True when Home is selected at the top of the tab window (not in the Visual Studio menu which is useless for our current concern). The convention is to have those constants all uppercase.

    Back to the code.

    You now have a conditional compilation constant, a constant that can be used to conditionnally compile parts of your application. These constants (there could be more than one, and different ones in different configurations) are used with #If instructions. Note the #.

    Making sure that you are set for Home in the code Window, you could type something like this:

    Code:
    #If HOME Then
       ' Declare the variables for your home files
    #Else
       ' Declare the same variables for you work files
    #Endif
    When Visual Studio is set for Home, since you have set HOME to True in the project properties for the Home configuration, only the first part of the #If will compile.

    When you are in Release and Debug, since you have not set HOME, it defaults to False, and only the #Else will compile.

    Visual Studio 2010 has a new nice touch: it colors in grey the part that does not compile, so you see at first glance which part of the #If will compile in the current configuration.

    Select the Home configuration, compile, and you have a version for home that compiles by default in bin\Home. Select Release or Debug, and you get a version for work that compiles in either bin\Release or bin\Debug.

    That beats commenting the code in or out manually each time you compile. You could forget and end up with the wrong version. And since it compiles each version in its own directory, its easy to know which foo.exe is for work and which is for home.

    You can use it to have 2 sets of variables as you do, but also any place in the code.

    This lets you have different versions of the same application from the same source code, making maintenance a snap: Release, Debug, Home, Administrator, Demo, Tests.

    In the Administrator configuration, you make visible some menus or buttons that are invisible by default in the interface:

    Code:
    #If ADMIN Then
      btnManage.Visible=True
    #End If
    In the Demo version you have a constant defined as 50 while in the Release version you set it to 50,000, thus limiting the number of records the user can play with in the demo:

    Code:
    #If DEMO Then
      Public Const MaxRecords As Integer = 50
    #Else
      Public Const MaxRecords As Integer = 50000
    #End If
    The application I use for my training sessions has configurations for: Access, SQL, XML. No matter which database is installed in the classroom or the conference room where I am called to give the cours, I can use the same source code.

    Boy, do I love Microsoft when then come with stuff like this.
    Jacques Bourgeois
    JBFI
    http://www3.sympatico.ca/jbfi/homeus.htm

  13. #13
    Join Date
    Feb 2010
    Location
    Central WV, USA
    Posts
    212
    I haven't been gaming much lately, I think the last game I actually finished was the new STALKER game. I've been playing around a little with metro 2033 and Singularity, but not much to speak of aside from that. Doom 3 and Half life 2 are my all time favs, the early Splinter Cell series (1,2,3) was also very good. Before that, Diablo 2 and Age of Empires was untouchable for many years.

  14. #14
    Join Date
    Feb 2010
    Location
    Central WV, USA
    Posts
    212
    It's Fixed! After exausting every other possibility, I reopened the icons in my editor and immediately noticed that there were lower res versions in the file that were blank, I removed them and resaved my icons. Rebuilt my solution and presto!, they were showing up in my listview. I suppose it was either refusing to load a multi res icon or loading it then the trasparency color was masking it out. But the code from a few posts up is corect and will load the listview.

    I'm really falling in love with the ListView Control. Historicaly if I wanted to use multiple field items in a listbox I'd have to databind the listbox and feed it objects from a collection. With the listview you have this functionality right out of the box, plus 4 different view modes, and the ability to have an icon for each item. Very Handy IMO!
    Last edited by rrjii2000; 08-21-2010 at 02:32 PM.

  15. #15
    Join Date
    Feb 2010
    Location
    Central WV, USA
    Posts
    212
    One problem that's arising is I'm trying to retrieve the value of a listview subitem. I've searched for 2 days now and can't seem to find an example of someone doing this. I'm not even sure if retrieving data from the control is built in. If I can't find a solution, I think I can mirror all the data in an invisible listbox and use the index change event to link the 2 together. Then retrieve data from the list box insted. It's a lot of extra work when there should be a clear cut way to access data from the listview.

    Code:
    Private Sub lsvWells_ItemSelectionChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.ListViewItemSelectionChangedEventArgs) Handles lsvWells.ItemSelectionChanged
    
    MsgBox(e.Item.SubItems.Item("Universal ID"))
            
    lstWells.SelectedItem = Trim(e.Item.Text)
    End Sub

    In the first line, I'm trying to retrieve the subitem with the column title of "Universal ID"; this Does NOT work, and returns a blank messagebox.

    In the second line I'm trying to select the same item in a listbox, If I return "e.item.text" to a mesagebox at runtime, I do indeed get the main items name from the listview, however when I try and use this value to select the same text in a listbox nothing happens. I may have some sort of object mismatch.
    Last edited by rrjii2000; 08-22-2010 at 03:24 PM.

Similar Threads

  1. Replies: 0
    Last Post: 07-05-2007, 12:12 PM
  2. Relative path of folder
    By THL in forum ASP.NET
    Replies: 3
    Last Post: 11-25-2005, 04:35 AM
  3. accessing folder outside of web root
    By teclioness in forum ASP.NET
    Replies: 1
    Last Post: 11-16-2005, 05:52 AM
  4. Replies: 2
    Last Post: 07-26-2002, 01:21 PM
  5. Script for scrolling
    By Mark in forum Web
    Replies: 3
    Last Post: 08-30-2001, 12:45 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center
 
 
FAQ
Latest Articles
Java
.NET
XML
Database
Enterprise
Questions? Contact us.
C++
Web Development
Wireless
Latest Tips
Open Source


   Development Centers

   -- Android Development Center
   -- Cloud Development Project Center
   -- HTML5 Development Center
   -- Windows Mobile Development Center