Aktuelle Zeit: 21.12.2024, 15:56

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 12.03.2009, 14:42 
Offline

Registriert: 24.05.2008, 13:41
Beiträge: 151
Wohnort: Marienhafe
Hallo ich schein wieder ein Problem mit .net zu haben^^. Ich habe versucht durch
GUIEventType.ElementLeft und GUIEventType.ElementHover Ein MouseHover Effekt für Bilder zu gestalten.
Allerdings scheint der GUIEventType.ElementLeft daueraktiv zu sein,



Code:
public bool device_OnEvent(Event ev)
        {
            switch (ev.Type)
            {
                case EventType.GUIEvent:
                    {
                        switch (ev.GUIEvent)
                        {
                            case GUIEventType.ElementHovered:
                                {

                                        GUIElement RootElement = env.RootElement;
                                        Position2D thepos = new Position2D(ev.Caller.RelativePosition.UpperLeftCorner.X, ev.Caller.RelativePosition.UpperLeftCorner.Y);
                                        Texture mytexture = VDriver.GetTexture("rand_01.png");
                                        env.AddImage(mytexture, thepos, true, RootElement, 99999, "");
                                        break;
                                   
                                }
                            case GUIEventType.ElementLeft:
                                    GUIImage Img_0101 = (GUIImage)env.RootElement.GetElementFromID(99999, true);
                                    if (Img_0101 != null)
                                    {
                                        Img_0101.Remove();
                                        Img_0101.Dispose();
                                    }
                                    break;
                            default:
                                break;

                        }
                        return false;
                    }
            }

            return false;
        }




Wenn ich nun über das Bild fahre, blinkt der Rand (den ich da erstellt hab) immer bzw es flimmert^^. Man bekommt davon richtig kopfschmerzen xD Kennt jemand das Problem?


Zuletzt geändert von Mainclain am 12.03.2009, 15:28, insgesamt 1-mal geändert.

Nach oben
 Profil  
 
 Betreff des Beitrags: Re: GUIEventType.ElementLeft Problem
BeitragVerfasst: 12.03.2009, 14:52 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
Du prüfst weder bei hover noch bei left welches Element das Signal gesendet hat. Ich könnte mir vorstellen, dass es darn liegt.

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: GUIEventType.ElementLeft Problem
BeitragVerfasst: 12.03.2009, 15:10 
Offline

Registriert: 24.05.2008, 13:41
Beiträge: 151
Wohnort: Marienhafe
Naja ich versuch zz ein kleines 2d programm zu machen (Brauch wieder ne kurze auszeit von meinen eigentlichen projekt xD Hab da nochn paar Probleme mit der Newton engine :P)

Und dort hab ich das Bild mit 30*30 großen bildern geflastert. Nun möchte ich, wenn ich auf ein Bild komme, ein rand erscheinen lassen (hab ich eben zz mitn Bild gelöst...)
Und wo soll ich da dann bitte ne prüfung reinbauen xD?


So habs einfach mal versucht mit "if (sid == 1)"(sid= ev.Caller.ID)

ist aber noch immer der gleiche fehler

Achja und der Flimmert auch wenn ich die maus gar nicht bewegen...


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: GUIEventType.ElementLeft Problem
BeitragVerfasst: 12.03.2009, 15:27 
Offline

Registriert: 24.05.2008, 13:41
Beiträge: 151
Wohnort: Marienhafe
Ah hab ne lösung gefunden^^


Code:
public bool device_OnEvent(Event ev)
        {
            switch (ev.Type)
            {
                case EventType.GUIEvent:
                    {
                        int sid = ev.Caller.ID;
                        switch (ev.GUIEvent)
                        {
                            case GUIEventType.ElementHovered:
                                {

                                    if (Img_0101 == null)
                                    {
                                        GUIElement RootElement = env.RootElement;
                                        GUIImage Img_sid = (GUIImage)env.RootElement.GetElementFromID(sid, true);
                                        if (Img_sid != null)
                                        {
                                            Position2D thepos = new Position2D(Img_sid.RelativePosition.UpperLeftCorner.X, ev.Caller.RelativePosition.UpperLeftCorner.Y);
                                            Texture mytexture = VDriver.GetTexture("rand_01.png");
                                            Img_0101 = env.AddImage(mytexture, thepos, true, RootElement, sid, "");
                                        }
                                    }else if ( sid != Img_0101.ID)
                                    {

                                        if (Img_0101 != null)
                                        {
                                            Img_0101.Remove();
                                            Img_0101.Dispose();
                                        }
                                        GUIElement RootElement = env.RootElement;
                                        GUIImage Img_sid = (GUIImage)env.RootElement.GetElementFromID(sid, true);
                                        if (Img_sid != null)
                                        {
                                            Position2D thepos = new Position2D(Img_sid.RelativePosition.UpperLeftCorner.X, ev.Caller.RelativePosition.UpperLeftCorner.Y);
                                            Texture mytexture = VDriver.GetTexture("rand_01.png");
                                            Img_0101 = env.AddImage(mytexture, thepos, true, RootElement, sid, "");
                                        }
                                    }
                                        break;
                                   
                                }
                            default:
                                break;

                        }
                        return false;
                    }
            }

            return false;
        }



Hab dem Rand-Bild einfach die ev.Caller.id zugewiesen. Dann überprüft ob die ev.Caller.ID mit der Rand-BildID übereinstimmt und wenn nicht wird das alte gelöscht und ein neues erstellt^^


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de