<?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>WinForms</title><link>https://www.dotnetzone.gr:443/cs/forums/12/ShowForum.aspx</link><description>Θέματα για rich client / windows εφαρμογές, σε οποιαδήποτε γλώσσα (VB.NET, C#, managed C++, κ.α.)</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Ερώτηση για περίεργη κλήση VBScript μέσα από VB.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/4828.aspx</link><pubDate>Tue, 30 Aug 2005 23:31:48 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:4828</guid><dc:creator>rama</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/4828.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=4828</wfw:commentRss><description>... wrapper class ΚΑΙ wrapper method σαν δύο διαφορετικές λύσεις και όλα παίζουν τέλεια. &lt;br&gt;Αν δεν αρέσει σαν λύση (στα πάνω στρώματα της ιεραρχίας) θα παίξει και .NET scripting (ήδη παιδευω το παράδειγμα του MSDN)...</description></item><item><title>Απ: Ερώτηση για περίεργη κλήση VBScript μέσα από VB.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/4825.aspx</link><pubDate>Tue, 30 Aug 2005 23:09:54 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:4825</guid><dc:creator>rousso</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/4825.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=4825</wfw:commentRss><description>Νομίζω ότι την ΄λέξη κλειδί την είπε ο pkanavos: &lt;EM&gt;"να εγκαταλείψεις το overloading"&lt;/EM&gt; γι αυτήν την περίπτωση... &lt;BR&gt;&lt;BR&gt;Άρα φτιάξε μια ρουτίνα που θα καλείς από VBScript και ονόμασέ την π.χ. vbsItem1. Βάλε την vbsItem1 να καλεί το σωστό overload της Item και να επιστρέφει το σωστό value. Αντίστοιχα φτιάξε μια vbsItem2 για το άλλο overload κ.ο.κ. &lt;BR&gt;&lt;BR&gt;Αυτός είναι ο πιο εύκολος τρόπος για να μην αλλάξεις το interface της Field Class... &lt;BR&gt;&lt;BR&gt;Αν θες να το κάνεις όμως πιο σωστά και ωραία... τότε κοίτα να το κάνεις χωρίς ScriptControl και COM... &lt;BR&gt;&lt;BR&gt;rousso</description></item><item><title>Απ: Ερώτηση για περίεργη κλήση VBScript μέσα από VB.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/4824.aspx</link><pubDate>Tue, 30 Aug 2005 22:14:05 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:4824</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/4824.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=4824</wfw:commentRss><description>Η VBScript καταλαβαίνει μόνο Variants και δεν υποστηρίζει overloading, οπότε δεν μπορεί να δουλέψει αυτό που θες. Άσε που επειδή δουλεύει με late binding βάση του ονόματος, δεν υπάρχει περίπτωση να την πείσεις να επιλέξει άλλη συνάρτηση από αυτή που έχει ήδη επιλέξει. Υποθέτω ότι απλά επιλέγει την πρώτη συνάρτηση με το όνομα που ζητάς. Αυτή έτυχε να είναι η πρώτη, απλή συνάρτηση. Αναρωτιέμαι, αν άλλαζες τη σειρά ορισμού, θα προσπαθούσε να καλέσει άλλη συνάρτηση?&lt;br&gt;&lt;br&gt;Με λίγα λόγια, προσπαθείς να κάνεις τη VBScript να εκτελέσει κώδικα που δεν καταλαβαίνει. Καλά-καλά, η VB6 μπορεί να μην καταλάβαινε αυτό τον κώδικα, πόσο μάλλον η VBScript! Στην καλύτερη περίπτωση τα αποτελέσματα θα είναι απρόσμενα και τυχαία. Στη χειρότερη, θα έχεις ακατανόητα crash. &lt;br&gt;&lt;br&gt;Αν πρέπει οπωσδήποτε να περάσεις αυτές τις κλάσεις στη VBScript, θα πρέπει να τις ξανασχεδιάσεις έχοντας υπόψη τους κανόνες του COM Interoperability και να εγκαταλείψεις το overloading. Αν δεν μπορείς να το κάνεις αυτό, φτιάξε άλλες κλάσεις για το Interop που θα καλούν εσωτερικά αυτές που ήδη έχεις</description></item><item><title>Απ: Ερώτηση για περίεργη κλήση VBScript μέσα από VB.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/4823.aspx</link><pubDate>Tue, 30 Aug 2005 21:57:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:4823</guid><dc:creator>rama</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/4823.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=4823</wfw:commentRss><description>&lt;P&gt;Ευχαριστώ για το ενδιαφέρον σας.&lt;BR&gt;Λοιπόν για να γίνω πιο συγκεκριμενος. Ο ορισμός των properties είναι όπως φαίνεται παρακάτω:&lt;BR&gt;Default Public Overloads Readonly Property Item (byval index as Integer) as Field&lt;BR&gt;Default Public Overloads Readonly Property Item (byval index as Integer, byval IngoreError as boolean) as Field&lt;BR&gt;Default Public Overloads Readonly Property Item (byval&amp;nbsp;tag as String, optional byval a as string = "",optional byval b as integer = 0 ,&amp;nbsp;optional byval IngoreError as boolean = false) as Field&lt;BR&gt;&lt;BR&gt;Και το κακό είναι οτι δεν μπορώ να&amp;nbsp;αλλάξω τίποτα σε αυτό γιατί είναι κομμάτι του project εδώ και καιρό. Οπότε φαντάζεσαι τι θα γίνει αν αλλάξω κάτι... &lt;BR&gt;Warnings δεν έχω ... &lt;/P&gt;
&lt;P&gt;Εμένα με ενδιαφέρει η κλήση της 3ης υλοποίησης. Για τα optional arguments προσπάθησα να του τα δώσω όλα σαν να ήταν υποχρεωτικά αλλά πάλι μου βγάζει το error για λάθος στα ορίσματα κτλ... οπότε πιστεύω οτι προσπαθεί να καταλάβει τι είναι και τι θέλει η Item και το μόνο που καταφέρνει είναι να δεχτεί την πρώτη απλή εκδοχή της :&lt;BR&gt;Default Public Overloads Readonly Property Item (byval index as Integer) as Field&lt;/P&gt;
&lt;P&gt;Οι υπόλοιπες ...&amp;nbsp;KIA ...&lt;BR&gt;Το καλύτερο ήταν που πήγα να του περάσω σαν πρώτο όρισμα string και το μετέτρεψε on the fly σε integer! Τα variants είναι αυτα? &lt;BR&gt;Msg.Fields.Item("2") και μου έφερε ότι θα έφερνε με την Msg.Fields.Item(2)...&lt;/P&gt;
&lt;P&gt;Τέλος μπορείς μάλλον να θεωρήσεις οτι το default δεν το αναγνωρίζει καν γιατί η κλήση :&lt;BR&gt;Msg.Fields(2) &lt;BR&gt;δεν παίζει καθόλου (με το ίδιο error).&lt;/P&gt;
&lt;P&gt;Τώρα κοιτάω τι μπορώ να κάνω με script σε VB.NET (σαν γλώσσα για το script δηλαδή), από το link που έγραψε ο &lt;SPAN class=inlineLink&gt;&lt;FONT color=#000000&gt;pkanavos. Εκεί &lt;/FONT&gt;&lt;/SPAN&gt;που φαντάζομαι οτι δεν θα έχω τέτοια προβλήματα ...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Απ: Ερώτηση για περίεργη κλήση VBScript μέσα από VB.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/4818.aspx</link><pubDate>Tue, 30 Aug 2005 20:14:14 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:4818</guid><dc:creator>rousso</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/4818.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=4818</wfw:commentRss><description>&lt;img src="/cs/emoticons/emotion-1.gif" alt="Smile [:)]" /&gt; Ooops!!! Με πρόλαβε ο pkanavos! Προφανώς έγραφα την ίδια ώρα με εκέινoν μόνο που το δικό μου post ήταν πιο φλύαρο και "άργησε" να τελειώσει... &lt;BR&gt;&lt;BR&gt;&lt;img src="/cs/emoticons/emotion-1.gif" alt="Smile [:)]" /&gt; &lt;BR&gt;&lt;BR&gt;Anyway o pkanavos έχει δίκιο για το CodeDOM... &lt;BR&gt;&lt;BR&gt;rousso &lt;BR&gt;</description></item><item><title>Απ: Ερώτηση για περίεργη κλήση VBScript μέσα από VB.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/4817.aspx</link><pubDate>Tue, 30 Aug 2005 20:11:19 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:4817</guid><dc:creator>rousso</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/4817.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=4817</wfw:commentRss><description>&lt;P&gt;Μου φαίνεται ότι τα έχεις μπερδέψει λίγο...&lt;/P&gt;
&lt;P&gt;Δυστχώς δεν ξέρω VB.NET οπότε&amp;nbsp; μπορεί και να μην σου τα λέω καλά... αλλά αυτή η ανάμειξη Default Properties., Optional Arguments, Overoading, και COM είναι μιά καλή συνταγή για να μπερδευτείς μιά χαρά...&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Κατ΄ αρχήν τι το θες το Default Property; (Τέλος πάντων minor θέμα)...Πάμε παρακάτω... 
&lt;LI&gt;Έχεις κάνει overload (implicitly κιόλας μια και δεν χρησιμοποιείς το Overloads keyword) την Item Property. Τρια overloads με το χέρι... 
&lt;LI&gt;Τα Optional Arguments που βάζεις κόβω το κεφάλι μου (που λέει ο λόγος) ότι ο compiler τα υλοποιεί με overloads.. (Άλλα επτά -αν μέτρησα καλά- implicit overloads). Για να μην σου πω ότι το overloading μπορεί να το κάνει το ίδιο το CLR...
&lt;LI&gt;Σύνολο 10 overloaded εκδόσεις της Item Property που είναι και Default... 
&lt;LI&gt;Και στο καπάκι την περνάς και με COM σε VBScript για να κάνεις τα VBScript κόλπα σου (εξ ου και το automation error)...&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Τώρα, αν το παρατηρήσεις κάποια από τα (3) overloads που φτιάχνεις εσύ, με κάποια από τα (7) overloads που φτιάχνει ο compiller ταυτίζονται... Από την άλλη το overloading δημιουργεί mangled names... Και που να ξέρω&amp;nbsp;εγώ τώρα πως όλα αυτά τα διαχειίζεται η VBScript που δημιουργεί ένα instance του Field Class μέσω&amp;nbsp;ScriptControl (δηλαδή φτιάχνεις ένα OLE obejct όσο κι αν δεν το πιστεύεις);&lt;/P&gt;
&lt;P&gt;Εμένα μου μυρίζει μπαρούτι... &lt;/P&gt;
&lt;P&gt;Προετίνω να δεις μήπως σου ξέφυγε κανένα warning στο compilation... Προτείνω επίσης να χάσεις τα Optional Arguments και να ξαναδκομάσεις... Αν δεν πάει καλύτερα χάσε και το Default Property γιατί η VBScript τα Default τα διαχειρίζεται με κάποιου είδους proxy (_Default) αν θυμάμαι καλά και μπορεί κάπου εκεί να έχεις πρόβλημα...&lt;/P&gt;
&lt;P&gt;Σου ξαναλέω δεν έχω ασχοληθεί με VB.NET και δεν έκατσα να το ψάξω τώρα οπότε μπορεί και να είμαι σε λάθος δρόμο...&lt;/P&gt;
&lt;P&gt;Αλλά για τσέκαρέ το...&lt;/P&gt;
&lt;P&gt;good luck&lt;BR&gt;rousso&lt;/P&gt;</description></item><item><title>Απ: Ερώτηση για περίεργη κλήση VBScript μέσα από VB.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/4811.aspx</link><pubDate>Tue, 30 Aug 2005 19:26:41 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:4811</guid><dc:creator>rama</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/4811.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=4811</wfw:commentRss><description>Οπότε από ότι καταλαβαίνω δεν γίνεται να καλέσω το property με τον τρόπο/υλοποιήση που θέλω.&lt;br&gt;Το error με το automation τελικά κατάλαβα οτι εμφανίζεται όταν το Field object πετάει exception. Θα κοιτάξω αυτά που μου πρότεινες.&lt;br&gt;</description></item><item><title>Απ: Ερώτηση για περίεργη κλήση VBScript μέσα από VB.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/4807.aspx</link><pubDate>Tue, 30 Aug 2005 19:09:08 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:4807</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/4807.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=4807</wfw:commentRss><description>H VBScript δεν καταλαβαίνει από overloading οπότε είναι περίεργο που τρέχει έστω και για την πρώτη περίπτωση ο κώδικας. Εξάλλου η VBScript ΕΙΝΑΙ γλώσσα που χρησιμοποιεί Automation. Όταν καλείς την AddObject ουσιαστικά ζητάς τη δημιουργία ενός OLE object. &lt;br&gt;&lt;br&gt;Αλλά γιατί χρησιμοποιείς το Script control αντί για το CodeDOM? Με το CodeDOM μπορείς να κάνεις parse on-the-fly κώδικα γραμμένο σε οποιαδήποτε γλώσσα του .NET. Ή μπορείς να χρησιμοποιήσεις το Script for the .NET Framework για να κάνεις περίπου ό,τι γινόταν παλιά με το Script control, αλλά σε καθαρό .NET περιβάλλον. Δες και το http://msdn.microsoft.com/library/en-us/dnclinic/html/scripting06112001.asp για μια περιγραφή του Script for .NET</description></item><item><title>Ερώτηση για περίεργη κλήση VBScript μέσα από VB.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/4805.aspx</link><pubDate>Tue, 30 Aug 2005 18:48:57 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:4805</guid><dc:creator>rama</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/4805.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=4805</wfw:commentRss><description>&lt;P&gt;Καλημέρα. Θα κάνω μία απλουστευμένη περιγραφή του τι έχω και του προβλήματος. Ελπίζω κάποιος να ξέρει κάτι παραπάνω γιατί έχω αρχίσει να κοιτάω με άλλο μάτι το πληκτρολόγιο (break ... smash ... chop...)&lt;/P&gt;
&lt;P&gt;Έχω ένα αντικείμενο τύπου Field σε VB.NET.&lt;/P&gt;
&lt;P&gt;Class Field &lt;BR&gt;Default Property Item (index as integer) as Field...&lt;BR&gt;Default Property Item (index as integer, Optional&amp;nbsp;b as&amp;nbsp;boolean = false)&amp;nbsp; as Field...&lt;BR&gt;Default Property Item (index as integer, Optional opt as string = "", Optional a as integer = 0, Optional b as boolean = false)&amp;nbsp; as Field...&lt;BR&gt;end Class&lt;/P&gt;
&lt;P&gt;και ένα δεύτερο τύπου Msg&lt;/P&gt;
&lt;P&gt;Class Msg&lt;BR&gt;Property Fields () as Field&lt;BR&gt;end Class&lt;/P&gt;
&lt;P&gt;Χρησιμοποιώ το&amp;nbsp; ScriptControl για να εκτελέσω μέσα από την εφαρμογή μου σε VB.NET ρουτίνες σε VBScript που χρησιμοποιούν το παραπάνω αντικείμενο. Το αντικείμενο το περνάω στο context του Script με την AddObject μέθοδο του ScriptControl. &lt;/P&gt;
&lt;P&gt;Το πρόβλημα είναι οτι δεν μπορώ να χρησιμοποιήσω τις properties του Fields, εκτός από την πρώτη υλοποίηση της Item, δηλ αυτή που δεχεται απλά ένα int. Αν δοκιμάσω να καλέσω την Item με κάποιο άλλο set παραμέτρων παίρνω το παρακάτω error. &lt;/P&gt;
&lt;P&gt;Wrong number of arguments or invalid property assignment: 'myMsg.Fields.Item'&lt;/P&gt;
&lt;P&gt;Η κλήση μου ήταν myMsg.Fields.Item("2","*",0,false)&lt;/P&gt;
&lt;P&gt;Επειδή τα 3 τελευταία arguments σε αυτή την κλήση είναι optional δοκίμασα αρχικά να τρέξω κάτι σαν αυτό&lt;BR&gt;myMsg.Fields.Item("2")&lt;/P&gt;
&lt;P&gt;To αποτέλεσμα είναι να μετατρέψει η VBScript το "2" σε 2 και να καλέσει την πρώτη υλοποίηση της Item. Μετά ανακάλυψα οτι η VBScript δεν υποστηρίζει Optional Arguments. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Τελικά μπορώ να κανω μια κλήση με τα 4 arguments? &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;PS: Μερικές φορές παίρνω σαν σφάλμα "Object does not support automation", μάλλον επειδή δεν βρίσκει το Field το Item που του ζητώ. Τι σχέση έχει το Automation???? Δεν χρησιμοποιώ OLE.&lt;/P&gt;
&lt;P&gt;Ευχαριστώ για την υπομονή σας! &lt;/P&gt;</description></item></channel></rss>