|
The answer is, you cannot change the size of an initialized array.
The amount of storage space designated at initialization time is not changeable without destroying the original Array object. For example, the String type (basically a Char[]) is considered immutable; that is, you cannot truly change a String variable, you can only destroy it and assign a new value to the same variable name (that's why StringBuilder is such an efficiency improvement over string concatenation...under the covers it uses a collection type that's sizable until you ask for the ToString() representation).
That said, I saw someone posted a method to copy one Array into another (presumably larger) Array, and someone else has suggested the ArrayList class. There are numerous other classes available (StringCollection to name one), or you can make your own. A good place to start is CollectionBase or DictionaryBase, depending on whether you want straight values or key-value pairs.
Hope this helps.
|
|
|
|
|
Hi, I had a problem with socket permission.
I have created a server that has leaves its port opened to clients and telnet applications.
Clients can run succesfully if they stay in the same machine (localhost). Telnet on local host to the server port can be connected too.
However, if I tried to connect to the server port from another machine in the intranet, I won't be able to connect.
I've tried many ways, I've set the trust region of intranet to full trust, I've made instances of SocketPermission:
SocketPermission mySocketPermission1 = new SocketPermission(PermissionState.Unrestricted);
SocketPermission mySocketPermission = new SocketPermission(NetworkAccess.Accept, TransportType.Tcp, "192.168.*.*", SocketPermission.AllPorts);
But, why can't remote clients (hyperterminals / telnet) connect?
For your information, I'm using asynchronous sockets for my server application. Is the problem related with the socket permission, or is there any other possible problems, i.e. wrong class library usage. Thanks.
|
|
|
|
|
You are given tow rectangles each defined by an upper left(UL) corner and a lower right(LR) corner.Both rectangles' edges will always be parallel to the x or y axis as shown in Figure 7.2.Write a window program that use mouse to draw the rectangle add the program will determines wether the two rectangles overlap.For convenience.You may use the following structs:
Struct point{
Int x;
Int y;
}
Struct rect{
struct point UL;
struct point LR;
}
The function prototype is As following:
Int overlap(struct rect A,struct rect B):
Please help me to finlish the question,thanks.
|
|
|
|
|
(struct rect A,struct rect B):
Remember that this is the C# forum
Let .NET do it for you...
bool overlap(Rectangle a, Rectangle b){
return a.IntersectsWith(b);
}
|
|
|
|
|
In the Component Services Administrative Tool,we can see the satatus of components activation. Like this,I wonder if i can implement this kind of functionality as using C# Language.
Please,help me.....Any idea will be helpful...
|
|
|
|
|
programmatically of course.
is there anyone here who has used multiple backbuffers in ddraw ?
|
|
|
|
|
fd97207 wrote:
how to find out how much graphics card memory and how much RAM I have?
I think you can find it here:
http://www.codeproject.com/csharp/wmi.asp[^]
Mazy
"A bank is a place that will lend you money if you can prove that you don't need it." - Bob Hope
|
|
|
|
|
Hej
Is it posible to have a Windows Control Library(controller) in a listview like an item?
ex
I whant to make a ListView that can show all the tabels that you could play the boardgame at. So if i make a controller that shows whos playing on this board(table) and what game thay are playing(by icons) and then i whant this controller to be in the ListView.
I will need about 50 controls in the ListView, do i have to make my own ListView control or do the original ListView control be abled to contain this controllers?? and if so, where can i find information about this?
//Jimmy
|
|
|
|
|
Hello,
I'm trying to program a "clone" of civilization III, using only C# and GDI+ (kind of exercice to learn).
I've manage to make a functional map and map editor, and I'm trying to animate the sprites.
It works, except for two things : shadows and player color.
My animation are 256 colors storyboard. I know that the last 20 indexes are used for shadows.
Question 1: how can I know with C# and GDI+ what is the index in the palette of a pixel?
The GetPixel function gives the color, not the index.
Question 2 : How can I use an alphablending effect, but only on some indexes of the palette? Is it possible?
Question 3 : for player color, how can I replace the 10th index color in the palette by another color? Supposing player color is the 10th index of course.
Thanks
|
|
|
|
|
If you want alpha blending, you'll need to use 32-bit color where the high 8 bits is the alpha channel. These are per-pixel.
If you want to get the palette index for a color, first get the Color as you're doing. Then you'll need iterate through the ColorPalette .Entries for the Image.Palette :
Color pixel = bmp.GetPixel(0, 0);
ColorPalette palette = bmp.Palette;
for (int i=0; i<palette.Entries.Length; i++)
if (palette.Entries[i].Equals(pixel)) return i;
return -1;
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Thanks for the answer, but it won't work.
I know that in the palette the last index is the transparency color, whatever the actual color. It is usually magenta, but it could be something else. And if it is Magenta, but the first color is also magenta, then only some pixels (last index) must be transparent, the other one (first index) must remain magenta.
That's why I'd like to get the actual index, and not only the color
|
|
|
|
|
I've found a solution to one of my problem.
Bitmap.Palette return a copy of the palette.
So I need to do
ColroPalette palette = bmp.Palette;
palette.Entries[0] = Color.FromArgb(150,255,255,255);
bmp.Palette = palette;
And then it works, even for the alphablending, and the picture is 8bpp indexed, it doesn't need to the 32-bit color.
However, your solution to get the index of a pixel will not work, as I can have several indexes in the palette with the same color, but they must be processed differently.
For instance, the last index is the background color and must be 100% transparent. But if it is magenta, and the 76th index is also magenta, then only the background must become transparent, and the 76th inndex must remain magenta
|
|
|
|
|
Sorry, but in most cases it will work. Palettes don't usually contain the same color more than once. Sure, I suppose they could - but it's atypical. All the graphics programs I've worked with - and quite a bit - like Photoshop (last 4 versions), GiMP, and a handful of lesser-known programs consolidate the palette for space and because it's usually pointless to have more of the same color in a palette. So, just because it doesn't work for your atypical example, don't say it doesn't work.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Sorry if I was a bit offensive. Your solution works, but not in my particular case, because it is quite likely that the palette contains several identical colors, and there should be used as different color by the software.
|
|
|
|
|
Hi!
I'm looking for a method which i can use to eject my DVD-drive. If C# doesn't provide this functionality, maybe someone knows an API-call.
THX
|
|
|
|
|
There is a sample code in C++ in MSDN,youu can use thos API,search this topic in MSDN:
HOWTO: Ejecting Removable Media in Windows NT/Windows 2000
Mazy
"A bank is a place that will lend you money if you can prove that you don't need it." - Bob Hope
|
|
|
|
|
Hi,
My first post here...
DrCOM Monitor tool
http://www.ddevel.com/DrCOM/DrCOMMonitor.asp
I found this somewhat useful.
Let me tell you what I'm strugling now.
I'm a system trader. I currently connect my C# application to a broker trading application which has API. However, since I found another good broker/trading platform, I'm considering to switch for it. The problem is this trading application of the broker does not have API.
The target software is 100% COM based. All of the component is accessible. The whole software part is built on COM servers/dll.
At first, I tried to study the COM classes which I can browse in VS.net2003 object browser, but it's way too complicated and needs a security key in proccess, so I gave up to build from zero. Instead, I had changed the approach to hooking COM while the existing target software is working normally.
I found DrCOM and ran the target software, then I could 'INVOKE' a command such as Object.SendLogout(). The software actually had logged out from the server, and that is controled by the external tool. Wonderful, I felt.
However, I still cannot figure out the detail between COM and the target application.
DrCOM shows which Object/Class responses, but does not show which Ojbect/Class-method is called from the target app.
Plus, I don't know how to build C# app invoking the object command/picking the object event.
I have read these 2 extraordinary articles expecting they would help me
http://www.codeproject.com/system/hooksys.asp
http://www.codeproject.com/com/automatingwindowsapps.asp
however, the both are on Win32 API and a little different from what I need.
Well, I've been doing this for 2 weeks straight, but almost give up.
Anyone can suggest me a better tool than DrCOM, or how I can create such invoking capability by C#, or any good resources?
Thank you very much. Any comments are wecome
Ken
PS. I tried TracePlus software already.
|
|
|
|
|
|
Thank you Mazy,
This is still tweaking some Win32 level, I still don't know how to interact to COM.
Oh well, I may be going to wait thier API reliease.
Ken
|
|
|
|
|
kenokabe wrote:
I still don't know how to interact to COM
To use COM dll in your class,write click you reference and select COM tab and select your dll fromm it,it create a wrapper for you to use you dll in .net.
Mazy
"A bank is a place that will lend you money if you can prove that you don't need it." - Bob Hope
|
|
|
|
|
Yes, I understand that.
WhatI'm wondering is how to interact to COM in the working thread not as a new instance.
Maybe I could find something in articles you shown me here.
Best,
Ken
|
|
|
|
|
Hello!
I have a problem with the DataGrid Control in C#.
I've a form with some textboxes on it. In these textboxes you can search for Data.
If you enter something in a Textbox and press the Search-Button then I build a dynamic SQL-Statement like "Select * from Company where CompanyName like "%Test%"".
With this Select Statement I fill my Dataset.
If the DataSet returns 1 Row then the Row is Displayed in the Textboxes.
If more than 1 Row is found then I open a new form and pass him the DataSet build with the SQl-Statement.
In this new form (form2) I Bind the DataGrid to the Datatable and the Data is displayed well.
In form2 the user can select one DataRow and return to form1 where the selected row is displayed. Therefore form2 returns the index of the row in the Datatable in the Dataset.
Everything works fine until you use the sort possibility in the Datagrid.
After that the DataTable and the DataGrid are not longer synchronus.
I've searched the web and found something about the CurrencyManager and tried with it but without success.
The CurrencyManager.Position only shows the same position that is selected in the Datagrid not in the Position of the DataRow in the DataTable.
Here some of my code:
form1:
frmDisplaySearch frmDisplaySearch_ = new frmDisplaySearch(dsDB,DataTableName);
DialogResult dr_ = frmDisplaySearch_.ShowDialog();
if(dr_.Equals(DialogResult.OK))
{
Console.WriteLine("Ausgewählter Datensatz " + frmDisplaySearch_.SelectedRow);
NoRowSelected = frmDisplaySearch_.SelectedRow;
RowSelected = true;
}
from2:
public frmDisplaySearch(DataSet DataSetIn_,string DataTableNameIn_)
{
InitializeComponent();
DataTableName_ = DataTableNameIn_;
DataSetToDisplay_ = DataSetIn_;
grid.SetDataBinding(DataSetToDisplay_, DataTableName_);
cm_ = (CurrencyManager)this.BindingContext[DataSetToDisplay_,DataTableName_];
this.Text = DataTableName_;
this.grid.Size = new System.Drawing.Size(MaxGridWidth, MaxGridHeight);
AutoSizeCol();
}
private void btnOk_Click(object sender, System.EventArgs e)
{
Console.WriteLine("Ausgewählter Datensatz " + grid.CurrentCell.RowNumber);
Console.WriteLine("Ausgewählter Datensatz cm_" + cm_.Position);
SelectedRow = cm_.Position;
this.DialogResult = DialogResult.OK;
this.Close();
}
|
|
|
|
|
Has no one a hint for me???
|
|
|
|
|
Hallo,
as a workaround, try to get the primary key of the selected row and use it to display the right row in form1.
private void btnOk_Click(object sender, System.EventArgs e)
{
(BindingManagerBase) manager = grid.BindingContext;
(DataRow) row = manager.Current;
string/int id = row[PKColumnName];
this.DialogResult = DialogResult.OK;
this.Close();
}
|
|
|
|
|
Hi guys,
is it anyhow possible to change the backcolor of a specific subitem in a listview? Or is it only possible to change the color of the whole item with ListViewItem.BackColor ?
Likely it won't work without deriving from ListView...
Regards, mYkel
|
|
|
|
|