﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <description><![CDATA[Comments for Simple Programming Tip #1 by Charlie Calvert]]></description>
    <title><![CDATA[Comments for Simple Programming Tip #1 by Charlie Calvert]]></title>
    <link>http://dn.codegear.com/article/30011</link>
    <!-- source: http://dn.codegear.com/article/30011/feed-->
    <dc:date>2008-07-05T13:48:45-07:00</dc:date>
    <item>
      <description><![CDATA[Testem antes de publicar estas coisas]]></description>
      <title><![CDATA[Simple Programming Tip #1 by Charlie Calvert]]></title>
      <managingEditor>
	 (Fabiano Santana)
</managingEditor>
      <guid isPermaLink="true">http://threads.codegear.com/threads/threads.exe/view?commentid=38319</guid>
      <dc:date>2005-03-31T15:49:05-07:00</dc:date>
      <pubDate>2005-03-31T15:49:05-07:00</pubDate>
      <source url="http://dn.codegear.com/article/30011/feed">Comments for Simple Programming Tip #1 by Charlie Calvert</source>
    </item>
    <item>
      <description><![CDATA[Very concisely described; a point to be taken seriously]]></description>
      <title><![CDATA[Simple Programming Tip #1 by Charlie Calvert]]></title>
      <managingEditor>
	 (Karl Button)
</managingEditor>
      <guid isPermaLink="true">http://threads.codegear.com/threads/threads.exe/view?commentid=36343</guid>
      <dc:date>2004-03-15T11:06:04-07:00</dc:date>
      <pubDate>2004-03-15T11:06:04-07:00</pubDate>
      <source url="http://dn.codegear.com/article/30011/feed">Comments for Simple Programming Tip #1 by Charlie Calvert</source>
    </item>
    <item>
      <description><![CDATA[Totally agree with this article - but how do I access the "data"on a TStringGrid in my user class without copying it.]]></description>
      <title><![CDATA[Simple Programming Tip #1 by Charlie Calvert]]></title>
      <managingEditor>
	 (Jason Morgan)
</managingEditor>
      <guid isPermaLink="true">http://threads.codegear.com/threads/threads.exe/view?commentid=36270</guid>
      <dc:date>2004-03-01T09:00:31-08:00</dc:date>
      <pubDate>2004-03-01T09:00:31-08:00</pubDate>
      <source url="http://dn.codegear.com/article/30011/feed">Comments for Simple Programming Tip #1 by Charlie Calvert</source>
    </item>
    <item>
      <description><![CDATA[So true, so true]]></description>
      <title><![CDATA[Simple Programming Tip #1 by Charlie Calvert]]></title>
      <managingEditor>
	 (Craven Weasel)
</managingEditor>
      <guid isPermaLink="true">http://threads.codegear.com/threads/threads.exe/view?commentid=35587</guid>
      <dc:date>2003-10-23T01:18:15-07:00</dc:date>
      <pubDate>2003-10-23T01:18:15-07:00</pubDate>
      <source url="http://dn.codegear.com/article/30011/feed">Comments for Simple Programming Tip #1 by Charlie Calvert</source>
    </item>
    <item>
      <description><![CDATA[Achei muito interessante esse artigo, e confirmar (apesar de todos nos pobres programadores sabermos e as vezes esquecermos) que as responsabilidades de classes/metodos devem ser bem definidas no processo de desenvolvimento de programas.Um abraço!!!]]></description>
      <title><![CDATA[Simple Programming Tip #1 by Charlie Calvert]]></title>
      <managingEditor>
	 (Kuesley Nascimento)
</managingEditor>
      <guid isPermaLink="true">http://threads.codegear.com/threads/threads.exe/view?commentid=35374</guid>
      <dc:date>2003-09-27T11:39:42-07:00</dc:date>
      <pubDate>2003-09-27T11:39:42-07:00</pubDate>
      <source url="http://dn.codegear.com/article/30011/feed">Comments for Simple Programming Tip #1 by Charlie Calvert</source>
    </item>
    <item>
      <description><![CDATA[While I whole heartedly agree with the direction of your article I'm not convinced the approach is correct or best practice.  One of the most fundamental rules of OO design is that an object has a state and behaviour.  Writing classes specifically for processing data is OK if it meets the S &amp; B criteria but often it doesn't and that usually means you have not thought the design thoroughly enough.The other problem I have is the need to instantiate more objects.  While  lots of classes seems good from an architech's point of view it often causes object overkill and makes code sluggish and more difficult to understand as the program execution paths are so broken up.The GUI builder type IDE's we have grown used to using are actually to fault in alot of ways but I'm not complaining.  Goodness knows how we could produce reliable Apps in the time it takes now with commandline tools and resource editors!Maybe the solution is to look at the application as an application and not as a GUI until you have the "backend done".  I have found myself getting hooked on writing for an interface instead of writing an interface to my application.  Forget the forms and buttons until you have the application code completed with the appropriate entry points for user interaction.  In other words define the interfaces to your classes before you try to create the greatest new GUI.My three centsCraig       ]]></description>
      <title><![CDATA[Simple Programming Tip #1 by Charlie Calvert]]></title>
      <managingEditor>
	 (Craig Benbow)
</managingEditor>
      <guid isPermaLink="true">http://threads.codegear.com/threads/threads.exe/view?commentid=34867</guid>
      <dc:date>2003-06-29T03:14:40-07:00</dc:date>
      <pubDate>2003-06-29T03:14:40-07:00</pubDate>
      <source url="http://dn.codegear.com/article/30011/feed">Comments for Simple Programming Tip #1 by Charlie Calvert</source>
    </item>
    <item>
      <description><![CDATA[This is a good article which underlines my (until recently) reticence for using visual/builder environments, first the IDE "spoonfeeds" the programmer in that they are not required how to know to place a button on a form, a simple click and drop will do it and then all that's required but the programmer is to add the code to the OnClick event. This article should be required reading for any programmer who has not programmed outside of a visual/builder environment.AndrewDublin]]></description>
      <title><![CDATA[Simple Programming Tip #1 by Charlie Calvert]]></title>
      <managingEditor>
	 (Andrew Moore)
</managingEditor>
      <guid isPermaLink="true">http://threads.codegear.com/threads/threads.exe/view?commentid=34671</guid>
      <dc:date>2003-05-22T05:35:54-07:00</dc:date>
      <pubDate>2003-05-22T05:35:54-07:00</pubDate>
      <source url="http://dn.codegear.com/article/30011/feed">Comments for Simple Programming Tip #1 by Charlie Calvert</source>
    </item>
    <item>
      <description><![CDATA[Its a great point that has finally been made here. In my work, making applications involving Machine Vision for production, we often have more than 100 non visual classes. The Visual classes are merely displays, mostly derived from TGraphicControl. These classes get heavy enough, when the Mouse Handlers and the Paint method gets implemented. The non visual classes have one task each, which makes it easy to reuse, easy to understand and fast to comprehend when the factory calls. The last bit is important.]]></description>
      <title><![CDATA[Simple Programming Tip #1 by Charlie Calvert]]></title>
      <managingEditor>
	 (Thomas Rovsing-Vingborg)
</managingEditor>
      <guid isPermaLink="true">http://threads.codegear.com/threads/threads.exe/view?commentid=34667</guid>
      <dc:date>2003-05-20T22:35:57-07:00</dc:date>
      <pubDate>2003-05-20T22:35:57-07:00</pubDate>
      <source url="http://dn.codegear.com/article/30011/feed">Comments for Simple Programming Tip #1 by Charlie Calvert</source>
    </item>
    <item>
      <description><![CDATA[didn't realise we lose formatting :(sorry]]></description>
      <title><![CDATA[re: Simple Programming Tip #1 by Charlie Calvert]]></title>
      <managingEditor>
	 (Paul Collings)
</managingEditor>
      <guid isPermaLink="true">http://threads.codegear.com/threads/threads.exe/view?commentid=34659</guid>
      <dc:date>2003-05-19T14:40:21-07:00</dc:date>
      <pubDate>2003-05-19T14:40:21-07:00</pubDate>
      <source url="http://dn.codegear.com/article/30011/feed">Comments for Simple Programming Tip #1 by Charlie Calvert</source>
    </item>
    <item>
      <description><![CDATA[Hi Charlie,yes I agree with the others, nice article,what I have been doing in the past, is writing separate methods as you suggest, and then call them from the click events, if a test succeeds, like the following,private void buttonSearch_Click(object sender, System.EventArgs e){statusBarMain.Text = "Running...";Cursor.Current = Cursors.WaitCursor;try{if(textBoxPath.Text != null){// clear out the previous resultslve.Items.Clear();DirSearch(textBoxPath.Text);}}catch(Exception ex){MessageBox.Show(ex.Message);}Cursor.Current = Cursors.Arrow;statusBarMain.Text = "Completed.";}public void DirSearch(string path){string[] directories;try{directories = Directory.GetDirectories(path);foreach(string file in Directory.GetFiles(path)){Original original = new Original(new FileInfo(file));original.CheckDirectory(new DirectoryInfo(path));if(original.HasDuplicates()){FillListView(file);foreach(string duplicate in original.GetDuplicates()){FillListView(duplicate);}}}foreach(string directory in directories){DirSearch(directory);}}catch(Exception ex){MessageBox.Show(ex.Message);}}I hope this is similar to what you are suggesting,best regards,Paul]]></description>
      <title><![CDATA[Simple Programming Tip #1 by Charlie Calvert]]></title>
      <managingEditor>
	 (Paul Collings)
</managingEditor>
      <guid isPermaLink="true">http://threads.codegear.com/threads/threads.exe/view?commentid=34658</guid>
      <dc:date>2003-05-19T14:39:04-07:00</dc:date>
      <pubDate>2003-05-19T14:39:04-07:00</pubDate>
      <source url="http://dn.codegear.com/article/30011/feed">Comments for Simple Programming Tip #1 by Charlie Calvert</source>
    </item>
    <generator>Atom 1.0 XSLT Transform v1 (http://atom.geekhood.net)</generator>
  </channel>
</rss>