<?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>Windows Mobile</title><link>https://www.dotnetzone.gr:443/cs/forums/31/ShowForum.aspx</link><description>Θέματα development για SmartPhones, Pocket PC και γενικά φορητές συσκευές με το .NET Compact Framework και τα ASP.NET mobile controls</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: serial port αντικείμενο να υπάρχει σε όλες τις φόρμες της εφαρμογής.</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/46465.aspx</link><pubDate>Wed, 26 Nov 2008 01:47:11 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:46465</guid><dc:creator>eliasm</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/46465.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=31&amp;PostID=46465</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Μιας και έχω αντιμετωπίσει ακριβώς το ίδιο πρόβλημα, θα σου πω και για τα δύο &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Το να θέλεις να έχεις πρόσβαση στο &lt;SPAN style="mso-ansi-language:EN-US;"&gt;GPS&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;από οποιαδήποτε φόρμα λύνεται σαφώς καλύτερα με &lt;SPAN style="mso-ansi-language:EN-US;"&gt;singleton&lt;/SPAN&gt;, αν και θέλει πολύ προσοχή και όχι τσαπατσουλιές και πολύ πιο εύκολα και απλά αν και κάποιες φόρες αργεί να ανοίξει με την το να καλείς σε κάθε φόρμα την κλάση&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;του &lt;SPAN style="mso-ansi-language:EN-US;"&gt;GPS&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT face=Calibri size=3&gt;Αλλά νομίζω &lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;και τελικά αυτό ήταν το καλύτερο, αντί να πάμε με κατευθείαν στην θύρα υλοποιήσαμε την εφαρμογή με την χρήση &lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;του &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;GPS Intermediate Driver &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Για περισσότερες πληροφορίες δες αυτό το &lt;SPAN style="mso-ansi-language:EN-US;"&gt;link&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-ansi-language:EN-US;"&gt;&lt;A href="http://msdn.Microsoft.com/en-us/library/ms850332.asp"&gt;http&lt;/SPAN&gt;://&lt;SPAN style="mso-ansi-language:EN-US;"&gt;msdn&lt;/SPAN&gt;.&lt;SPAN style="mso-ansi-language:EN-US;"&gt;Microsoft&lt;/SPAN&gt;.&lt;SPAN style="mso-ansi-language:EN-US;"&gt;com&lt;/SPAN&gt;/&lt;SPAN style="mso-ansi-language:EN-US;"&gt;en&lt;/SPAN&gt;-&lt;SPAN style="mso-ansi-language:EN-US;"&gt;us&lt;/SPAN&gt;/&lt;SPAN style="mso-ansi-language:EN-US;"&gt;library&lt;/SPAN&gt;/&lt;SPAN style="mso-ansi-language:EN-US;"&gt;ms&lt;/SPAN&gt;850332.&lt;SPAN style="mso-ansi-language:EN-US;"&gt;asp&lt;/A&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;</description></item><item><title>Απ: serial port αντικείμενο να υπάρχει σε όλες τις φόρμες της εφαρμογής.</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/46258.aspx</link><pubDate>Mon, 17 Nov 2008 21:51:13 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:46258</guid><dc:creator>DaltonGR</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/46258.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=31&amp;PostID=46258</wfw:commentRss><description>Έχω μια κλάση GPSClass στην οποία ορίζω μια σεριακή θύρα.&lt;br&gt;&lt;br&gt;&amp;nbsp;Public Sub New()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Try&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPSserial.PortName = "COM1"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPSserial.BaudRate = 9600&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Not GPSserial.IsOpen Then&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPSserial.Open()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Catch ex As Exception&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Try&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;br&gt;έτσι αρχικοποιώ ένα αντικείμενο GPSClass στην main form&amp;nbsp; της εφαρμογής μου. σε αυτή την κλάση έχω το data receive event της σειριακής θυρας. Αυτό που θέλω εγώ είναι να αρχικοποιώ ένα τέτοι αντικείμενο και οποιαδήποτε φόρμα στην εφαρμογή μου και να ανοίξω να μπορεί να έχει πρόσβαση στα δεδομένα που δέχεται αυτή η θύρα. Το κάνω αυτό για να μήν ανοίγω σε κάθε φόρμα μια θύρα και να την κλείνω όταν ανοίγω μια νέα φόρμα.Ξέρω ότι η λύση είναι προφανής αλλα δεν μπορώ να την δώ.&lt;br&gt;στο data receive της θύρας έχω &lt;br&gt;&amp;nbsp; If GPSserial.IsOpen Then&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Try&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Buffer = GPSserial.ReadLine&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Parse(Buffer)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Catch exep As Exception&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Try&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br&gt;η ρουτίνα parse απλώς διαχωρίζει τις διαφορετικές προτάσεις που δέχεται απο το GPS και ανάλογα με ποία πρόταση είναι κάνει raise ένα αντίστοιχο event.&lt;br&gt;&lt;br&gt;Ευχαριστώ και πάλι.&lt;br&gt;</description></item><item><title>Απ: serial port αντικείμενο να υπάρχει σε όλες τις φόρμες της εφαρμογής.</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45705.aspx</link><pubDate>Fri, 24 Oct 2008 05:21:34 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45705</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45705.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=31&amp;PostID=45705</wfw:commentRss><description>&lt;P&gt;Υ.Γ. Υπάρχει το Singleton pattern το οποίο σου επιτρέπει να φτιάξεις μία κλάση η οποία θα έχει πάντα ένα και μοναδικό instance και πρόσβαση σε αυτό από ένα και μόνο σημείο. Για παράδειγμα:&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:black;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;public&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;sealed&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;class&lt;/SPAN&gt; GpsController&lt;BR&gt;{&lt;BR&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;static&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;readonly&lt;/SPAN&gt; GpsControllerinstance=&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;new&lt;/SPAN&gt; GpsController();&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;static&lt;/SPAN&gt; GpsController(){}&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;GpsController(){}&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;static&lt;/SPAN&gt; Instance&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;get&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&lt;/SPAN&gt; instance;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Η παραπάνω κλάση δεν μπορεί να δημιουργηθεί με new GpsController γιατί ο constructor είναι private. Ο μόνος τρόπος να δημιουργηθεί είναι με την GpsController.Instance . Έτσι εξασφαλίζεται ότι θα υπάρχει πάντα μόνο ένας GpsController.&lt;/P&gt;
&lt;P&gt;Το καλό του Singleton είναι ότι οποιαδήποτε κλάση θέλει να χρησιμοποιήσει τον GpsController απλά καλεί την GpsController.Instance. Το κακό είναι ότι αν είναι κανείς τσαπατσούλης δεν έχει έλεγχο στο ποιός καλεί τον GpsController και πότε. Μπορεί άνετα για παράδειγμα κάποιος να καλέσει τον GpsController σε ένα private method μίας κλάσης με 1000 γραμμές και να μην φαίνεται πουθενά ότι τώρα η κλάση εξαρτάται πλέον από τον GpsController.&lt;/P&gt;</description></item><item><title>Απ: serial port αντικείμενο να υπάρχει σε όλες τις φόρμες της εφαρμογής.</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45700.aspx</link><pubDate>Fri, 24 Oct 2008 04:41:50 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45700</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45700.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=31&amp;PostID=45700</wfw:commentRss><description>&lt;P&gt;Όχι ότι δεν υπάρχει τρόπος να έχεις μία και μοναδική σειριακή, αλλά γιατί να έχεις πρόσβαση σε αυτή από κάθε φόρμα? Κάθε φόρμα χειρίζεται τη θύρα με διαφορετικό τρόπο? Θέλεις δύο φόρμες να ακούνε ή να μιλάνε με τη θύρα ταυτόχρονα? Μάλλον πρέπει να ξανασκεφτείς τη σχεδίαση σου.&lt;/P&gt;
&lt;P&gt;Εκτός και αν χρησιμοποιείς τη θύρα για διαφορετικούς λόγους σε κάθε φόρμα (κάτι που ακούγεται περίεργο) ή θέλεις πολλές φόρμες να παίζουν με την ίδια θύρα ταυτόχρονα (που ακούγεται παράλογο) είναι καλύτερα να κρύψεις τη θύρα μέσα σε μία μόνο κλάση. Η&amp;nbsp;&amp;nbsp;κλάση αυτή θα είναι υπεύθυνη και για το άνοιγμα/κλείσιμο της θύρας αλλά κυρίως για να υλοποιεί τις λειτουργίες για τις οποίες θέλεις τη θύρα. Όχι κάθε φόρμα ξεχωριστά, αυτή η κλάση και μόνο. Για παράδειγμα, αν θέλεις να μιλήσεις με ένα GPS η κλάση αυτή θα πρέπει να έχει κάποιο event που σηκώνει κάθε φορά που δέχεται συντεταγμένες. Αν θέλεις να στείλεις μηνύματα μέσω κάποιου modem, η κλάση αυτή θα έχει μεθόδους SendMessage, ReceiveMessage. Καμμία άλλη κλάση ή φόρμα δεν θα πρέπει ούτε να χρησιμοποιεί ούτε καν να ξέρει ότι υπάρχει η σειριακή.&lt;/P&gt;
&lt;P&gt;Η υπόλοιπη εφαρμογή σου θα πρέπει να επικοινωνεί με τη σειριακή μόνο μέσω αυτής της κλάσης. Μπορείς να φτιάξεις ένα instance όταν ξεκινάει η εφαρμογή σου και να το περνάς σε κάθε φόρμα ως παράμετρο π.χ. στον constructor, ή ως property. Κάθε φόρμα μετά θα καλεί τις κατάλληλες μεθόδους σε αυτή την κλάση. &lt;/P&gt;</description></item><item><title>serial port αντικείμενο να υπάρχει σε όλες τις φόρμες της εφαρμογής.</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45693.aspx</link><pubDate>Thu, 23 Oct 2008 22:07:18 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45693</guid><dc:creator>DaltonGR</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45693.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=31&amp;PostID=45693</wfw:commentRss><description>&lt;P&gt;Καλημέρα,&lt;/P&gt;
&lt;P&gt;Έχω μια απορία, πώς θα μπρέσω όταν ανοίγει η εφαρμογή μου να δημιουργείτε μια σειριακή πόρτα να ανοίγει και οποιαδήποτε φόρμα και αν ανοίξει, πάντα για το ίδιο instance της εφαρμογής,&amp;nbsp;να μπορεί να διαβάσει τα δεδομένα που έρχονται;&lt;BR&gt;Ρωτάω αυτό επειδή θέλω όταν ανοίγει η εφαρμογή να αρχικοποιεί μια σειριακή πόρτα στην COM1 και να διαβάζει δεδομένα που έρχονται σε αυτή.Οποια φόρμα και αν ανοίξει μέσα απο το μενού να μπορεί να διαβάσει, χωρίς να ανόιγω διαφορετική σειριακή πόρτα σε κάθε φόρμα.&lt;/P&gt;
&lt;P&gt;Ευχαριστώ εκ των προτέρων.&lt;/P&gt;</description></item></channel></rss>