<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Πρώτα Βήματα - Desktop Applications</title><link>https://www.dotnetzone.gr:443/cs/forums/80/ShowForum.aspx</link><description>Θέματα για όσους φτιάχνουν τα πρώτα τους Desktop Applications σε .NET Framework</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Com port listening</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/59948.aspx</link><pubDate>Sat, 11 Sep 2010 03:18:57 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:59948</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/59948.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=59948</wfw:commentRss><description>Το μεγάλο πρόβλημα με αυτό που προτείνεις είναι ότι η child φόρμα θα πρέπει να είναι δεμένη χειροπόδαρα με την parent. Μία αλλαγή στην parent θα μπορεί άνετα να προκαλέσει compile error στην child. Δεν είπε κανεις να περάσει reference της parent στην child, αλλά να περάσει την SerialPort, ή ακόμα καλύτερα ένα αντικείμενο, π.χ. Messenger το οποίο κρύβει την πόρτα και αναλαμβάνει αυτό να πάρει και να στείλει τα μηνύματα. Αυτό μπορεί άνετα να το δημιουργήσει η κύρια φόρμα και να το δώσει σε όποια άλλη φόρμα το χρειάζεται. Έτσι και οι άλλες φόρμες δεν θα χρειάζεται να ξέρουν πως είναι γραμμένη η parent αλλά και θα υπάρχει σαφής έλεγχος της SerialPort (πότε ανοίγει, κλείνει και γιατί), κάτι το οποίο είναι αδύνατο αν αυτή είναι static.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description></item><item><title>Απ: Com port listening</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/59944.aspx</link><pubDate>Fri, 10 Sep 2010 22:19:05 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:59944</guid><dc:creator>nikos123</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/59944.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=59944</wfw:commentRss><description>Εννοούσα static για να μην χρειάζεται η κάθε φόρμα (θα είναι πολλές απ' ότι&amp;nbsp;κατάλαβα) να έχει reference το instance της κύριας (μπορεί να μην είναι parent για όλες).&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Κατά&amp;nbsp;τ&amp;nbsp;άλλα δε χρειάζεται να την χειρίζεται η parent και σίγουρα η λύση με singleton είναι πιο&amp;nbsp;σωστή.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description></item><item><title>Απ: Com port listening</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/59943.aspx</link><pubDate>Fri, 10 Sep 2010 21:52:33 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:59943</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/59943.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=59943</wfw:commentRss><description>Καλά, εδώ δεν λέμε ότι είναι κακή ιδέα να "δένεις" τη μία φόρμα με την άλλη? Άσε που αν την πόρτα τη χειρίζεται η parent κλάση δεν υπάρχει κανένας απολύτως λόγος να κάνεις κάτι expose ως static. Απλά, όταν δημιουργείς την child φόρμα της περνάς ως παράμετρο π.χ. στον constructor ή σε κάποιο property, την SerialPort</description></item><item><title>Απ: Com port listening</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/59942.aspx</link><pubDate>Fri, 10 Sep 2010 21:03:02 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:59942</guid><dc:creator>nikos123</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/59942.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=59942</wfw:commentRss><description>Αν σου φαίνεται δύσκολο το Singleton μπορείς απλά να&amp;nbsp;δηλώσεις τη serialPort&amp;nbsp;static.&lt;div&gt;Πρόσθεσε μια public&amp;nbsp;συνάρτηση (static)&amp;nbsp;στη κύρια&amp;nbsp;φόρμα.&lt;/div&gt;&lt;div&gt;Μπορείς να την καλείς από παντού : &amp;nbsp;π.χ. &amp;nbsp;Form1.SendMyMessage(string s);&lt;/div&gt;</description></item><item><title>Απ: Com port listening</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/59941.aspx</link><pubDate>Fri, 10 Sep 2010 20:33:38 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:59941</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/59941.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=59941</wfw:commentRss><description>&lt;P&gt;Ένα παράδειγμα υλοποίησης singleton pattern σε VB.NET μπορείς να δεις σε &lt;A href="http://vbnotebookfor.net/2007/09/13/introduction-to-the-singleton-pattern-in-vbnet/"&gt;αυτή την δημοσίευση&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Για να μπορέσεις να δουλέψεις με την σειριακή θα πρέπει να κάνεις expose τους event handlers της κλάσης της σειριακής θύρας από την singleton κλάση. &lt;/P&gt;
&lt;P&gt;Δεν ξέρω αν μπορείς να τα καταφέρεις από μόνος σου, αλλά για βοήθεια εδώ είμαστε...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;George J.&lt;BR&gt;&lt;/P&gt;</description></item><item><title>Απ: Com port listening</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/59936.aspx</link><pubDate>Fri, 10 Sep 2010 18:11:23 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:59936</guid><dc:creator>DaltonGR</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/59936.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=59936</wfw:commentRss><description>Ευχαριστώ για την απάντηση, συμφωνό απόλυτα με αυτό που λές, πρέπει να φτιάξω μια singleton κλάση η οποία θα ανοίγει την port με το άνοιγμα της εφαρμογής και θα την διατηρεί έτσι καθόλι την διάρκειά της. Θα κλείενι κατά το κλείσιμο της εφαρμογής. Μέχρι εδώ καλά, θα φτιάξω και μεθόδους για να κάνουν ότι χρειάζομαι, έτσι;; Το πρόβλημα είναι δεν ξέρω καθόλου απο singleton class. Εχετε κάποιο Link για να δώ μερικά παραδείγματα και αν γίνεται για την χρησιμότητα τους σε serial ports.&lt;br&gt;&lt;br&gt;Ευχαριστώ και πάλι για την βοήθεια σας.&lt;br&gt;</description></item><item><title>Απ: Com port listening</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/59935.aspx</link><pubDate>Fri, 10 Sep 2010 17:47:54 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:59935</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/59935.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=59935</wfw:commentRss><description>Καταρχήν, δεν υπάρχει κανένας λόγος να φτιάξεις δική σου κλάση αφού υπάρχει ήδη η &lt;a href="http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx"&gt;System.IO.Ports.SerialPort&lt;/a&gt;&amp;nbsp;. Επιπλέον, δεν υπάρχει λόγος να προσπαθείς να ανοίξεις και να χρησιμοποιήσεις την πόρτα από πολλές πόρτες ταυτόχρονα. Μάλιστα πρόκειται για πολύ κακή λύση. Αυτό που πρέπει να κάνεις είναι να φτιάξεις και να χρησιμοποιείς την πόρτα από ένα και μοναδικό σημείο, π.χ. σε μία singleton κλάση, ή στην parent φόρμα (μπρρρ). Μετά, όποιος θέλει να κάνει κάτι με την πόρτα στέλνει ένα μήνυμα (καλεί μία μέθοδο) στην κλάση και αυτή μόνο θα στείλει ή θα λάβει μέσω της πόρτας.&amp;nbsp;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Τέλος, όπως έχουμε πει και πάρα πολλές φορές σε αντίστοιχες ερωτήσεις, είναι λάθος να προσπαθείς από μία φόρμα να πειράξεις ή να διαβάσεις απευθείας πεδία και properties μίας άλλης φόρμας. Κανονικά μία φόρμα ΔΕΝ πρέπει να έχει πεδία ή λογική παρά μόνο όσα χρειάζεται για να δείξει ό,τι θέλει να δείξει. Αν θέλεις να περάσεις δεδομένα σε μία φόρμα, η parent φόρμα θα πρέπει να τις τα περάσει π.χ. μέσω εντός αντικειμένου ή properties.&amp;nbsp;&lt;/div&gt;</description></item><item><title>Απ: Com port listening</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/59933.aspx</link><pubDate>Fri, 10 Sep 2010 16:48:45 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:59933</guid><dc:creator>DaltonGR</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/59933.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=59933</wfw:commentRss><description>αυτό που βασικά έχω είναι μια κεντρική φόρμα που με την βοήθεια ενός timer ακούει την σειριακή για μηνύματα. Η θύρα είναι πάντα ανοικτή. Υπάρχει η δυνατότητα αποστολής μηνυμάτων απο νέα φορμα. Όταν ανοίγω την φόρμα την νέα λογικό δεν μπορώ να στείλω μήνυμα εφόσον είναι ήδη ανοικτή η θύρα. βρήκα ένα παράδειγμα σε C# το οποίο το υλοποιεί αυτό αλλά δεν δουλεύει σε vb.net.&lt;br&gt;&lt;pre style="margin-top:0pt;" id="pre0"&gt;&lt;span class="code-keyword"&gt;public&lt;/span&gt; &lt;span class="code-keyword"&gt;class&lt;/span&gt; CommSetting&lt;br&gt;{&lt;br&gt;    &lt;span class="code-keyword"&gt;public&lt;/span&gt; &lt;span class="code-keyword"&gt;static&lt;/span&gt; &lt;span class="code-keyword"&gt;int&lt;/span&gt; Comm_Port=0;&lt;br&gt;    &lt;span class="code-keyword"&gt;public&lt;/span&gt; &lt;span class="code-keyword"&gt;static&lt;/span&gt; &lt;span class="code-SDKkeyword"&gt;Int64&lt;/span&gt; Comm_BaudRate=0;&lt;br&gt;    &lt;span class="code-keyword"&gt;public&lt;/span&gt; &lt;span class="code-keyword"&gt;static&lt;/span&gt; &lt;span class="code-SDKkeyword"&gt;Int64&lt;/span&gt; Comm_TimeOut=0;&lt;br&gt;    &lt;span class="code-keyword"&gt;public&lt;/span&gt; &lt;span class="code-keyword"&gt;static&lt;/span&gt; GsmCommMain comm;&lt;br&gt;&lt;br&gt;    &lt;span class="code-keyword"&gt;public&lt;/span&gt; CommSetting()&lt;br&gt;    {&lt;br&gt;        &lt;span class="code-comment"&gt;//&lt;/span&gt;&lt;span class="code-comment"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;        &lt;span class="code-comment"&gt;//&lt;/span&gt;&lt;span class="code-comment"&gt; TODO: Add constructor logic here&lt;br&gt;&lt;/span&gt;&lt;br&gt;        &lt;span class="code-comment"&gt;//&lt;/span&gt;&lt;span class="code-comment"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;    }&lt;br&gt;}&lt;br&gt;&lt;/pre&gt;μόνο με την υλοποίηση singleton κλάσης γίνεται αυτό; Μήπως έχεις κάποια link να διαβάσω γιατί εκεί δεν ξέρω απολύτως τίποτα..&lt;br&gt;&lt;br&gt;Ευχαριστώ και πάλι.&lt;br&gt;</description></item><item><title>Απ: Com port listening</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/59932.aspx</link><pubDate>Fri, 10 Sep 2010 16:15:48 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:59932</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/59932.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=59932</wfw:commentRss><description>&lt;P&gt;Καλημέρα,&lt;/P&gt;
&lt;P&gt;Θα ήθελα να ξεκινήσω λέγοντας ότι η σειριακή επικοινωνία είναι αρκετά πιο "ιδιότροπη" σε σχέση με την δικτυακή. Αυτό οφείλεται στο γεγονός ότι μία σειριακή θύρα μπορεί να χρησιμοποιηθεί (κάποιος μπορεί να συνδεθεί επάνω της) μόνο μία φορά.&lt;/P&gt;
&lt;P&gt;Άρα, το πρόβλημα είναι πως θα μπορέσεις να το ξεπεράσεις αυτό το περιορισμό:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Θα πρέπει να φτιάξεις κάποιο proxy object - κάποιο object που να υλοποιεί το&amp;nbsp;singleton&amp;nbsp;pattern - και θα έχει πρόσβαση στην σειριακή σου, και μέσω αυτού θα πρέπει να κάνεις εσύ όλες τις διαδικασίες που χρειάζεσαι. Έτσι&amp;nbsp;θα&amp;nbsp;μπορέσεις να χρησιμοποιείς τα events του για να έχεις πρόσβαση στην σειριακή σου.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;George J.&lt;BR&gt;&lt;/P&gt;</description></item><item><title>Απ: Com port listening</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/59931.aspx</link><pubDate>Fri, 10 Sep 2010 15:38:06 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:59931</guid><dc:creator>DaltonGR</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/59931.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=59931</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;DaltonGR:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Καλημέρα,&lt;br&gt;Θέλω να φτιάξω μια εφαρμογή που όταν ανοίγει(form load)&amp;nbsp; να ακούει σε συγκεκριμένη COM Port, και οτιδήποτε ενέργεια και να κάνω απο την εφαρμογή να ακούει και να στέλνει μηνύματα απο αυτή την πόρτα. Να μπορούν όμως και απο άλλες φόρμες της εφαρμογής να στέλνουν μηνύματα απο αυτή την πόρτα. Πώς μπορώ να υλοποιήσω κάτι τέτοιο.&lt;br&gt;&lt;br&gt;Ευχαριστώ εκ των προτέρων.&lt;br&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;Δημιουργησα μια κλάση myPort,&lt;br&gt;Public Class myPort&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public comPort As Integer = 0&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public baudrate As Integer = 0&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public timeout As Integer = 0&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public comm As GsmCommMain&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Sub New()&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;br&gt;End Class&lt;br&gt;&lt;br&gt;στην mainForm μου το αρχικοποιώ,&lt;br&gt;Private porta As New myPort()&lt;br&gt;την οποία και ανοίγω στο load event της φόρμας.&lt;br&gt;&lt;br&gt;Η ερώτηση μου είναι πώς μπορεί μια child form που ανοίγει να την χρησιμοποιήσει. Δέν μπορεί να την ανοίξει μιας και είναι ήδη ανοικτή απο την main form. Οπότε πώς μπορώ να το κάνω αυτό.&lt;br&gt;&lt;br&gt;Ευχαριστώ και πάλι.&lt;br&gt;</description></item><item><title>Com port listening</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/59903.aspx</link><pubDate>Wed, 08 Sep 2010 19:37:48 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:59903</guid><dc:creator>DaltonGR</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/59903.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=80&amp;PostID=59903</wfw:commentRss><description>Καλημέρα,&lt;br&gt;Θέλω να φτιάξω μια εφαρμογή που όταν ανοίγει(form load)&amp;nbsp; να ακούει σε συγκεκριμένη COM Port, και οτιδήποτε ενέργεια και να κάνω απο την εφαρμογή να ακούει και να στέλνει μηνύματα απο αυτή την πόρτα. Να μπορούν όμως και απο άλλες φόρμες της εφαρμογής να στέλνουν μηνύματα απο αυτή την πόρτα. Πώς μπορώ να υλοποιήσω κάτι τέτοιο.&lt;br&gt;&lt;br&gt;Ευχαριστώ εκ των προτέρων.&lt;br&gt;</description></item></channel></rss>