|
Thanks Dave, you are right of course, but I had to try everything.
Regards,
Johan
My advice is free, and you may get what you paid for.
|
|
|
|
|
I want use some matlab function in vb. How to connect matlab to vb? and How to use that function. Thx.
|
|
|
|
|
Google for "VB6 MatLab" and start reading.
|
|
|
|
|
Hello !
When adding a image to a form , there are 2 options to choose : Form resurcees and Project resources.What are the differences and how to choose ?
Thank you !
|
|
|
|
|
You use Form resources usually to provide localization for a specific form. so you get a set of resource files for each form making it easier for you to maintain them and VS already provides some mechanisms that automate the localization for you that way.
project resources should be used for things that aren't bound to a specific form but are used in the whole application. A good example would be error messages.
For a bit more information about localization take a look at Walkthrough: Localizing Windows Forms[^] or search through the articles on codeproject about localization.
I hope this helps
|
|
|
|
|
I written a ProcessUtility class that allows me to call a process (which in turn runs a commandline executable) asynchronously. The process then raises events indicating completion, progress, etc.
When the ProcessUtility class is set up from the UI form as:
dim WithEvents P as ProcessUtility_Class
P.Start
All runs as expected. Events are raised appropriately and, as expected, they are on a different thread from the UI and calls to the UI controls must be invoked to avoid cross-threading errors.
I've been reading up on async, synchronization contexts and other threading concepts to better understand the issues. While I can (and have) wrapped every UI call within the events, it seems very redundant to have to do it every time a UI element is utilized. Since the problem isn't really the UI, but the Asynchronous process that is raising events in the "wrong" thread to the UI, it seems that there should be a (better) way to have my ProcessUtility class raise it's events within the threading context of the UI (if desired). That way, only the few events are specialized and whatever happens within them is UI-threadsafe. Perhaps something along the lines of (pseudocode):
ProcessUtility_Class
Public Event Process_Started(ThisProcess as sender, SecondArg as string)
Public sub Start(Form1)
Form1.StartInvoke 'Everything from here until endinvoke happens within the MyForm thread
RaiseEvent Process_Started(blah, blah)
Form1.EndInvoke
DoStuffAsynchronously
End Sub
Is there something like this that can be done that the raised events are always running in the context of the main form that created the ProcessUtility_Class object in the first place? My goal is to avoid having to continuously wrap every UI call with delegates and invokes.
|
|
|
|
|
What about using a BackgroundWorker for the background task? The ProgressChanged event will be sent to the correct thread, and you could use the Object userState parameter for your specific parameters. But in the end, that might create a different overhead for your events and look like just another WTF...
|
|
|
|
|
A BackgroundWorker would give similiar function, but I have several more events that BGW supports. And although I probably could inherit a class using BGW, I'd really like to learn the methodology myself and incorporate it into my objects.
|
|
|
|
|
smarrocco wrote: Is there something like this that can be done that the raised events are always running in the context of the main form that created the ProcessUtility_Class object in the first place? You "could" pass a reference of one of the controls of the main-thread to the worker-thread. That way the control "could" do the invoke. You'd do a myForm.Invoke() from the worker-thread.
..and then you'd be tearing your hair out, trying to fix the "object is already disposed" exceptions; your thread will still be executing when the mainthread starts disposing of stuff.
So, I used IlSpy to look at the code from the backgroundworker, and it's using a neat trick;
AsyncOperation.Post[^]
"Invokes a delegate on the thread or context appropriate for the application model."
Will (probably) try it out in the weekend
--edit
There's a how-to here[^].
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
modified 31-Mar-14 14:22pm.
|
|
|
|
|
Hello !
I'm using VB.net 2013 and sql server 2008R2
I'm using SMO for backup and restore databases.
I have some questions :
1. When I backup a database with SMO , the size of backup file is larger than size of backup file created with SQL server management studio. Why ?
2.If I want to restore a backup file , how can I test first that this is a valid backup file for my application.
Thank you !
|
|
|
|
|
1. SQL Server can create compressed backups
2. Run the restore using the VERIFYONLY[^] option - this will test the backup file without actually doing the restore
=========================================================
I'm an optoholic - my glass is always half full of vodka.
=========================================================
|
|
|
|
|
Thank you !
1. But using SMO is possible to create compressed backups? If yes , How can I do that ?
2. I want to check if this backup is compatible with my program , and has the tables structure that use my program.Is possible to do a check before restoring process ?
Thank you !
|
|
|
|
|
1. What is SMO?
2. I doubt that you can do this directly from a backup file - you would need to restore it (probably under a temporary name) and then examine the structure, which you could do programatically
=========================================================
I'm an optoholic - my glass is always half full of vodka.
=========================================================
|
|
|
|
|
SMO :SQL Server Management Objects (SMO) are objects designed for programmatic management of Microsoft SQL Server
|
|
|
|
|
1. The backup object has a CompressionOption property[^]
=========================================================
I'm an optoholic - my glass is always half full of vodka.
=========================================================
|
|
|
|
|
2. You may be abloe to get content information using the ReadBackupHeader method[^]
=========================================================
I'm an optoholic - my glass is always half full of vodka.
=========================================================
|
|
|
|
|
dilkonika wrote: But using SMO is possible to create compressed backups? SMO and SQL are two ways of doing things, but the features remain the same. The SQL Command[^] offers the same. The big advantage of SMO would be intellisense.
I'd suggest you write an article (for CodeProject) explaining the advantages and disadvantages of both. Seems you'll need to research it anyway
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Hello,
I am stuck and need some advice.
I am using a DataGridView to store CSV data and then using Zedgraph to display this data. Most of these values in the CSV are numeric and I have no problems with these but I have several items in the CSV that are text and display a change of state from on/off, open/closed, active/inactive, etc..
I have been trying to work out a method to have Zedgraph handle these digital On/Off states. I can convert the values to 0 and 1 to represent the states and that seems to work okay but I still need to have a text description for these states so the user can see the actual state or condition of the circuit.
Is there some way that I can assign both, for example display something like Open(0) / Closed(1) and have Zedgraph use the numeric values?
Thanks
|
|
|
|
|
Hello,
I am beginner and I have the following problem.
I have installed:
- Visual Basic 2010 Express
- Microsoft FrameWork
- Microsoft SDK
When I try to install a .COM object (Mapwindow GIS), I have the following error: aximp.exe is not found
I do not know how to fix this error? They write a lot about this error on internet, but I don't understand registry...
Thank you for your help,
Cheers
Charles
|
|
|
|
|
Did you check 32/64bit issues? If your application is running on a 64bit OS, and you did not set it to x86, it will run as a 64bit application. When that COM object is a 32bit application, it won't find it. In such a case set the target platform to x86.
|
|
|
|
|
Hello,
Thank you for your quick reply. I just checked but it is not the problem. Both are 32bit
|
|
|
|
|
I've started a process that runs a command line executable and takes several seconds to return. I've attached/enabled events (OutputDataReceived and ErrorDataReceived) to enable the returning of STDOUT and STDERR messages from the process as they appear.
All works fine, and all events return the lines of text as they should for stdout and stderr as they appear. But I've noticed that the OutputDataReceived and ErrorDataReceived events continue to be fired and return output *even after* the process.Exited() event has fired.
I would have thought that the process had not yet completed until the last of Error and Output events have been caught/raised, but perhaps there is some kind of buffering going on within the Process that I am unaware of. If this is so, how can I know when the Process has *truly* completed-- as in the OUT and ERR data have fired for the last time *and* the process has truly exited? Ideally I would not read the contents of the OUT and ERR until the process is truly completed, therefore telling me that there is no output to follow the Exited() event.
|
|
|
|
|
Your observations of redirected output continuing after the Exited event has fired is accurate. The Microsoft examples are misleading but buried somewhere in the documentation is the information you need, which is that the redirected streams send DataReceivedEventArgs.Data == null when they close.
Process.Exited on it's own isn't much use when outputs are redirected and for all practical purposes it's best to wait until all redirected streams have sent null before declaring the process complete.
Alan.
|
|
|
|
|
Thanks for the response, Alan.
A quick check confirms what you stated--that the OutputDataReceived and ErrorDataReceived are raised with a Nothing value for e.data as the last call after returning their respective data. Since this call happens only once (for each Received event) and *only* after the data is completed, I can set a local flag within the process for each Received event when that happens. Between the two flags and the process.hasexited() property I can raise a custom event along the lines of:
If Process.HasExited() and OutputDataReceived_IsCompleted and ErrorDataReceived_IsCompleted then
Raise Event Process_HasTrulyCompleted()
EndIf
This seems to be the only guaranteed manner of knowing that all the conditions are met.
|
|
|
|
|
Hello !
I have an application that use entity framework 6 on vb.net and sql server.
Inside the app.config file there is the connection string to this entity that is created automatically during wizard.
But when I finish the application , this connection string is inside the file Myapplication.exe.confg , and the users can open this file and can change connection string.
Is possible to remove the connection string from this file and to create during application startup , and after to include this connection string to entity declaration for example Dim entity1 as Myentities(Connectionstring).
My question is that if this is possible , how can I create the connection string with all information needed .
My current connection string inside the app.config is :
<connectionStrings>
<add name="Entity1" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=PC1;initial catalog=MyDB;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
Thank you !
|
|
|
|