|
toolbar.Buttons.Add(new ToolBarButton());
toolbar is the name of your class instance.
Hope this helps.
jesse m
The Code Project Is Your Friend...
|
|
|
|
|
Is there any way to create supplemental image encoders/decoders for GDI+? I'm assuming there must be, but I really haven't seen anything on this, not even on MSDN.
"Blessed are the peacemakers, for they shall be called sons of God." - Jesus
"You must be the change you wish to see in the world." - Mahatma Gandhi
|
|
|
|
|
|
Back in the COM days when I compiled a com dll it would automatically be registered. I could then go and add it as a reference in another project by choosing it from reference window.
I just created and complied a C# Class Library component. When I open another solution and try to add that component it does not appear in the .NET list (or anywhere). I have to browse to the component's directory and select that dll.
How do I get that library to appear in the .NET section of the Add reference window?
Thanks.
|
|
|
|
|
To add it to the .NET section of the Add Reference, you have to add it to the Global Assembly Cache after signing it with a strong name. But, you can always just browse for its file using the Assembly Browser tab (or whatever it's called in VS.NET).
"Blessed are the peacemakers, for they shall be called sons of God." - Jesus
"You must be the change you wish to see in the world." - Mahatma Gandhi
|
|
|
|
|
The GAC and a strong name isn't the only solution*. You can also add the path to your library to the registry.
For example, I put all my libraries (and other's) in C:\Development\Third Party\bin\ , so I added the following key to the registry:
HKCU\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders\Third Party\
I then set the (Default) string value to the above path. You can use the HKLM hive instead, if you want the setting to apply to all users.
* In fact, according to the docs adding it to the GAC won't work anyway, because the Add Reference dialog is path-based and doesn't enumerate the GAC.
Derek Lakin.
Try the Code Store for instant integrated access to an online repository of .NET components.
The great thing about being a slayer: is kicking ass is comfort food. Buffy
Salamander Software Ltd.
|
|
|
|
|
you can also use the probing tag name inside the config file to locate its path
you can also copy the file to the apps directory
so many choices, I wouldnt put it into the GAC so early
|
|
|
|
|
|
add it to the GAC and it should. The reason is because vs did the regsvr32.exe for you. It hasnt changed just the options
|
|
|
|
|
sorry for this pathetically preliminary question..
how do i determine if the check box in a data grid column is checked or not ? any small code snippets would be greatly appreciated..
thanks
There are no failures; there are only extended learning opportunities.
|
|
|
|
|
I would give you code, but thats at work, I will try though. I had a similar problem earlier today. Hope this helps.
Do something like
if (checkbox.checked == true)
{
whatever it is you had wanted to do if it were true
}
|
|
|
|
|
Depends on where do you need to check the checkbox's value, for example, if you are trying to update a row in a datagrid in the OnUpdateCommand event handler, you would do something like this:
<br />
((CheckBox)e.Item.FindControl("SomeCheckBox")).Checked<br />
where SomeCheckBox is the ID of the CheckBox control, and e is DataGridCommandEventArgs argument of the OnUpdateCommand event handler.
Is this what you are looking for?
Rado
|
|
|
|
|
Hi!
I wrote a windows service in C# using the .net clases in VS.NET.
It worked fine up until now, when I receive a "Access Denied" error message when I try to install it. I`m using MSI for the installer and I`m running Windows XP SP1.
If you have any sugestions, please let me know.
Thank You!
|
|
|
|
|
My first thought is that the service is already running on the machine you're installing on.
Cheers, Julian
Program Manager, C#
This posting is provided "AS IS" with no warranties, and confers no rights.
|
|
|
|
|
No, I`ve uninstalled it before.
I`ve cleaned up the registry of any information regarding this service and it doesn`t exists on the HDD either. I`ve changed the product and upgrade code and still nothing. I have administrative rights, I even give miself rights to act as a part of the operating sistem .
The entry in the Application log is:
The description for Event ID ( 11001 ) in Source ( MsiInstaller ) cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer. You may be able to use the /AUXSOURCE= flag to retrieve this description; see Help and Support for details. The following information is part of the event: Product: FaxManagementServices -- Error 1001. Access is denied.<br />
, (NULL), (NULL), (NULL), (NULL), (NULL), (NULL).<br />
I`ve activated the security audit and apparenty there is not an authentication faliure during the install process.
|
|
|
|
|
Hey guys-girls,I have been looking to find a good huffman tree example but i cant seem to find a code example of one that is in a language i know (C#, i can kinda desipher C/C++, they are all in java that i have found). I have no problem understanding the logic of the huffman tree algorithm but my problem lies in visualizing how to code it into C#. i want to write it in C# to see if i can do it. does anyone know of a good example or have any of you coded on before in a high level object language. I can kinda do it...i just dont know how to build the actuall tree portion of the Algorithm, any examples on that would help too. Thanks alot.
Jesse M.
The Code Project Is Your Friend...
|
|
|
|
|
Hi, I know this probably wont help, but have you tried using the Java conversion assistant?
|
|
|
|
|
I'm kind of puzzled: java and C# are very similar. If you've found a java example of creating a huffman tree than it should be easy to convert it into C#.
To build a huffman tree you'll need two basic classes: the tree and a priority queue. (You need the latter to easily get the nodes or partial trees with the smallest weights every time.)
A huffman tree consists of node objects. Each node object will have a left child node and a right child node, and will have a weight value (the weight being the count of characters in the node and its children). You'll also store the byte value in the node.
So, first do it without regard to performance. Create an array of nodes, one for each possible byte in the input stream (i.e. 256 of them). Read through the input stream, for each byte you update the weight in the relevant node object.
Push all the nodes with non-zero weights in the priority queue.
Pop the top two off. Create a new parent node with weight equal to the sum of the two nodes' weights. The children of this parent are the two nodes popped off.
Push the parent node into the priority queue.
Perform the previous two steps until there is only one node in the queue. This is the huffman tree.
Cheers, Julian
Program Manager, C#
This posting is provided "AS IS" with no warranties, and confers no rights.
|
|
|
|
|
i think i can visualize writing the code for it.but how do i setup the decompressor ?
Jesse Murcray.
The Code Project Is Your Friend...
|
|
|
|
|
It depends on where the decompressor gets its input from.
For instance, if your Huffman Tree compressed a clear text file into a compressed file, then the decompressor would get the compressed file to generate the clear file. Right?
If so, remember that the compressed file should include in its header a serialized version of the HuffmanTree itself. Thus, the decompressor would first read this "symbol table" in the compressed file, and build the corresponding HuffmanTree from it (i.e. de-serializing the HuffmanTree).
Once that is done, the decompressor should just read the rest of the compressed file, get the corresponding character from the HuffmanTree, and place this character in the output file.
HTH,
FOR
|
|
|
|
|
So it's more than just building the tree, then?
Building the tree is the standard well-understood algorithm. Using the tree is where things diverge and get really tough. To compress using a huffman tree, you have to remember to pass an encoding of the tree to the decompressor, followed of course by the compressed data.
There are various ways to encode the tree: pass along 256 int values, each containing the calculated weights. The decomnpressor can then use these in exactly the same way as you used to build the tree in the first place. Unfortunately 256 ints would be 1K, which is a lot to add to a compressed file.
You can analyze the weights and compress out zero values. For example, compressing a text file would result in a lot of byte values (characters, if you like) being unused and hence having a zero weight. You could devise an RLE (run length encoding) scheme that replaces runs of zero bytes in the weights table.
You could use a variable length encoding. Say you analyze the weights as you write them out. You output 2 bits before every wieght. If the bits are 00, the next weight will be 8 bits long. If the bits are 01, the next weight will be 16 bits long. If 10, the next weight will be 24 bits. If 11, a full 32 bits.
And so on. You could of course try out all these possibilities and pass along the smallest result (along with an indicator to tell the decompressor which variety was used).
Compressing and decompressing the data is the standard algorithm again. You would need to write a class that was a bit stream (to get the really nasty stuff out of the way), otherwise you're going to be writing a lot of bit manipulation code in the middle of your compression and decompression code.
Cheers, Julian
Program Manager, C#
This posting is provided "AS IS" with no warranties, and confers no rights.
|
|
|
|
|
jtmtv18 wrote:
i just dont know how to build the actuall tree portion of the Algorithm
I would develope the tree as a Huffman Tree class all by itself.
It is basically a Binary tree:
<br />
public class HuffmanTree<br />
{<br />
private HuffmanNode node = null;<br />
private HuffmanTree rightChild = null;<br />
private HuffmanTree leftChild = null;<br />
}<br />
with the Node being
<br />
public class HuffmanNode<br />
{<br />
private char c;
private int f;
}<br />
You can implement the joining of two trees (when you are building the Huffman tree
based on the charactrs' frequencies) in the HuffmanTree class, or you can implement it
outside the HuffmanTree class. In this second case, the HuffmanTree becomes a simple
binary tree containing HuffmanNodes (you could generalize this and make your own
BinaryTree class containing Objects instead of Huffmannodes).
HTH,
FOR
PS: If I was at home, I'd pass along my C++ HuffmanTree code,
but -alas- I am working
|
|
|
|
|
Thanks alot for your time. ill have to work on it later. I stayed up all night last night and got the tree down to a single node i.e they are all connected.
One question though, since each new "tree" contains the weight of the previous 2 children combined, should the weight at the top of my tree be equal to the length of the string?
Jesse M
The Code Project Is Your Friend...
|
|
|
|
|
That's right. The weight (or frequency) for leaf nodes is merely the count of that particular character at the leaf in the source file; the weight for internal nodes, which are parents, is the count of all the characters in the children nodes.
Cheers, Julian
Program Manager, C#
This posting is provided "AS IS" with no warranties, and confers no rights.
|
|
|
|
|
jtmtv18 wrote:
should the weight at the top of my tree be equal to the length of the string?
After the whole tree is built, yes, the weight of the root will be equal to the length of the text to be compressed.
HTH,
FOR
|
|
|
|