Christian Posted May 8, 2012 at 06:45 AM Share Posted May 8, 2012 at 06:45 AM Servus, hab mal wieder ein "noob" problem... Ich hab mir eine "WinForm" Application zusammengeclickt ;-). Ich habe auch schon meine ganzen Bricklets usw erfolgreich angebunden. Die Anbindung an "ipcon" geschieht in der Form1_Load-Funktion. Ich hab dann noch ein Callback fürs LCD registriert lcd.RegisterCallback(new BrickletLCD20x4.ButtonPressed(PressedCB)); Klappt auch super. ich kann schon mit folgendem Code eine MessageBox ausgeben die die Nummer des gedrückten Buttons enthält: void PressedCB(byte button) { if (InvokeRequired) { // We're not in the UI thread, so we need to call BeginInvoke BeginInvoke(new DelegatLCD(PressedCB), new object[] { button }); return; } MessageBox.Show(button.ToString()); } Ich würde jetzt aber z.B. gern mal das LCD-Backlight anschalten. Wie hab ich jetzt Zugriff auf die entsprechenden Methoden?? schon mal danke! Gruß Christian Quote Link to comment Share on other sites More sharing options...
AuronX Posted May 8, 2012 at 07:39 AM Share Posted May 8, 2012 at 07:39 AM Dein LCD-Device sollte halt von dort aus erreichbar sein. Beispielsweise geht das, indem du das LCD-Device als Instanz-variable vorhälst: class MyCoolForm { private Device MyLCD; ... public void MyCoolForm_Load(someArgumentsIDontRemember) { ... MyLCD = new BrickletLCD20x4("aCooLU1D"); ... } ... void PressedCB(byte button) { MyLCD.DoWhatEverYouWant(); } } Hoffe das Beispiel hat geholfen die Idee klarzumachen ^^ P.S.: Ich habe auf GitHub bereits vorgeschlagen Callbacks per C#-Event umzusetzen (wirst du kennengelernt haben wenn du mit WinForms arbeitest). Dabei gibt es auch immer ein sender-object. Hier hättest du direkt die möglichkeit dieses zu nutzen, da das in dem Fall das LCD wäre. Quote Link to comment Share on other sites More sharing options...
Christian Posted May 8, 2012 at 08:05 AM Author Share Posted May 8, 2012 at 08:05 AM Vielen dank erst mal... also ich hab jetzt mal oben in der class folgendes eingefügt: private Device lcd; jetzt "meckert" er schon nicht mehr beim Objekt (?) lcd in meiner funktion. Aber er kennt die Methode BacklightOn scheinbar nicht. In der Autovervollständigung via STRG+Leer erscheint das auch nicht. Fehler 2 "Tinkerforge.Device" enthält keine Definition für "BacklightOn", und es konnte keine Erweiterungsmethode "BacklightOn" gefunden werden, die ein erstes Argument vom Typ "Tinkerforge.Device" akzeptiert. (Fehlt eine Using-Direktive oder ein Assemblyverweis?) D:\DOKUMENTE\Visual Studio 2010\Projects\Tinter Test V2\Tinter Test V2\Form1.cs 86 17 Tinter Test V2 Quote Link to comment Share on other sites More sharing options...
photron Posted May 8, 2012 at 08:12 AM Share Posted May 8, 2012 at 08:12 AM Änder mal private Device lcd; in private BrickletLCD20x4 lcd; Quote Link to comment Share on other sites More sharing options...
AuronX Posted May 8, 2012 at 10:14 AM Share Posted May 8, 2012 at 10:14 AM Ja sorry, da war ich vorhin unaufmerksam beim zusammentippen ^^ Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.