|
|
You need to research the file format so you can parse it correctly. This[^] may help
Dave
BTW, in software, hope and pray is not a viable strategy. (Luc Pattyn) Why are you using VB6? Do you hate yourself? (Christian Graus)
|
|
|
|
|
I have an application where the user sets-up a workspace. The workspace has a variety of elements including arrays, bitmaps, generic lists, etc. When the user is done working he/she can save the workspace. The application saves the elements in a sequenced, binary file. When the user comes back, he starts the application and loads the workspace through an “open” menu item. It works.
Now, some users instinctively navigate to the file and double-click to both start the application and load the file. I’m all set with setting the default app for the extension and all that. But, what is the standard procedure for instructing the application to load the selected file if it has opened by way of a file double-click?
|
|
|
|
|
when you double-click a file in Windows Explorer, it will launch the application associated with the file extension, and pass the full path as the first command line parameter (or several if several files were selected). So let your app look for command line arguments, and if there are any, open them.
Either use the optional parameters of the Main() method, or use the Environment class to get the command line.
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read code that is properly formatted, adding PRE tags is the easiest way to obtain that. [The QA section does it automatically now, I hope we soon get it on regular forums as well]
|
|
|
|
|
Spuose your app displayes images. You set the default "open with and all that" to your app.
Then in program.cs inside Main after Application.Enable.... do something like this:
if(args!=null){
Application.Run(new MyCoolImageViewer(args[0]);
}
else{
Application.Run( new MyCoolImageViewer(null);
}
And of course in your ctor check for null before opening the image.
|
|
|
|
|
|
I have this function that is called from the constructor of the main form:
private void InitNet()
{
listener= new TcpListener(localAddress, portNo);
listenForConnection = new Thread(StartListening);
listenForConnection.Start();
Control.CheckForIllegalCrossThreadCalls = false;
}
The StartListening function is defined as follows:
private void StartListening()
{
listener.Start();
while (true)
{
Networks user = new Networks(listener.AcceptTcpClient());
}
}
When i close the program, it does not get out of memory, possible because of the thread. I have tried to abort the thread in the FormClosing Event but this did not work, how can i close this application competely (Of course not using task manager! )
Wamuti: Any man can be an island, but islands to need water around them!
Edmund Burke: No one could make a greater mistake than he who did nothing because he could do only a little.
|
|
|
|
|
Wamuti wrote:
CheckForIllegalCrossThreadCalls = false;
Evil
Dave
BTW, in software, hope and pray is not a viable strategy. (Luc Pattyn) Why are you using VB6? Do you hate yourself? (Christian Graus)
|
|
|
|
|
You need to tell the thread to stop so that it can cleanup its resources and exit:
[RE-EDIT]
bool runListener = true;
private void StartListening()
{
listener.Start();
while (runListener)
{
if (listener.Pending())
{
Networks user = new Networks(listener.AcceptTcpClient());
}
else
{
Thread.Sleep(250);
}
}
listener.Stop();
}
then in the FormClosing event (or wherever you're doing cleanup) set runListener to false.
Also, if you set the thread's IsBackground property to true then the thread won't cause the program to remain alive even if it isn't terminated before the form closes.
Control.CheckForIllegalCrossThreadCalls = false; And that's just completely uncalled for.
|
|
|
|
|
Thanks. It worked.
Wamuti: Any man can be an island, but islands to need water around them!
Edmund Burke: No one could make a greater mistake than he who did nothing because he could do only a little.
|
|
|
|
|
Glad to help
|
|
|
|
|
Thanks again for the optimization.
Wamuti: Any man can be an island, but islands to need water around them!
Edmund Burke: No one could make a greater mistake than he who did nothing because he could do only a little.
|
|
|
|
|
Hi to all
I need a component for convert text to speech and speech to text
|
|
|
|
|
|
Hello
can help me in my problem.I need deal with very big number to add,sub,multi and divide I can do the add,sub and multi but can't do the divide can help me.
I need divide very long integer number such that
x=444444444444444444444444444444444444444444444444444444444444444444444444
y=3333333333333333333333333333333333333333333333333333333
or more that each number consist from more of 300 digit can I divide it and result is div and mod.
thanks.
|
|
|
|
|
I can't see any possible application for that sort of number crunching. What is a 300 digit integer anyway?
Look at the maximum sizes of the datatypes, you're going to find you can't actually store numbers that big.
|
|
|
|
|
Apologies for a severely lacking knowledge of the datatypes. At least I can go home today knowing I learnt something.
|
|
|
|
|
hammerstein05 wrote: I can go home today knowing I learnt something
Dave
BTW, in software, hope and pray is not a viable strategy. (Luc Pattyn) Why are you using VB6? Do you hate yourself? (Christian Graus)
|
|
|
|
|
hu_kh00 wrote: I need deal with very big number
Try one of the BigInt[^] implementations
I are Troll
|
|
|
|
|
IIRC Microsoft J#[^] has a BigInt implementation that can be used by any .NET language. It looks like they're dropping j# so get it while you can!
Dave
BTW, in software, hope and pray is not a viable strategy. (Luc Pattyn) Why are you using VB6? Do you hate yourself? (Christian Graus)
|
|
|
|
|
J# has lost all support long ago. I did use its BigInt on occasion.
There finally is a bit integer type in .NET, I haven't tested it yet, I'll wait for an official 4.0 release...
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read code that is properly formatted, adding PRE tags is the easiest way to obtain that. [The QA section does it automatically now, I hope we soon get it on regular forums as well]
|
|
|
|
|
I used to divide bit-by-bit with the standard binary long division, which gives the quotient and the remainder at the same time. But there are faster ways, such as SRT division (quite complicated though)
|
|
|
|
|
I have a problem...
public delegate MyDelegate()
class MDIParent
{
public event MyDelegate myEvent;
public MDIParent() //Constructor
{
// Create and open MDIChild from MDIParent Constructor
MDIChild mdiForm = new (MDIChild())
}
Class MDIChild
{
public MDIChild //Constructor
{
((MDIParent)this.MdiParent).myEvent += new MyDelegate(myPriveteMethod);
}
}
Well, as you can see, I
- Auntomatcally create a MDIChild from MDIParent constructor
- In the MDIChild constructor I try to suscribe to an MDIParent event
It gives me a SystemNullException. It perfectly suscribes if I do it OUTSIDE the MDIChildForm constructor. I suppose it is becouse parent form is not still initialized (child is created form INSIDE parent's constructor).
I need to open MDIChild from the begginig, and suscribe to event at the begginning, too. Any workaround to do this without using the constructor
Thanks!
|
|
|
|
|
Kaikus wrote: Auntomatcally
You're defining extended relationships in your code.
|
|
|
|
|
How about passing MDIParent instance into MDIChild 's constructor?
class MDIParent
{
public event MyDelegate myEvent;
public MDIParent()
{
MDIChild mdiForm = new MDIChild(this);
}
Class MDIChild
{
public MDIChild(MDIParent parent)
{
parent.myEvent += new MyDelegate(myPriveteMethod);
}
}
Best wishes,
Navaneeth
|
|
|
|