Verfasst am: 07.06.2011, 15:49
Titel: Element in Listbox löschen
Hallo,
ich habe eine GUI mit Guide erstellt. In dieser befindet sich eine ListBox und (ich vereinfach mal meine GUI) ein Button zum Löschen vom markierten Eintrag der Listbox.
Leider bekomme ich einen Warnung (die meine ListBox verschwinden lässt) wenn ich das letzte Element in der Liste löschen will (alle anderen Elemente kann ich fehlerfrei löschen).
Code:
Warning: single-selection listbox control requires that Value be an integer within String range
Control will not be rendered until all of its parameter values are valid
Wie dem so immer ist, gerade wenn man die Frage gepostet hat, fällt einem die richtige Idee ein:
Wenn man das letzte Element makiert hat und dieses löschen will, ist die Liste kürzer als der Value.
Sprich: Die Liste ist 2 Zeilen lang und ich makiere Zeile 2 (->Value==2), dann kann ich diese Zeile nicht löschen, da die Liste nur 1zeilig ist, aber Value noch auf 2 steht.
Ich hab das gleiche Problem aber bei mir funktioniert das nicht so.
Ich habe hier mal den Callback meines edit_fensters gepostet.
Ich will Messwerte suchen die die im edit-Fenster eingegebenen Anfangsbuchstaben haben. Jedoch habe ich das Problem dass eben die listbox verschwindet wenn bei einer neuen Suchanfrage im schlechtesten Fall überhaupt keine Messwerte gefunden werden.
Code:
function edit_suchemesswerte_Callback(hObject, eventdata, handles)
Die Value hab ich ja gleich in der ersten Zeile des Callbacks auf -1 gesetzt.
s.o.
Fehlermeldung:
Warning: multi-selection listbox control requires that Value be an integer within String
range
Control will not be rendered until all of its parameter values are valid
Klicke hier, um den Artikel bei Amazon.de anzuschauen.
mawi hat Folgendes geschrieben:
Die Value hab ich ja gleich in der ersten Zeile des Callbacks auf -1 gesetzt.
Der Wert Value muss immer größer als 0 sein.
Der Wert von get(handles.listbox_messvars,'Value') ist die Zeile, die gerade in der Listbox markiert ist. Da die Listbox immer min. eine Zeile haben muss, darf 'Value' nicht null oder kleiner sein - oder (wie in dem ursprünglichen Problem) größer als die Anzahl von Zeilen.
Die Lösung Deines Problemes:
Code:
ifget(handles.listbox_messvars,'Value') >1 set(handles.listbox_messvars,'Value',get(handles.listbox_messvars,'Value')-1);
end
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.