|
Without seeing your code, it's a little difficult to tell you what you're doing wrong. But, I can take an educated guess at it.
The standard problem with this is that you're not using a fully qualified path to find the file you're trying to run. You're probably just specifying something like myBatchFile.bat , assuming that that file will be in the current directory. This is almost always the case and a very bad assumption to make. You show never assume that the current directory is whatever you think it is. Instead, always(!) build a complete path to to the file you want, then use that full path in your command line that you want to execute.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Here's some code:
void DrawLine(Graphics g)
{
Pen p = new Pen(Color.Blue, 2);
p = c_xy.GetNextPen(); //returns an index of an array of Pens in
//a generic class, (i.e. Pen p1[0]..)
//different Color, different Font
g.DrawLine( p, x1, y1, .....)
How can I draw a line with an arrow or triangle on the end so that it
is obviously visible, that is it looks like an arrow on the end of a line
and not a "sharpened pencil".
I've read a bit of the MSDN and messed around with some code but can't seem to sort out this LineCap/Arrow/Triangle stuff. Not very clear to the novice...thanks
|
|
|
|
|
Hi again,
if the predefined LineCap constants are too small for you, then you can define a CustomLineCap (namespace System.Drawing.Drawing2D) by yourself. There is already one implementation in the .Net framework which draws an arrow of selfdefined size.
So when you create your pens instead of assigning the EndCap/StartCap properties do the following:
pen.CustomStartCap = new AdjustableArrowCap(10, 10, true);
pen.CustomEndCap = new AdjustableArrowCap(5, 5, true);
Don't forget: using System.Drawing.Drawing2D;
|
|
|
|
|
|
Hi,
I am making a program and I need to get the path to the main application exe. How to do that the easies way? In Delphi there was a simple way, just reading the property PATH in the class APPLICATION. What is C# way for that?
Millan
|
|
|
|
|
It's quite similar: Application.StartupPath.
---
b { font-weight: normal; }
|
|
|
|
|
Use Environment.CurrentDirectory Property
|
|
|
|
|
Yes, thanx. Stupid me. I used Application.StartupPath. Both works ok.
|
|
|
|
|
That's not correct, I'm afraid.
Environment.CurrentDirectory is just the current directory, but this can change if you use a FileOpenDialog , for example.
He should indeed use Application.StartupPath or Path.GetDirectoryName(Application.ExecutablePath) .
Regards,
mav
|
|
|
|
|
Hi was woundering how to change the quality of background images on my controls .
My backgrounds seem "grainy" like they are of a lower bpp... i was looking around in my program and the only thing remotley like what im after, that i could find, was BackgroundImage.PixelFormat but that is GET only
Sorry if im bring a muppet... this does seem like such a simple thing, that would be on the properties toolbar ... but I just cant find what to do.
Cheers.
|
|
|
|
|
If the image is not being drawn at it's correct size, then the interpolaton mode needs to be bicubic or similar, or you'll lose quality in the resize operation. Not sure how to set this for a control, I'm talking about if I am drawing the image myself.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
please tell me how to put a progress bar in a sttus bar .
as it is in MS Word.
saurabh walia
|
|
|
|
|
You mean in the browser? Can't be done.
You can set the text that is displayed, though:
var done = 42;<br />
window.status = 'Progress: '+done+'%';
---
b { font-weight: normal; }
|
|
|
|
|
You'd have to do an OwnerDraw status bar. Something like this.
Picture a huge catholic cathedral. In it there's many people, including a gregorian monk choir. You know, those who sing beautifully. Then they start singing, in latin, as they always do: "Ad hominem..."
-Jörgen Sigvardsson
|
|
|
|
|
When I update the data in my PropertyGrid, the PropertyGrid scrolls to the last selected property. The user is going to be scrolling through the properties as they update, so I need to disable this auto scrolling feature. I played around with the AutoScroll property but that didn't seem to do the trick. Has anybody else seen this problem. My Google search didn't produce any answers.
Thanks in advance
|
|
|
|
|
Just in case someone else encounters this problem, here is my current solution:
1) Extend the PropertyGrid class.
internal class HookPropertyGrid : PropertyGrid<br />
{<br />
public VScrollBar VScrollBar<br />
{<br />
get<br />
{<br />
object view = Controls[1];<br />
string className = "System.Windows.Forms.VScrollBar";<br />
return (VScrollBar)PluginGuiUtil.GetFirstControlOfType((Control)view, className); <br />
} <br />
}<br />
<br />
public int GetVScrollPos()<br />
{<br />
if (null != VScrollBar)<br />
{<br />
return VScrollBar.Value;<br />
}<br />
return 0;<br />
}<br />
<br />
public void SetVScrollPos(int pos_)<br />
{<br />
if (null != VScrollBar)<br />
{<br />
VScrollBar.Value = pos_;<br />
}<br />
}<br />
}
2) Before you set the selected object of the PropertyGrid, save off the current scroll pos. After setting the selected object, restore the previous scroll position.
int pos = m_propertyGrid.GetVScrollPos();<br />
<br />
PropertyTable props = new PropertyTable();<br />
<br />
CreateKnownProps(props);<br />
<br />
PopulateKnownProps(props, e_);<br />
<br />
CreateAndPopulateUnknownProps(props, e_);<br />
<br />
m_propertyGrid.SelectedObject = props;<br />
<br />
m_propertyGrid.SetVScrollPos(pos);
The only problem I have seen with this solution is that a selection rectangle will be drawn at the wrong location initially. As soon as you move the scroll bar the selection jumps back to the correct item. This problem only occurs if the selected item is off screen.
|
|
|
|
|
I have a problem that i have to find out how i can find out the current volume of the audio. Basicly i want to have the the audio file split when it gets to a section that nothing is playing.
|
|
|
|
|
Hi,
I'm trying to build a test in nUnit, that checks if after a specific function call, all numeric property values are set to zero. Since I don't know if I will eventually add other properties, I tried building this test in a generic way. I'm not even sure I can do something like this, but if yes, how should I do it?
I'm used to programming in VB 6 and a bit of VB.Net, so I'm not too sure where to start on how to do this in C#, but I've tried a couple of things that look like this :
MyClass myClass = new MyClass();
for (int i = 0; i <= myClass.GetType().GetProperties().GetUpperBound(0);i++)
{
if (myClass.GetType().GetProperties()[i].PropertyType.IsValueType)
{
if (myClass.GetType().GetProperties()[i].GetType().IsArray)
{
MessageBox("Don't forget to check array properties eventually!");
}
else
{
Assert.AreEqual(0,(int)myClass.GetType().GetProperties()[i].GetValue(myClass.GetType().GetProperties()[i],null));
}
}
}
Each time, I get a System.Reflection.TargetException.
Thanks in advance if anyone can help me!
P.S. Maybe it could be easyier to access the object's private variables directly, but I don't know how to do that either.
jG
|
|
|
|
|
You can't reach the private propertys of a class unless you use reflection. They are supposed to be unreachable, that is why they are private in the first place.
A more object oriented way of doing this would be to supply an interface that the method has to implement.
interface IVerifyable {
bool Verify();
}
When you create a class that needs verification, you inherit the interface and implements the method.
public class MyClass : IVerifyable {
private int myValue;
public bool Verify() {
return myValue != 0;
}
}
This way each class is responsible for it's own verification.
---
b { font-weight: normal; }
|
|
|
|
|
Hi Guffa,
Thanks for the answer. I wasnt' trying to reach private properties yet, but I guess that might turn out to be a problem also eventually.
But if I want to check things automatically, how could I do it?
For example, in 6 months, I add a myValue2 to my class, and forget to add the check in the IVerifiable method, nothing is going to tell me that I forgot to do it.
Is is simpler to access properties generically inside the clas?
Thanks again
jG
|
|
|
|
|
Accessing the properties directly is of course more simple and efficient than through reflection.
Letting the class itself be responsible for it's own verification makes it much more flexible. You can build any kind of verificaton, and the code that is using the verification method needn't know anything about how it works.
Of course, any changes to the class might affect the verification. On the other hand, it might also affect a number of other things, like serialization or disposal.
To have the verification inside the class itself also makes the code easier to follow. If you get back to the code after a year, it's more likely that you remember that there is any verification at all if it's in the class itself, instead of buried away in some other class.
---
b { font-weight: normal; }
|
|
|
|
|
Hi Guffa,
I would usually say you are right, but in this case, I have at least 20 tests yet for my class, and I'm not sure I want them to be included in the code and follow everywhere I use the class.
Also, I am mostly doing those tests right now to learn how to work with nUnit (something I'm not used to doing), and I hope that if I get back to the code after a year, I will use nUnit again also, so the tests will follow.
Thanks again for the comment!
P.S. Lovely site by the way.
jG
|
|
|
|
|
This piece of code seems to work fine.
private void CheckNumericValues(object instance)
{
foreach(PropertyInfo propertyInfo in instance.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic))
{
if (propertyInfo.PropertyType == typeof(System.Int32))
{
object val = propertyInfo.GetValue(instance, null);
Assert.AreEqual((int)val, 0);
}
}
}
Of course, it works for only properties returning int, you'd have to write separate if conditions for each numerical type if you want generic numeric value checking.
Regards
Senthil
_____________________________
My Blog | My Articles | WinMacro
|
|
|
|
|
Hi Senthil,
Thanks, this did work for me.
jG
|
|
|
|
|
RDBMS is should only be used for simple applications.For todays applications they are not appropiate.
I agree that OODBMS is not well know but the things in the POEAA ate al most 6 months of my development time.
which included identity maps,seperated interfaces,repository,query object,finders,mappers,topological sorting,lazy loading,List Loader,Layer supertype ...etc.
yes in some way I had read the book so many times and applied ALL the enterprise patterns it has got but I still think
POEAA is missing something that it is based on SQL which is a structured system....(for me right now SQL stands for Stupid Query Language)
As SQL is procedural I think it should not exist in todays applications.(but u know people love to sell DB)
Why did we do the patterns in POEAA?
The reason is...... ;we wanted an OO code that we could reuse.....but every thing is hidden between the idea
of the primary key,foreign key idea that we should not be exposed of.
The devil is in the uniequness of the primary key...it makes the developer bring the bussiness logic into the database(normalization), where it is not really appropiate.
Such as think as a human brain does not use pointers(primary keys ) to remember? Does anybody say hmmmmmm my name is (pointer 124567)john smith.
I don't think so.The brain uses objects to remember other objects....
So why is this SQL thing is SO succesfull?
the reason is no body is doing any "domain model" in their applications as the procedural way is the easy way.
Smile [ ] Crying [:'(]
Why am I smiling and crying ?
Because I have erased ALL patterns in POEAA which makes me cry But we are thinking about burning the book when it gets cold that makes me laugh.
All the work we had done does not make sense with an OODBMS.
(.....still it took me so much time to figure out that Data Mapper idea is so "concrete idea" (narrow minded idea )that it does not live for so long even it is your hand written one)
thanks for the discussion caddre
PS: all these ideas are my point of view.
PS2: I did not want to offend any people who are writing data mappers they can be usefull in simple SQL CRUD applications.
Ps3:Myth: ODBMS products do not scale
www.service-architecture.com/object-oriented-databases/articles/myth_odbms_do_not_scale.html
....As of March, 2003, the Stanford Linear Accelerator Center (SLAC) stored over 800 terabytes of production data using Objectivity/DB.
>>>>>>>>>> most of the DB's in the world are smaller than a terabyte....(more than 90 percent)
|
|
|
|
|