|
Hi Guys,
I have gone through ur code which is related with grid control in which combo box is used from the site codeproject.com
Actually the problem is that u have used custom control and on that u have created the grid. In the
Custom control u r giving one class name which is MFCGridCtrl and this class needs to be registered before the creation of the dialog box which is containing the grid.
For Registering u have used one function named RegisterWindowClass(). I have used the same function but I am not getting the custom control when I am executing the program. Can u provide some suggestion where I can correct the my code.
What I have done is as follows.
1) I have created one project which is dialog based and I have added custom control in it.
2) I have given the class name for the custom control.
3) I have added one class in the project and declaring its object in the main Dlg class. In the constructor of this class I am calling this RegisterWindowClass().
But when I am executing the program it is not showing me the custom control.
There is no error in the code. In the output I am getting only dialog box with the ok and cancel button.
Do provide the relevant information so that the custom control appears.
I am using MFC
I will be very thankful
If u need any information do let me know.
Regards,
Vimal Tomar
|
|
|
|
|
Vimal Tomar wrote:
I am using MFC
I suggest using your glasses too
leppie::AllocCPArticle("Zee blog"); Seen on my Campus BBS: Linux is free...coz no-one wants to pay for it.
|
|
|
|
|
I have a hashtable with the object property names as keys, and true/false bit as values. This hashtable represents a security schema. It sets access rights for every property of every object in my application. (I may change the true/false value to some combo of "rwz"..."read, write, or no access").
I want to apply this schema to my classes....I'm wondering if there is something flawed in the following design:
In the constructor, I will grab the the security schema and set the initial values of the properties to the values in the security hashtable.
When that object is instantiated from within a function, I will (usually) grab data from the database. If that particular property is already set to false (as the security hash directed), then I will not re-set the value from the database.
In the client code (ASP.NET pages), I haven't figured out yet how I will gracefully not show those values with the false setting...since they are false, they are not to be shown. If any of you know how to HIDE a column/field in datagrid/datalist/repeater based on property value, I would be much obliged!
Thank you for your opinions/suggestions.
|
|
|
|
|
but I can't see it!
I have a constructor
<br />
public nerd(int locNo)<br />
{<br />
location = locNo<br />
}<br />
and a method/function that uses that constructor
<br />
public nerd myMethod(int locNo, divNo)<br />
{<br />
<br />
nerd myNerd = new nerd(locNo);<br />
<br />
<br />
nerd.location = 9999;<br />
<br />
return nerd;<br />
}<br />
But the returned nerd object from myMethod shows its location property still equal to the original locNo, not 9999.
So I tried passing in a nerd object using the ref keyword, and got the same result.
What is going on here? Yes, the constructor set the value of location, but then I change that value so I should now see the new value, not the old. If I do this using a ref like so:
<br />
<br />
nerd myNerd = new nerd(6666);<br />
<br />
<br />
public nerd myMethod(ref nerd refNerd, int locNo, int divNo)<br />
{<br />
<br />
nerd.location = locNo;<br />
<br />
}<br />
<br />
myMethod(ref nerd, 9999, 1);<br />
<br />
I still get the old location number, not 9999.
Am I crazy?
|
|
|
|
|
sharkfish wrote:
public nerd myMethod(int locNo, divNo)
{
nerd myNerd = new nerd(locNo);
//but here I want to change the value of nerd's location property
nerd.location = 9999;
return nerd;
}
This is obviously not your actual code, as it would fail to compile unless location is a static property. If it is, that's where your problem lies, if it's not, consider posting your actual code, so the actual error can be spotted and pointed out to you.
Christian
I have drunk the cool-aid and found it wan and bitter. - Chris Maunder
|
|
|
|
|
Thanks for your reply.
I found my error.
It was something unrelated to the issue I posted.
Apologies for wasting your time.
|
|
|
|
|
I think you should specify this in your myMethod:
myNerd.location = 9999;
return myNerd;
instead of
nerd.location = 9999;
return nerd;
(which will not work unless it is a static class)
|
|
|
|
|
Hmm I'm not sure if this would be right or not (since I'm kind of new to C# myself ) but in your first listing of code shouldn't you use the object and change the location value wrt that object? I mean rather than doing:
nerd.location = 9999; // your code
shouldn't you do:
myNerd.location = 9999; ? // where myNerd is your object
And as for your constructor I think it should be like:
public nerd(int locNo)
{
this.location = locNo; // using 'this'
}
where the 'this' would point to your current object thereby changing that particular object's location...
Good luck as such...
|
|
|
|
|
Hi,
I've written this windows service in C# which unfortunately has a memory leak in it. Basically the program starts out using a 10Mb working set, but after three days it goes up to 200Mb, which says to me somewhere I'm forgetting to dereference some objects etc. The thing is I've looked and I can't find it.
Is there a tool or methodology for finding object references that are being held onto erroneously by my application? Shouldn't be too hard to find - theres 200Mb of them (and thats after 3 days - this thing is supposed to run 24x7)
TIA,
Andy
|
|
|
|
|
make sure you "Dispose" all objects which can be disposed!
setting the references to null wont nessaccarily kill the objects, the garbage collection in .NET removes dead objects periodically (from what I have seen)
Typically i have seen my applications the memory useage gradually goes up then every so often it returns to a normal level, this is probably when garbage collection kicks in.
I follow these rules:
1) Any objects which need to be closed get closed in a finally block
2) Any objects which need to be Disposed get disposed and set to null
Cheers, James
James Simpson
Web Developer
imebgo@hotmail.com
|
|
|
|
|
Search for "Application Profiler" on http://www.gotdotnet.com/community/usersamples/.
It'll enable you to see what's going on with your managed heap. There are other similar tools out there; try googling for "managed heap profiler" or similar.
Cheers, Julian
Program Manager, C#
This posting is provided "AS IS" with no warranties, and confers no rights.
|
|
|
|
|
I see that the word "defererenced" has taken on a whole new meaning in C#! This is very funny!
|
|
|
|
|
|
|
Basically my windows service is used to handle a teletext signal reader (essentially receives text over TV broadcasting) via a C api compiled to a dll.
My service continually waits on the feed for new messages. Once a message is received, it is processed, stored to a database and made available for other applications in my domain.
Where I initially thought my memory was getting gobbled up was in my queues used to pass messages between threads, since depending on the throughput of the device, could have up to 18,000 messages (each message object is probably < 100 bytes or so) waiting to be processed. But I did the math and that didn't come close to my 200Mb working set. Essentially one thread puts messages in a queue and another thread waits for messages in the queue, dequeues the message and processes it. There are around 10 such threading setups in the service.
So I'm looking else where for the problem. Somewhere I'm forgetting to deallocate objects. One thing that I'm testing for at the moment is that maybe one of my threads is crashing and the queue of which its supposed to dequeue is filling up. Since the problem doesn't appear until the service has been running longer than 6 hours or more, it's going to take some time to find (which further makes me think that a thread is crashing somewhere).
Failing one of my threads crashing over the weekend I will be looking at that manager heap profiler mentioned above in one of the posts.
Andy
|
|
|
|
|
Thanx, this explains alot more
Andy Davey wrote:
Basically my windows service is used to handle a teletext signal reader (essentially receives text over TV broadcasting) via a C api compiled to a dll.
You seem to constantly marshalling string data to the C# service (as I understand it), are the data being freed afterwards? .Net wont do this for you. It will make yet another copy of it, but managed this time (no worries now).
Also the problem could be in the C code or the way the function being called is meant to implemeted, like said above whether the resulting char* should be freed or not. If you have the C code, you can easily "remedy" this by using a GC (i suggest libGC).
HTH
leppie::AllocCPArticle("Zee blog"); Seen on my Campus BBS: Linux is free...coz no-one wants to pay for it.
|
|
|
|
|
Rrrrrright. I'd never considered that.
Yeah the way that I access the API is by passing an uninitialised object which the API initialises (eg GetMesssage(out p_messageDetails);)
Now who's repsonsibility is it to deallocate the memory used in the message? Mine or the marshallers?
I wouldn't even know how to deallocate that memory to be honest . Its amazing how lazy you get when you code under a GC.
Andy
|
|
|
|
|
It sounds like your job
You can try use:
Marshal.FreeHGlobal() , but somehow i dont think that will cut it.
Best approach would be to store the returned pointer, then do a manual marshall to with PtrToStructure, then use the above method to free it.
Good luck
leppie::AllocCPArticle("Zee blog"); Seen on my Campus BBS: Linux is free...coz no-one wants to pay for it.
|
|
|
|
|
On my main form I have a progess bar "progressBar1" (Public).
I have another class file "pb.cs", in which is the code...
using System;
namespace WindowsApplication8
{
public class pb
{
Form1 guid=new Form1();
public pb()
{
guid.progressBar1.Value=100;
}
}
}
Why can I not change the value of the progess bar to 100?
/\ |_ E X E GG
|
|
|
|
|
eggie5 wrote:
Why can I not change the value of the progess bar to 100?
Do you mean that the progress bar doens't visually change or do you mean that the framework throws an exception.
Without seeing more of your code I would suspect its the former one. From what I can see you are expecting this pb class to update the progress bar in the applications main form. However, the pb class has no reference to the main form. When the pb class is created, a new object of type Form1 is created. This new is not the same object as the one displayed on the screen when you run your program. To get your guid member to reference the displayed form - pass a Form1 object reference to the pb constructor.
An example would be
public class Form1
{
pb m_pb;
public Form1()
{
m_pb = new pb(this);
}
}
public class pb
{
Form1 guid;
public pb(Form1 p_ref)
{
guid = p_ref;
guid.progressBar1.Value = 100;
}
}
|
|
|
|
|
it works like a charm. gracias.
but, how would I do this from class "logging.cs" with out direct access to it from the main form "Form1.cs".
understand?
|
|
|
|
|
how would anyone understand... this is too hard to explain.
/\ |_ E X E GG
|
|
|
|
|
You want to update your progress bar from another class, right ?, but you don't want to make a reference to the from that contains the progress bar ?
Is that ???
Free your mind...
|
|
|
|
|
sure... do you think you can help a guy out?
/\ |_ E X E GG
|
|
|
|
|
Sure. Let me build a sample.
Free your mind...
|
|
|
|