Cursor Balken für neuen Range wird doppelt angezeigt.Wieso?
Intenso
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 17.12.2015, 12:00
Titel: Cursor Balken für neuen Range wird doppelt angezeigt.Wieso?
Hallo,
ich rufe in einer GUI eine neue Grafik aus und möchte dann 2 vertikale Cursor ploten, die der Nutzer verschieben kann, um sich einen neuen Bereich für seine Auswertung zu erzeugen.
Die Funktion an sich funktioniert. Wenn ich jedoch die GUI nicht schließe, sondern nur über clear all usw zurücksetze und dann eine neue Messung aufrufe, bekomme ich teiwelse 2 Cursor übereinander angezeigt.
Eigentlich dürfte es aber nur einen grünen und einen roten cursor geben.
(siehe Bild im Anhang).
Woran kann das liegen?
Wird die GUI nicht richtig aufgebaut von mir? bzw. nicht richtig zurückgesetzt?
Verfasst am: 17.12.2015, 14:02
Titel: Re: Cursor Balken für neuen Range wird doppelt angezeigt.Wi
Hallo Intenso,
Ist der gezeigte Code ein Script oder eine Funktion?
Der Code ist sehr unübersichtlich. Das "ferngesteuerte" Erzeugen von Variablen per
assignin
ist ein sehr fehleranfälliger Programmierstil, der das Debuggen sehr erschwert und Matlab auch deutlich ausbremst (was aber bei GUI-Anwendungen nicht so tragisch ist, da der Mensch immer noch langsamer ist).
Nach einem
clearall
(was ebenfalls ein schlechter Programmierstil ist, weil es auch wieder das Debuggen erschwert - bei Bedarf findest Du hunderte Threads zu dem Thema im Forum), sollte dieser Code niocht mehr funktionieren, da "firstclick" nicht definiert ist.
Auf
gcf
zuzugreifen bleibt immer tückisch, denn der Benutzer kann ja zwischen durch auf eine andere Figure klicken, so dass dies einen ungewünschten Handle zurück gibt.
Diese Zeile ist sinnfrei, da die Ausgabe nicht gespeichert wird.
Zitat:
Die Funktion an sich funktioniert. Wenn ich jedoch die GUI nicht schließe, sondern nur über clear all usw zurücksetze und dann eine neue Messung aufrufe, bekomme ich teiwelse 2 Cursor übereinander angezeigt.
Ich verstehe zwar niocht, was da genau pasiert. Aber wenn das Zurücksetzen per "clear all" nicht funktioniert, dann mache das doch einfach nicht. Ich würde diesen Befehlö sowieso grundsätzlich vermeiden.
Gruß, Jan
Intenso
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 17.12.2015, 16:31
Titel:
Hallo Jan,
vielen Dank für dein Feedback.
Ich möchte schon gerne einen sauberen Stil verwenden.
assignin hatte ich verwendet, da ich ansonsten die Werte von dem Cursor nicht ins Workspace bekomme, um mit diesen spatter weiter zu arbeiten.
Hast du einen Vorschlag?
Der gezeigt Code ist ein script welches ich bei dem betätigen eines Buttons im GUI aufrufe.
Dann blende ich das aktuelle GUI aus und das neue ein. Somit kann nicht ausversehen eine andere GUI aktiv sein.
Gruß,
Intenso
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.