|
Thank you for your help. I am using the Transform function, WITH the matrices made manually. I have done almost exactly as you've clued above.(By the way, how do we change the colors of text around here?)
Meanwhile the program's style has been changed.
I was taking liberty of net abbreviations, which everyone understands nowadays. And I did not know it's not liked here.
The program structure has now become as in to make 4 separate lines to draw the rectangle, and change its position using button-click.
I have already made the program, but it has one problem: I don't know how to call the DrawLine function in Button1_Click event. It gives me the following errors:
-first that I "No overload for method 'DrawLinePoint' takes '0' arguments" (like 'DrawLine()' ) .
-when I give arguments of p,Pt1, Pt2 it says they're classes and I should enter variables.
-When I give it the arguments Pen, Point, Point(And it is to check only) it says that "No overload for method 'DrawLinePoint' takes '3' arguments"!
-And I have a point to make here:-
**If I give it three arguments, shouldn't I write it 4 times? To make 4 lines I have to call it four times right?
Like this:
e.Graphics.DrawLine(blackPen,pt1,pt2);
e.Graphics.DrawLine(blackPen,pt2,pt4);
e.Graphics.DrawLine(blackPen,pt4,pt3);
e.Graphics.DrawLine(blackPen,pt3,pt1);
where blackPen is the name of the Pen, and pt1,2,3,4 are points.
I have defined all points. I have converted them into integers. And I don't know what else I have done. It was giving me 40 errors, after which it is now giving none, but it does as soon as I try to call DrawLine in Button1_Click event.
I have used the Transform function also. It has no problems.
But obviously, it will only WORK if I call the DrawLine function first. Wish I could attach my file here.
I have also tried making a separate class, but I wouldn't call it a serious step.
Help! I need a 3-D game programmer who can help me in my final year project!
Wajeeha
|
|
|
|
|
Wajeeha,
My following answer assumes you're drawing to a form.
Basically you want to perform your drawing within the Form's Paint event or override the Form's OnPaint method? not to draw directly to the form when a button is pressed. The Paint event will receive the PaintEventArgs referenced by 'e'. It's by using e.Graphics you will perform the necessary drawing. Based on your original request of altering the angle/rotation or a box when the user presses a button, I would have done something like this (although very basic)
<br />
int _x = 10;<br />
int _y = 10;<br />
int _width = 100;<br />
int _height = 100;<br />
int _angle = 45;<br />
...<br />
...<br />
...<br />
private void buttonclicked( object sender System.EventArgs e )<br />
{<br />
_angle = ( _angle == 360 ) ? 0 ? _angle + 1;<br />
this.Refresh();<br />
}<br />
<br />
<br />
private void FormPaint( object sender, PaintEventArgs e )<br />
{<br />
Graphics g = e.Graphics;<br />
Matrix matrix = new Matrix();<br />
matrix.Rotate( _angle );<br />
g.Transform = matrix;<br />
g.DrawRectangle( Pens.Black, _x, _y, _width, _height );<br />
}<br />
Everytime the button is pressed, we update the rotation angle and force a redraw of the box.
Regards,
Andy
|
|
|
|
|
Hi All,
I have a DataTable in a Windows Forms project that I would like to use a
Select statement. The problem is, I'd like to be able to do wildcard
searches (including single character searches). The DataTable only
supports multiple-character searches (*), and only at the beginning or end
of the search criteria.
What are my alternatives? I'd rather not have to go back to the database,
unless that is the best way. The DataTable was a performance enhancement.
Thanks,
pagates
|
|
|
|
|
I encounted a similar problem. It's quite frustrating that searching in a datatable isn't more flexible. I found a partial solution by parsing the search string to replace wildcards in the middle of the search string like this:
private string ParseWildCards(string strWild)
{
Regex reg = new Regex(@"(?<=.)\*(?=.)");
if (reg.IsMatch(strWild))
{
int i = strWild.IndexOf("LIKE");
if (i > 0)
{
string col = strWild.Substring(0,i).Trim();
string strReplace = "*' AND " + col + " LIKE '*";
return reg.Replace(strWild,strReplace);
}
}
return strWild;
}
This will replace a string like "col like 'aaa*bbb'" with "col like 'aaa*' and col like *bbb' which kind of works except that there is no way to stop it matching a string like '...bbbaaa...' because you can't specify that it should match the 'aaa*' part before the '*bbb' part.
If anybody has a better solution I would love to hear about it.
|
|
|
|
|
Thanks for the reply. I will combine this with an answer I saw in the MSDN newsgroups.
Basically, the MSDN answer was to manually go through the rows and doing a RegEx pattern search. While that could be slow with tens of thousands of rows, if I implement your solution first, I will at least have some rows filtered out.
Again, if anybody has a better idea, I'm all ears.
Thanks again,
PAGates
|
|
|
|
|
I have attempted to write a programme,when the Server thread received a packet,it can notify the mainFrame to display it,i used a event,the Server touch off it and the mainFrame capture it,and modifty the listview,but this bring on a excepition says it can not modify the listview in the thread not creat it?i do not known how to resolve it.
Sorry,i really can not speak real English!!!
|
|
|
|
|
You have to use Control.Invoke or Control.BeginInvoke instead of directly modifying the ListView on your mainFrame.
Regards,
mav
--
Black holes are the places where god divided by 0...
|
|
|
|
|
Hi all,
I need to create arrays of object dynamically.
for example
class Pesron;
Person[] p=new Person[10];
it creates 10 objects ob type person.
I don't know the exact number of objects. i have to specify it in run time
Thanks n Regards,
Ramya.R
|
|
|
|
|
|
Hello Ramya,
Do you know link list data structure. It will allow you to insert any number of object.
Divyang Mithaiwala
System Engineer & Software Developer
|
|
|
|
|
Can i use the link list concept in C#.It needs pointer to denote address..
Thanks n Regards,
Ramya.R
|
|
|
|
|
Do you know that when u declare any object it will just declare reference not allocate memory for that.
Now you can use this concept for link list.
Divyang Mithaiwala
System Engineer & Software Developer
|
|
|
|
|
yeah! I know that concept.
I'll try to implement that.
Thanks a Lot Divyang Mithaiwala!!!!
Thanks n Regards,
Ramya.R
|
|
|
|
|
Person[] p = new Person[n]
Where n is a varible with the number that you need.
Alternatively if it's the case that even at runtime you don't know how many you will need then use the ArrayList class.
|
|
|
|
|
A few others have replied here saying to use ArrayList. That is fine. If you're using .NET 2.0, you can use the System.Collections.Generic.List object to store your Person objects in a strongly-typed fashion (which ArrayList will not do). For example:
using System.Collections.Generic;
...
List< Person > persons = new List< Person >();
persons.Add(somePerson);
persons.Add(5);
-- modified at 10:39 Wednesday 8th March, 2006
|
|
|
|
|
Thanks Judah Himango ..
Your coding was very useful to me.
Thanks a lot
Thanks n Regards,
Ramya.R
|
|
|
|
|
hi
like console applications is run in the cmd prompt how i can run the classlibrary in the cmd prompt .Does any one know the command for it .
sasi
|
|
|
|
|
You can't, a class library is just that, a library, which contains lots of methods/classes but no interaction.
Either build yourself a simple console application to access and test the classes.
Or use something like NUnit to test your library.
|
|
|
|
|
Hello all,
I create one struct now i have to send this data to socket method SentTo . But SendTo method require byte[].
Now how can i convert struct type to byte[].
Thanx in advance.
Divyang Mithaiwala
System Engineer & Software Developer
|
|
|
|
|
You will have to write a custom method that does it. We may help you achieving this, if you post the code for your struct.
Also, do you have control of both communication endpoints?
--------
"I say no to drugs, but they don't listen."
- Marilyn Manson
|
|
|
|
|
Hello Michel,
Check your mail. or click here[^].
Thanx for responcing.
Divyang Mithaiwala
System Engineer & Software Developer
|
|
|
|
|
Huh?
--------
"I say no to drugs, but they don't listen."
- Marilyn Manson
|
|
|
|
|
I send you the whole code on your email address.
Plz collect it from there.
Divyang Mithaiwala
System Engineer & Software Developer
|
|
|
|
|
Here's how.
public struct MyStruct
{
public int x;
public int y;
public float z;
}
IntPtr p;
MyStruct s;
int size;
byte[] buffer;
s = new MyStruct();
s.x = 1;
s.y = 2;
s.z = 3.0f;
size = sizeof( typeof( MyStruct ) );
p = Marshal.AllocHGlobal( size );
Marshal.PtrToStructure( s, p, true );
buffer = new byte[ size ];
Marshal.Copy( p, buffer, 0, size );
Marshal.FreeHGlobal( p );
I hope this helps.
Deus caritas est
|
|
|
|
|
Sorry, the Marshal.PtrToStructure should be Marshal.StructureToPtr .
Deus caritas est
|
|
|
|