|
My code runs fine but the design view is messed up. That is, I can't edit the form, even though it displays fine at runtime. It may have been like this for a long time, so I'm having difficulty rewinding. Any thoughts about how I might recover? Here's the error that shows in the designer: Thanks
The path is not of a legal form.
Hide
at System.IO.Path.NormalizePathFast(String path, Boolean fullCheck)
at System.IO.Path.NormalizePath(String path, Boolean fullCheck)
at System.IO.Path.GetFullPathInternal(String path)
at System.Reflection.AssemblyName.GetAssemblyName(String assemblyFile)
at Microsoft.VisualStudio.Design.VSTypeResolutionService.AddProjectDependencies(Project project)
at Microsoft.VisualStudio.Design.VSTypeResolutionService.AssemblyEntry.get_Assembly()
at Microsoft.VisualStudio.Design.VSTypeResolutionService.AssemblyEntry.Search(String fullName, String typeName, Boolean ignoreTypeCase, Assembly& assembly, String description)
at Microsoft.VisualStudio.Design.VSTypeResolutionService.SearchProjectEntries(AssemblyName assemblyName, String typeName, Boolean ignoreTypeCase, Assembly& assembly)
at Microsoft.VisualStudio.Design.VSTypeResolutionService.SearchEntries(AssemblyName assemblyName, String typeName, Boolean ignoreCase, Assembly& assembly, ReferenceType refType)
at Microsoft.VisualStudio.Design.VSTypeResolutionService.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase, ReferenceType refType)
at Microsoft.VisualStudio.Design.Serialization.CodeDom.AggregateTypeResolutionService.GetType(String name, Boolean throwOnError, Boolean ignoreCase)
at Microsoft.VisualStudio.Design.Serialization.CodeDom.AggregateTypeResolutionService.GetType(String name, Boolean throwOnError)
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.GetType(ITypeResolutionService trs, String name, Dictionary`2 names)
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.FillStatementTable(IDesignerSerializationManager manager, IDictionary table, Dictionary`2 names, CodeStatementCollection statements, String className)
at System.ComponentModel.Design.Serialization.TypeCodeDomSerializer.Deserialize(IDesignerSerializationManager manager, CodeTypeDeclaration declaration)
at System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager manager)
at Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)
at Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.DeferredLoadHandler.Microsoft.VisualStudio.TextManager.Interop.IVsTextBufferDataEvents.OnLoadCompleted(Int32 fReload)
|
|
|
|
|
I should also say that doing the obvious things like copying the 3 form files from an older save which does run OK doesn't work. Also completely recreating the form by copying the code and copying the controls again creates the same error. Ouch
|
|
|
|
|
cstrader232 wrote: Also completely recreating the form by copying the code and copying the controls again creates the same error.
Of course it did. You copied what is creating the error, so why would the result be any different? The problem appears to be in the designed generated code somewhere. I can't really tell you where that would be since we know nothing of the code, what it looks like, or on which line the error occurs.
|
|
|
|
|
i have just passed my high school
i am about to start college
so i thought to learn c++
i have read the basic concepts and mastered them
i wanna do some serious programming
i have got some ideas too
i was wondering whether i should do programming in vc++ 2008 or in c++?
in terms of speed,cpu usage , memory taken
oh! I forgot! I know vb quite well
TheMrProgrammer
|
|
|
|
|
vc++ 2008 is an IDE, you can use c++.net or c++, C++ is always faster then a .net language and gives you more flexability, while the .net framework saves an incredible amount of time for typing as everything is basically at your fingertips.
It all depends on what you want to do really.
|
|
|
|
|
You asked about C++ here because you know VB ?
VB.NET and C# are essentially the same thing, and I'd expect more people want .NET than C++, in the windows world at least. You can call any C++ API from C# via interop, so it's unlikely that C# will hit any brick walls for you, unless you want to write games. I would say focus on being good at whatever language your course teaches, and then go from there.
Christian Graus
Driven to the arms of OSX by Vista.
"! i don't exactly like or do programming and it only gives me a headache." - spotted in VB forums.
I can do things with my brain that I can't even google. I can flex the front part of my brain instantly anytime I want. It can be exhausting and it even causes me vision problems for some reason. - CaptainSeeSharp
|
|
|
|
|
I think what the other replies you have had to your question have failed to take into account, is the type of projects you are working on.
The type of project may determine the best language, for example the .NET languages are only really suitable for Windows based programs.
If you indent to write programs for embedding into other devices or Unix type systems, then C++ would be a better choice.
Steve Jowett
-------------------------
Real programmers don't comment their code. If it was hard to write, it should be hard to read.
|
|
|
|
|
I have a solitaire game and got drag and drop to work. The thing is the random cards display every other card with a different backing to simulate the back of the card. I would like the player that when they move or click the backed card, it turns over to it's original card. Here's an example of my code: Note I set 001h as an example to test.
Private Sub Image1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, _
X As Single, Y As Single)
Image1(Index).Drag vbBeginDrag
End Sub
Private Sub Image1_MouseMove(Index As Integer, Button As Integer, Shift As Integer, _
X As Single, Y As Single)
If Image1(Index).Picture = LoadPicture("C:\Program1\Back.gif") Then
Image1(Index).Picture = LoadPicture("C:\Program1\001h.gif")
MsgBox ("ok")
End If
End Sub
|
|
|
|
|
You didn't ask a question.
|
|
|
|
|
I want to know how to flip the cards with backing.gif over to the original card in the random pile. I have one face up, the next one face down, etc.
|
|
|
|
|
Okay. So wouldn't that mean you have a card with the back image and when you want it to flip you show the front image?
|
|
|
|
|
The card with the back image is from the loadpicture("aaaa.gif")
but the original picture bitmap formed in design view is the suit card.
|
|
|
|
|
You'd have to draw each frame the animation yourself. That's all it is. A series of still images that give the illusion of flipping a card.
|
|
|
|
|
Trying to understand completely what you are saying:
Basically, I have random cards of all suits on the left of the form. Each other card has a back.gif to show the back of the card. Each card is in an array of 52 cards. When a user clicks the backing card, I want the let's say queen of hearts to show up, hence image1(12), that picture; before they drag the card.
I tried this with If image1(index).picture = loadpicture("C:\backing.gif") Then
image1(12).picture = loadpicture("C:\queenhearts.gif")
and so forth; I would write all the images and set them to the correct gifs. At runtime, nothing worked when I clicked those cards....
I even thought of trying image1_click(Index As Integer), but that didn't work either.
Any ideas on how to within the same routine, to turn the cards or set them to the proper gif when the user clicks on them? Seems so simple, but I'm still confused.
|
|
|
|
|
In a card game I would keep all cards in memory, rather than reading them from disk every time.
Luc Pattyn [Forum Guidelines] [My Articles]
DISCLAIMER: this message may have been modified by others; it may no longer reflect what I intended, and may contain bad advice; use at your own risk and with extreme care.
|
|
|
|
|
and pardon my less knowledge, but how would you do this?
|
|
|
|
|
Start a collection of images (array, List, Dictionary, ...) and load it using Image.FromStream at the start of the app.
Luc Pattyn [Forum Guidelines] [My Articles]
DISCLAIMER: this message may have been modified by others; it may no longer reflect what I intended, and may contain bad advice; use at your own risk and with extreme care.
|
|
|
|
|
I already have an array of images in design view; it would be redundant to load them, wouldn't it?
|
|
|
|
|
I don't know as I am not familiar with your entire code base.
However it does not match well with the code shown in your original post.
Luc Pattyn [Forum Guidelines] [My Articles]
DISCLAIMER: this message may have been modified by others; it may no longer reflect what I intended, and may contain bad advice; use at your own risk and with extreme care.
|
|
|
|
|
You're right; I changed some of the code. I'm thinking that on mousedown event, somewhere I would flip the backing cards over when the user presses the mouse down on the card. How would I do that?
Here it is:
Option Explicit
Public Sub FormLoad()
End Sub
Private Sub Exit_Click()
MsgBox ("Thank you for playing. Good Bye.")
End
End Sub
Private Sub Start_Click()
Image2.Visible = False
Dim Selected As Boolean
Dim arrDeck(52)
Dim Cardcount As Integer
Dim Counter As Integer
Dim Index As Integer
Do While Cardcount <= 52
arrDeck(Cardcount) = Cardcount
Cardcount = Cardcount + 1
Loop
Dim swap As Integer
Dim posn1 As Integer
Dim posn2 As Integer
Randomize
For swap = 0 To 50
' Get two random positions
posn1 = Int(52 * Rnd)
posn2 = Int(52 * Rnd)
' Swap pictures at these positions
If (posn1 <> posn2) Then
KingH(0).Picture = Image1(posn1).Picture
KingH(0).Tag = Image1(posn1).Tag
Image1(posn1).Picture = Image1(posn2).Picture
Image1(posn1).Tag = Image1(posn2).Tag
Image1(posn2).Picture = KingH(0).Picture
Image1(posn2).Tag = KingH(0).Tag
End If
Next swap
Start_Game.Refresh
For Counter = 0 To 50
Counter = Counter + 1
Image1(Counter).Picture = LoadPicture("C:\Program1\Back.gif")
Next Counter
Counter = 0
For Counter = 0 To 51
Image1(Counter).Visible = True
Next Counter
End Sub
Private Sub Image1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, _
X As Single, Y As Single)
Image1(Index).Drag vbBeginDrag
End Sub
Private Sub Hearts_DragDrop(Index As Integer, Source As Control, X As Single, Y As Single)
If Hearts(Index).Tag = Source.Tag Then
Hearts(Index).Picture = Source.Picture
Source.Picture = Image1(Index).Picture
Source.Visible = False
Source.Drag vbEndDrag
MsgBox ("OK")
Else
Image1(Index).Picture = Image1(Index).Picture
Source.Drag vbCancel
MsgBox ("No Way Shirley")
End If
End Sub
|
|
|
|
|
Hi,
I have several comments:
1.
For Counter = 0 To 50
Counter = Counter + 1
Image1(Counter).Picture = LoadPicture("C:\Program1\Back.gif")
Next Counter
you are incrementing Counter twice: once explicitly, once implicitly in the For statement.
If that is what you want, you should adapt the for statement and add "Step 2" for clarity.
And you are loading that image from file over and over.
2.
I would keep the state of the game in my own data structures, independent of the GUI; I might choose to have an integer array storing the card numbers (0-51), a bool array storing a front/back flag, etc. Then perform the game rules on that data, and when something changes update the GUI.
So e.g. the initial card shuffle would occur in data arrays, not in PictureBoxes.
3.
I would keep all the card images in a single Image array, and load that once at app start. You seem to get all cards loaded in the PictureBoxes through the Designer (that is a lot of unnecessary work, such things are much easier in code).
Luc Pattyn [Forum Guidelines] [My Articles]
DISCLAIMER: this message may have been modified by others; it may no longer reflect what I intended, and may contain bad advice; use at your own risk and with extreme care.
|
|
|
|
|
Thanks for the expert comments:
Questions:
1. I would like to keep what I have done in design view instead of writing more code to load those pics. I have Dimmed an array at the beginning to create the card deck; I cannot redundantly load the image array twice; the compiler won't let me; says it's already there.
2. In response to your #1, I wanted every other card to have the back.gif, so in essence it is flipped over. Am I actually loading the same image twice with my code? I thought using the For statement would at least start the counting from 0-51, but I wanted the counter to change the back of every other card. Your comment about boolean flags makes sense. I'm not asking you to write my code, but this isn't for a school assignment; it is a birthday present to my Mom, so help on boolean code would be very much appreciated. Hence, perhaps I can have a face up as a boolean, and a face down. How and where would I implement that; at loadform?
Much appreciation in advance.
|
|
|
|
|
I don't understand your game nor your code, however I am convinced I would program card games quite differently, as I explained. Obviously you are entitled to your way of doing it, I won't be able to help you much, I wish you success.
Luc Pattyn [Forum Guidelines] [My Articles]
DISCLAIMER: this message may have been modified by others; it may no longer reflect what I intended, and may contain bad advice; use at your own risk and with extreme care.
|
|
|
|
|
Thanks, but it works so far....maybe I did too much in design view.
|
|
|
|
|
Hi,
I have a comma delimited text file. Below that
IM,ABC001,D,0,@;ABC;Images\00\00\ABC001.tif;2
IM,ABC002,,0,@;ABC;Images\00\00\ABC002.tif;2
IM,ABC003,D,0,@;ABC;Images\00\00\ABC003.tif;2
IM,ABC004,D,0,@;ABC;Images\00\00\ABC004.tif;2
I need the output as below.(In another Notepad)
"ABC001","ABC002"
"ABC003","ABC003"
"ABC004","ABC004"
It is read based on the ,D, in the input notepad. After read the ,D, we will pick the "ABC001" from after "IM". then again read the 'D' then we pick the "ABC002" from previous line. Are you not understand please see the input and output.
Please help me..
By
Gopi A.
Please help
|
|
|
|
|