Nerseus
*Experts*-
Posts
2607 -
Joined
-
Last visited
Content Type
Profiles
Forums
Blogs
Events
Articles
Resources
Downloads
Gallery
Everything posted by Nerseus
-
Another possibility is to have a listening app that simply takes each message from the phone line and puts the data into a Message Queue. You can define a Message Queue Listener that calls a component that processes each message. If a message is sent to a Message Queue it can be guaranteed to get in the Queue so you won't have to worry about losing it. They're also very fast and made to handle stand-alone transactions that are meant to be asyncronous. They're certainly not right for every situation, especially if you're have a huge volume of messages which might better be processed by your app. Since they can guarantee the message is sent or not sent as a whole unit AND they're async, they might work for what you want. I haven't used them in .NET but I did in VB6 and they worked like a charm. If you want to investigate them I'd first check the .NET support for them. I know the MQ Triggers (the built-in service that called a component when a message arrived) were meant to call COM components. They may have other methods to call .NET assemblies, web services, etc. but I have no idea :) Another, similar, alternative is web services. They don't have to be traditional over-the-internet. They could be internal only web services. The advantage they might bring is that they are asyncronous. So your listening app takes the message from the phone line and sends it off to a web service, asyncronously. I've used web services asyncronously and they work perfectly as well. I don't use them for updates (in async mode that is), but to pull down data in separate threads to speed up the pulling of lookup data, but they do work quite nicely. -Nerseus
-
Have you checked out the samples that come with the DX9 SDK? It looks like there's 5 samples plus 8 or so tutorials on DirectPlay. It's probably version 9, but it's hard to say since the objects don't have numbers in them (it's just a DirectPlay object, for instance). If you really want DirectPlay 8 using the DX8 SDK, you may be in for a hard road. -Nerseus
-
It sounds like you may want the DateTimePicker control instead of a textbox. If you still want a MaskEdit, let us know. -nerseus
-
This is off the top of my head, but I would guess there's nothing to read a whole line from the end of file. You might be able to use a Seek type of method and manually find the EOL character to split the lines manually. Sorry, not much help on this one. :) -ner
-
I would guess he just typed it in manually and it should be "Process.Start", assuming a "using" statement for System.Diagnostics. I'm not sure the equivalent word in VB.NET to using, Imports maybe? As for the paths, you can use Environment.SystemDirectory to get the path to c:\winnt\system32 or c:\windows\system32 or wherever it is. -ner
-
Just curious - is this a 3rd party combobox, or something that you've designed yourself? Are you sure that the combobox is updating the dataset? You can check by spitting out the DataSet's XML (using GetXml()) before and after a combobox changes a value. -Nerseus
-
This seems like a fairly decent sized project. I think you may want to study up on WebServices and what they can and should do first... Having said that, you may want to store things as a database and return the relevent information as XML to each user. I'm not sure how much data they would need, you'd have to answer that. If they just need the "lookup" values so they can insert new records, then no problem - just return them and have them create records locally. They can upload their additions however and whenever you see fit. If you have any specific questions once you've got a basic design down, I'd be happy to help. -Ner
-
In your Debug\bin folder under your project. -Ner
-
Here's a link that may be useful. http://msdn.microsoft.com/library/default.asp?url=/servers/books/ebusiness/securing.asp -ner
-
Let's hope they don't use Windows XP - they disabled 640x480 for all intents and purposes (they really discourage it). I can't imagine the old ladies, or anyone, wanting to scroll. In most data entry screens they want everything on one screen - scrolling would just upset them even more. Beware lots of them in packs, at night, when you're alone. :) But seriously, maybe there's some more tweaking that can be done to squeeze it into 640x480 if that's the goal. Normally you'd want things like that settled up front so that you know what to design for. Some common techniques for squeezing more room on a control. Note that these are somewhat non-standard but may be helpful: 1. Shrink combo-boxes. Reset their width during drop down only 2. Use grids which look normal for scrolling 3. Collapse frames/panels. The idea is to have a Panel control that's the height of a combobox and display up/down arrays. When you press the down-array, it expands to show the controls inside (drawing on top of other controls) 4. Move only critical "cow-path" fields to the "main" tab. If something is used 20% of the time or less, it's a candidate to move elsewhere 5. Have a "prefill" form. It accepts data only - no drop-downs or other misc read-only data. The idea is to collect info and pass it on to a real dialog box where they can see all of the data, maybe scattered across tabs. 6. Replace option buttons with combobox, if appropriate 7. Your idea here Anyway, I've dealt with this before and it's never pleasant. Data Entry people come from mainframe worlds where everything is entered on one screen and they don't like popups that require the mouse. If you know it up front, you can code for the "crunch" screens. As you probably know, it's harder to scale down than up. -nerseus
-
Are you getting the error on the line that sets up CustOrderRel, your DataRelation? You seem to be doing it correctly so maybe the table and/or column name is wrong? It shouldn't be case sensitive, but maybe the spelling is off... -nerseus
-
NOTE: This is entirely NON-standard .NET has added a feature called "autoscroll". To use it draw a listbox on a form then drag it down so that it goes below the form - say about half on/half off the bottom. In the form properties you can set Autoscroll to true and wala! you have an automatic scrollbar attached to the form which acts like the one in a browser. You could also code this yourself but it would be a major pain. The most common use for scrollbars is to add scrolling to a an area that doesn't provide it automatically. Luckily, the form and Panels now support autoscroll though I can't think of a good reason to use one on a form. Maybe this will change one day but for now I would NOT design your forms so large that they must scroll. People will laugh at you, I promise :p -Nerseus
-
Here's a helpful hint. When you want to change the cursor to an hourglass and make SURE you get it back before a function ends, use the following. It uses try/finally but doesn't really care about exceptions. It takes advantage of the fact that regardless of HOW you exit the try, the finally always runs. try { this.Cursor = Cursors.WaitCursor; // Do something here, even call "return;" } finally { this.Cursor = Cursors.Default; } -Nerseus edited to put in [ code ] blocks
-
First, no single solution is right for everyone. The solution I outlined works at my company because it's what the app needs. We've spent years working on n-tier architecture and still, to come up with a robust server setup takes time. We could have done our architecture a number of different ways with different server configs and they'd be just as valid. It comes down to a LOT of issues: scalability, maintainability, etc. etc. I've heard DMZ used a few times - I think it's used to describe a server behind a firewall - demilitarized zone, yes. I've heard it from time to time but I could be off a little. Even with a firewall in place, you must be able to have your webserver contact other servers behind the firewall. It's really up to you to decide where each tier lies (same server, different server, behind firewalls, same domain, etc.). If you have more specific questions, I could answer them. My first post was just an outline of one possible way to implement n-tiers in .NET. And, it mostly describes how we do things in development - I didn't even mention our SQL Servers, File Servers, QA environment, Source Safe servers, etc. Coming up with a solution for a large project requires a lot of thought. For smaller projects, you can mostly get by with two servers: a web/component server and a SQL Server. You could put them all on one in a pinch, but I wouldn't recommend it :) I don't know of any URLs that explain how to build an architecture. I know there are some books that attempt to outline what you should consider when designing one. But there won't be a step by step guide anywhere that defines exactly what you'll need. You can check out MS's sample sites (eye spy and Fitch and Mather come to mind) which use .NET in an n-tier approach. Or at least they used to... sorry I can't be more specific. I haven't looked at the full demo sites in awhile. -Nerseus
-
If you keep them all visible, I think it's more resource intensive than hiding the unused ones. I think windows may still be doing something "extra" behind the scenes as far as processing windows messages. I'm not sure, but it's a guess. As for 3rd party controls, it might be a good idea to see what the company offers in terms of source code. We use controls from DevExpress and they give us FULL C# source code for ALL the controls. Other companies use a repository of sorts that holds the source code in the event they go out of business. By paying a bit extra for the controls, you will get the source code if the company ever goes out of business. This is a nice feature if you're worried about fly-by-night companies and you really don't want to get stuck in a project two years from now with a bug in a 3rd party control... -Nerseus
-
The negative effects are (as I said earlier :)): ...lots of issues such as "flashing" as the forms swap, getting the positions right, keeping the forms the exact same size so as to not alert the user. It really sounds like you'd be better off with using other controls... Maybe you just want to swap out panel controls or use a tabbed dialog? -Nerseus
-
You'll need to somehow get access to that control or to a method/property that can set the control. There's a couple of ways to do this. The easiest is probably to pass a reference to *exact* type of MDIForm to the child forms. So if your MDI form's class is named "frmMain", then add a parameter to the contstructor of Form1 like so (C#): private frmMain myParent; public Form1 (frmMain myParent) { this.myParent = myParent; } private void btnClick(...) { myParent.progressBar1.Value = 50; } The above assumes that the modifier for frmMain's progress bar is set to Public instead of the default private. When frmMain creates an instance of Form1, it would use something like this: private void mnuClick(...) { // Pass "this" to the constructor of Form1 so // that it has a reference and can reach progressBar1 Form1 f = new Form1(this); f.MDIParent = this; f.Show(); } -Nerseus
-
I'm not sure what you mean by "easier internet connection". Are you intending this to be used by people using a web browser application? Where do you envision the main XML file being stored: on a server somewhere or an indiviual file on every person's machine? Assuming the common scenario of hosting the file/database on a web server, you could just as easily host a database as an XML file. If you're using web methods or even pure ASP (or whatever server-side language), you'll be returning XML to the client (or you probably should). You could return one row, a few rows, or all the rows as a block of XML. I can't really offer anything more specific without knowing more about the app and what you want it to do. I'm not sure what "members" are - database records or actual users of your application? Is the subject of your card index going to return multiple rows or just one row? Anyway, if you need help, ask away :) -Nerseus
-
I'll skip answering the "which control to use" question and pose a possible issue. I recently read about the formatting of the text that is copied from IE to the clipboard. Apparently it's a bit messy (ok, a LOT messy). If you want to just support copying the text and maybe the image, you might be ok. The article I read mentioned a LOT of issues in that the text you copy may have styles applied and what shows up on the clipboard is not a simply block of HTML. You may have to grab some pieces and append them in the right place in your document, assuming it's HTML as well. If it's not, you may need to parse the HTML if you want to preserve such things as font (color and size), tables, etc. Thing about what would get copied if you highlighted one row from a table... having just a <TR> element isn't going to help you - you need the whole table definition, minus the other rows. Anyway, I've never tried this before, but you may want to run some tests to see what you're dealing with (if you haven't already). It may help you decide what you'll need later (RTF codes or HTML). Sorry I don't remember the article, but it was from this month or last and was probably Visual Studio magazine (formerly VBPJ) or MSDN magazine, if you wanted to look. I think it was in a Q&A section but I forget that, too :) -Nerseus
-
I mentioned a few other possible unwanted side effects to using a 3rd party control, such as dotnetmagic, in this thread. If you don't need the benefits of the control, it's probably better to stick with Panels or a regular tab control. But maybe the dotnetmagic version does some other things he'd like. I like presenting options :) -Nerseus
-
Why not just use Divil's suggestion of multiple Panel controls and hide/show each one as needed? Carrying around a whole separate control is bound to take up more resources and means another file (at least one) to install. The only real disadvantage to using Panels is keeping them organized at design time and that can be overcome if you're careful in how you name and arrange them. Another alternative, one I haven't used since VB3 so I don't know if it works, is to use the standard tab control but set it's top property (or it's location now) to something like -20 -- just enough so that the tabs don't show up but the whole tabpage does. If you're going to use a Tab Control of some sort, this may work better than the DotNetMagic version. Nothing against them (never seen it) but if you don't have to use a custom control it's generally better not to. -Nerseus
-
Have you tried scattering some Response.Write statements with Response.End to see how far you get? If your main problem is locating the bad code, I'd try that first. You can write out some of the values that are being passed as well, to see what the potential problem is. -Nerseus
-
I sent you an updated version via email. It removes the issue - I had been using DrawRectangle to erase the previous image. I should have been using FillRectangle. I tweaked it a bit, including removing the Menu form as it wasn't really being used. You can always add it back in later if you like. For everyone else, vidiware asked me not to post the code. If anyone cares to see the basics, let me know. I can post some of the relevent looping/drawing code. -Nerseus
-
True enough - picturebox's appear to only show transparency through the form, not other picturebox's. I'm not sure if that's a bug or not... You may have to move away from PictureBox's if you want the layered transparent effect. It's a bit more manual but not too bad - just save your images as Bitmap objects and draw them manually in the Paint even (or wherever else you need it). -Nerseus
-
I didn't even know you could embed information like that into images - only other media types (sounds, video, etc.). But a quick search turned up this link. It's more of a spec than a how-to-do-it-in-.NET. But it may provide some help to get started. -Nerseus