|
|
If MDI children are always maximised then it's not really MDI. Try a Visual Studio type tabbed layout instead.
|
|
|
|
|
I have downloaded a source code from CP Articles. The address is here:
Farsi Library - DatePickers[^]
It has written in .Net2 but my project is in .Net4; So when I download it first visual studio converts that, but it didn't build successfully until I delete this line of code in CommonAssemblyInfo.cs:
[assembly: AssemblyKeyFile(@"C:\KeyFile.snk")]
After that all of the projects in this solution builded.
My problem starts as I create a class in my own project which inherits form one of the class in the new dll added to my project.
public class DatePicker: FarsiLibrary.Win.Controls.FADatePicker
{}
I have three project in my solution:
1. VMS.Application
2. VMS.Data
3. VMS.Library
Now when I want to build my own solution there are 35 error, that they have the same message:
The type or namespace name 'Library' does not exist in the namespace 'VMS' (are you missing an assembly reference?)
when I comment the inheritance the errors will go:
public class DatePicker
{}
Please tell me if you have any idea!
Meysam
|
|
|
|
|
Meysam Tolouee wrote: [assembly: AssemblyKeyFile(@"C:\KeyFile.snk")]
That's the license key to mark it as a trusted assembly. I've never bothered with them, but if my understanding is correct, you can't compile with someone else's key, so that's expected.
Meysam Tolouee wrote: Now when I want to build my own solution there are 35 error, that they have the
same message:
The type or namespace name 'Library' does not exist in the namespace 'VMS' (are you missing an assembly reference?)
when I comment the inheritance the errors will go:
See where it asks you whether you're missing an assembly reference? Did you add the compiled DLL to your project references? Right-click on the "References" item in your Solution Explorer, click "Add Reference", and locate that library. If it's in the same solution, grab it from the Project tab... Otherwise find it in the Browse tab.
|
|
|
|
|
Are you kidding me? The assembly that error is talking about is one my namespaces(VMS.Library).
Of course I have added the dll(s) to my project.
Meysam
|
|
|
|
|
Wait a second... This control you're creating that inherits from the DatePicker... Is that inside VMS.Library?
If so, those errors might just be the symptoms, not the actual problem. There's probably one error that's different.
1) Project A references project B
2) Project B has an error
3) Project A can no longer access anything in Project B, because Project B didn't compile, so anything that references Project B is reported as an error.
Find that other error, and you'll be closer to the real issue.
|
|
|
|
|
No. The FarsiLibrary.Win.Controls.FADatePicker class is in the dll that I added from source code of article.
Meysam
|
|
|
|
|
Not the FADatePicker... The class you created to inherit from it. The one that you comment out to make it compile.
Check the entire error list... Find the one that's different... The one that occurs in VMS.Library. If I'm right, that's the one you need to look at, and once you fix that and get VMS.Library to compile, all of those "does not exist" errors will vanish.
|
|
|
|
|
Here is my code:
namespace VMS.Library.Controls
{
public class DatePicker: FarsiLibrary.Win.Controls.FADatePicker
{
}
}
Note: I've done this in .Net3.5 without any problem.
Meysam
|
|
|
|
|
Yes, you posted that... Now look through all of those errors when you try to compile, and find the error that occurs inside VMS.Library. That'll point you toward the real problem.
Just like the old kids shows... "One of these things is not like the other"
|
|
|
|
|
I chenged the Target Framework to .Net3.5 because as I said before it has no incompatibility with .Net3.5 but there is a new error:
Could not load file or assembly 'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified
It is so clear why it doesn't compile in this new situation but I did my best.
Meysam
|
|
|
|
|
If you're getting that error when compiling for .NET 4.0 too, it would explain things. A .NET 2.0 control is going to be based on WinForms, whereas a .NET 4.0 project is probably using WPF and won't load the WinForms libraries (System.Drawing among them) unless you specifically add them.
|
|
|
|
|
Hello everyone
I need to generate a PDF417 bar code and do the reverse operation.
but the problem is that the text I need to encode is in Arabic like "أ ب ت ث ... "
I found a lot of SDK and online programs that help generating and reading pdf417 bar codes, but non of them support the Arabic language.
could anyone help me with that? and do I need to build a program for the whole pdf417 encoding which needs time?
|
|
|
|
|
Well, I haven't done any PDF417 processing in about twenty years, but if you've already found libraries to convert the Latin (English) alphabet, then why not just convert? Just build a quick mapping table to translate each Arabic character to a Latin character... There are more than 26, but they don't seem to use upper or lower-case, so you've got 52 items to map to.
|
|
|
|
|
thank you Ian for your reply
It's a good idea when the bar code is decoded by only my decoder,
but I want it to be also decoded by any decoder that supports Arabic if exists
|
|
|
|
|
Well, after some quick googling, it seems PDF417 was never updated to support Unicode (Even the much newer QR codes don't do it), so it only does single-byte characters. As there doesn't seem to be a widespread standard for encoding them, you might be out of luck there.
Looks like most people are using Base64 encoding to get Unicode data in there, though, so if anything later becomes standard, that'll probably be it.
|
|
|
|
|
I'm trying to update a portion of a byte array with modified data and for some reason it's always unchanged. Any input would be appreciated.
Right now, I have a temporary array that I'm trying to do an array copy for part of the array to update the data. This isn't working. Before that, I didn't have a temporary array and was doing basically the same thing with the destination array. The data locations I'm writing to are 0 after the update, but I am seeing the correct data in my tempStrings and convertStringToBytes method.
private void updateDatWithData()
{
int returnCode = 0;
byte[] tempByteArr = new byte[Dat.Length];
String tempString = (configNum[0].ToString() + configNum[1].ToString());
byte tempByte = 0;
returnCode = convertStringToByte(tempString, ref tempByteArr[index + 4]);
...
Array.Copy(tempByteArr, (index+ 4), Dat, (index + 4), 5);
}
private int convertStringToByte(String theString, ref byte theByte)
{
int returnCode = 1;
try
{
theByte = System.Convert.ToByte(theString);
}
return returnCode;
}
|
|
|
|
|
You have a try without a catch or finally, so I don't see how your code is compiling. Simplifying your problem:
private int convertStringToByte(String theString, ref byte theByte)
{
theByte = System.Convert.ToByte(theString);
return 1;
}
public void RunSnippet()
{
byte[] tempByteArr = new byte[]{1};
convertStringToByte("3", ref tempByteArr[0]);
Console.WriteLine(tempByteArr[0]);
}
The above code works, so the basic logic of what you have is OK, just an implementation problem.
I'd suggest a different methodology. It looks like you are trying to implement Byte.TryParse method, you may want to look at it. If you need more information than a plain boolean, implementing your own is easy:
public static int ConvertStringToByte(string s, out byte result)
{
try
{
theByte = System.Convert.ToByte(theString);
}
catch
{
return 0;
}
return 1;
}
|
|
|
|
|
My code actually has a catch for my try. I just didn't include it here to simplify.
So it works for you basically as-is?
|
|
|
|
|
It is working. Given what you have said, the problem could well be in the catch . You need to step through your code to determine what is happening exactly, unless someone here come up with a full solution.
|
|
|
|
|
Ok. I figured it out. I was constructing one of my strings wrong and wound up with one that was 282, so it was throwing an exception when it tried to convert to byte and never got to copying the temp array to my final Dat array.
|
|
|
|
|
|
Lesson learnt: Never write an empty catch block.
|
|
|
|
|
void GetNameChangedToProtectTheInnocent()
{
try
{
...
}
catch
{
}
}
There you go - not empty! Written by yours truly, only 10mins ago . In my defence, it's important that the site doesn't throw errors and this is what the rest of the site does.
|
|
|
|
|
Fair enough, but it should at least be logged for investigation. If it's unimportant and not worth logging then it should be handled in code so the exception never arises.
|
|
|
|