|
Patrick Luijpers wrote:
The problem is that the form does not show while running the automatic processes.
I assume you mean the form is not responding, due to the process taken a long while.
Just fire the process off in a new thread.
leppie::AllocCPArticle("Zee blog"); Seen on my Campus BBS: Linux is free...coz no-one wants to pay for it.
|
|
|
|
|
Hi,
I'd like to know if it's possible to have a TreeView where some nodes have checkboxes and some other nodes don't.
And if it is possible, how can I do it..
Thanks in advance,
TomaHawK
|
|
|
|
|
Not with the TreeView in the .NET BCL, unless you extend it and override WndProc , dealing with a lot of the messages. See the SDK Documentation for the Windows Tree View common control about how much you'll need to override. You'll have to owner draw each tree node and add a property to your own TreeNode derivitive.
You might try looking for a third-party tree control. Infragistics has a pretty good one. You should also check ComponentOne.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
I'm writing a (Very simple) application. Currently, the main form view consists of the common arrangement of a tree on the left and a rich view on the right. Each node on the tree causes a different rich view to appear on the right.
However, something is very odd.
If I have the cursor in the rich view, and change tree nodes, causing the new rich view to appear, from then on, I cannot close the app.
Application.Exit() works, but calling Close on the main form does not even trigger the Closing event.
I'm not overriding the Closing event or Closed, or anything related to that.
It only happens if the text cursor is in a rich view at the time the rich view is destroyed.
Clicking the X close button, hitting alt f4, nothing works. However, the program continues to behave as expected in every other way (I can continue to modify the rich views and switch between nodes.)
So what would cause Close to suddenly stop functioning? I'm removing the old rich view and replacing it with a new one each time a new node is selected, perhaps that has something to do with it?
|
|
|
|
|
Additional info:
If I watch for the Closing or Closed events, when in this above mentioned 'broken' state, NEITHER event ever even occurs.
If I use SPY++ to view what messages are occuring, I see WM_CLOSE is being sent to the app, but it does absolutely nothing with it...
It may be entirely unrelated to the rich view - what i'm doing is adding and removing user controls (which include rich views and tool bars of their own) from a panel inside the main window. Could that mess it up so badly?
?
|
|
|
|
|
This typically happens when an exception is thrown that screws up the application pump (such as an unhandled exception thrown inside WndProc . Basically, certain message stop being sent. I haven't found any more on it other than that (it all comes down to Windows Messages as you seemed to have guessed), but we are having a similar problem where certain unhandled exceptions (unhandled by the clients that is, but caught by my AppDomain.UnhandledException handler) cause the application to this as well.
I haven't had time to tackly the problem any more since I'm now working on several more improbable tasks with impossible deadlines ( ), so if you figure anything out - would you care to share on the forum (thus preserving your findings for future generations )?
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
Heath Stewart wrote:
since I'm now working on several more improbable tasks with impossible deadlines
Simply gain additional time by cutting sleep out of the equation, you can always sleep when your 30. Maybe if you throw a little XML at the problem a solution will appear?
-Nick Parker
DeveloperNotes.com
|
|
|
|
|
I still can't figure this out.
Wouldn't an exception show up somewhere? I even tried putting the entire application in a TRY / CATCH block (heh), but nothing showed up.
|
|
|
|
|
You can't put an entire Windows application in a try-catch block. See, Application.Run that starts your application is a blocking call (the application pump loops and distributed Windows messages to the appropriate windows). If an exception occurs there but not in your code, it may not be caught. To do this, you must do as I did and stated in my first reply: handle the AppDomain.UnhandledException event.
In any case, this exception is not an app-crasher - it merely screws up the main UI thread but it continues to run.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
[in the MAIN:]
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler);
[later on:]
static void MyHandler(object sender,
UnhandledExceptionEventArgs args)
{
Exception e = (Exception) args.ExceptionObject;
MessageBox.Show("Exception.");
}
This is almost straight from the MSDN library documentation. However, the UnhandledException never occurs (Even if I replace the messagebox with a console write, no console text appears), however the problem remains.
Perhaps its something else besides an unhandled exception.
|
|
|
|
|
I've narrowed it down and found the line thats causing it.
Situation: I have a panel (TargetPanel) which has had a user control (m_MyPanel) added to it.
I want to make the panel blank again.
The following is done:
TargetPanel.Controls.Remove(m_MyPanel);
m_MyPanel.Dispose();
m_MyPanel = null;
If instead I just do this:
m_MyPanel.Dispose();
m_MyPanel = null;
It works fine.
I'm guessing that at the time of Controls.Remove(...), mypanel isnt actually in the list of controls (removed for some reason by another part of the program, although, since its a private member, thats hard to explain)... and thus it causes bad things to occur.
However, there are no unhandled exceptions or any other kind of debug / bad messages, so its odd...
However, its 'fixed' now.
I'd still like to get to the bottom of it so I know whats wrong.
|
|
|
|
|
In the Win 32 API you can find a function called InvertRgn it takes a hdc and region to invert the colors of that region on the hdc so if any body knows a function in the GDI+ which can do the same job could you tell about it ?
Regs'
Mhmoud Rawas
------------
Software Eng.
|
|
|
|
|
Search "InvertRgn win32" in google takes you to this codeproject page : http://www.codeproject.com/gdi/rgnguide.asp
|
|
|
|
|
Dear AK ,
My Q was about the GDI+ not the GDI i know all that functions in GDI but what i need is a similar functions in GDI+
Mhmoud Rawas
------------
Software Eng.
|
|
|
|
|
Create an infinite region and use the Region.Xor or Complement method to combine it with the original region. This effectively inverts it.
|
|
|
|
|
Dear jadunlap,
be careful i am speaking about inverting the colors of a region not invetrintg the region
Mhmoud Rawas
------------
Software Eng.
|
|
|
|
|
Use a ColorMatrix to transform the colors to negative, and set the Graphics object's clipping region to the region to be inverted.
ImageAttributes ia = new ImageAttributes();
ColorMatrix cm=new ColorMatrix();
cm.Matrix00=
cm.Matrix11=
cm.Matrix22=-1;
ia.SetColorMatrix(cm);
GraphicsPath path=new GraphicsPath();
path.AddEllipse(new Rectangle(20,20,200,200));
Region rgn=new Region(path);
e.Graphics.SetClip(rgn,CombineMode.Replace);
e.Graphics.DrawImage(b,
new Rectangle(0, 0, b.Width, b.Height)
, 0, 0, b.Width, b.Height, GraphicsUnit.Pixel, ia);
|
|
|
|
|
Dear All ,
Any body knows how to calculate a JPG file size without saving it to the hard disk cuz i would like to allocate a stream for it to pass it to an XML file
Regs'
Mhmoud Rawas
------------
Software Eng.
|
|
|
|
|
Not without performing the algorithm that would run on it, which you could to to an in-memory stream (MemoryStream ) to determine the size.
BUT...
You can't save a binary stream to XML. You can use a number of different encodings but by far the most popular is base64. You don't need to know how big it'll be anyway, because you just perform the encoding and set the value on an XML element (or attribute, but data that large isn't really fit for attributes).
The XmlTextWriter class makes it easy to accomplish this using the XmlTextWriter.WriteBase64 method. The XmlTextReader.ReadBase64 does the opposite, of course.
Remember, though, that you don't need to allocate space in an XML file (unless you're doing some weird pre-empted packing routine). It's just a text file and like all text files will grow or shrink (within disk capacity) to accomodate the contents.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
Dear Heath,
First of all thanks for your replay but i think i did not rech my information to you, as i have seen the best way to pass an dynamic image to the crystal report is using the dataset which is in the last form is XML so you have to write it into the the dataset classes and for that you have to use the memory stream and when you like to write to the memory stream you have to allocate an enugh memory space for that bitmap then you write it to the stream so in my test project i have used the max size which can be callulated by size = width * height * 3 + 100 this size is for the normal bitmap not JPG and when i wrote to the stream i found that about 1/3 from the stream is still empty so if you know a way to mesure the size of that bitmap before allocating the memory stream could you help me in this mater
Regards
|
|
|
|
|
Actually, I already gave you a clue in my first paragraph: MemoryStream . Save the Bitmap as a JPEG to a MemoryStream and determine the length by checking the Length property. Also, you don't need to preallocate space in a MemoryStream if you use the right constructor.
You didn't mention before that you weren't saving the XML file to disk. While you can use CDATA sections to write binary data, this is not recommended - especially when you persist XML to disk or for transport. This is where binary encodings like base64 are necessary. If Cyrstal isn't extensible enough to base64 decode an image, then you'll have to keep doing what you're doing.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
Dear Heath ,
which constructor do you mean i have seen all the memory stream constructors should take the capsity of the stream so could you specify the constructor
Thanks,
Mhmoud Rawas
------------
Software Eng.
|
|
|
|
|
Opps ..... Sory i have found it if i use the defualt constructor it takes a dynamic stream
Mhmoud Rawas
------------
Software Eng.
|
|
|
|
|
Sorry the last replay is from me but i was not loged in
Mhmoud Rawas
------------
Software Eng.
|
|
|
|
|
How could I find the size of a picture (http://www.willapa.wednet.edu/images/amigo.jpg)
When every I try to use .Legnth , it tells my Stream dosn't support seeking... or somthing like that.
Any ideas?
Oh, yeah...
and also, I was wondering if it was possible to do a .GetFiles over the internet....
/\ |_ E X E GG
|
|
|
|