ich habe aktuell ein Problem mit der "inputdlg" Funktion. Und zwar führt Matlab eine von mir gewollte Ausgabe im Command Window durch, die ziemlich lang ist.
Nun möchte ich, dass der Anwender eine bestimmte Eingabe aus dem Command Window in das von mir vorgestellte Abfragefeld eintippt. Das funktioniert auch alles, nur ist die Liste so lang, dass der Anwender unter Umständen im Command Window scrollen muss, dies wird jedoch von der "inputdlg" Funktion verhindert wird. Die Funktion "inputdlg" bedient sich der "uiwait" Funktion.
Wie kann ich innerhalb der "inputdlg" Funktion die "uiwait" Funktion umgehen?
Gibt es vielleicht eine andere Lösung?
Hier der Code:
Code:
uiwait(msgbox('Bitte geben Sie eine Devicenummer aus der Liste im Command Window ein!', 'Soundkarteninfo'));
Answer = inputdlg('Bitte Devicenummer eintragen (z.B.: 22)','Suche',1);
AnswerStatus = cell2mat(Answer);
ifisempty(AnswerStatus) == 0
AnswerStatus = str2num(AnswerStatus);
Notfound2 = 1;
while Notfound2 == 1 for i=1:size(MsoundInfo_Struct,1) if MsoundInfo_Struct(i).id == AnswerStatus
Status = 3;
DeviceID = MsoundInfo_Struct(i).id;
OutChan = MsoundInfo_Struct(i).outputs;
uiwait(msgbox('Die Devicenummer wurde gefunden!', 'Soundkarteninfo'));
Notfound2 = 0;
break end end
if Notfound2 == 1
Answer = inputdlg('Die Devicenummer wurde nicht gefunden. Bitte geben Sie eine andere Devicenummer ein!', 'Soundkarteninfo');
Answer = str2double(Answer{1,1});
end% if end% while else
msgString = strcat('Die Devicenummer wurde nicht geändert! Die verwendete Devicenummer lautet: ', num2str(MsoundInfo_Struct(i).id),'.');
uiwait(msgbox(msgString, 'Soundkarteninfo'));
end% if
Gibt es hierfür nicht mal ein Tipp, wie ich es vielleicht anders lösen könnte?
Schade...
Bella
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 20.11.2014, 14:04
Titel:
Ich frage mich weshalb ich keine Antwort bekomme. Ist die Frage nicht verständlich genug formuliert oder gibt es wirklich keine andere Möglichkeit das Problem zu umgehen.
Ein Lösungsansatz wäre eine eigene GUI speziell für diesen Fall zu konzipieren. Ist aber ziemlich umständlich. Es wäre super, wenn ich einfacher ans Ziel kommen könnte.
Ich weiß die Antwort darauf leider auch nicht. Es kann bei den vielen Threads aber schon mal passieren, dass etwas untergeht. An deiner Fragestellung liegt es sicherlich nicht. Problemstellung ist eindeutig!
Wie kann ich innerhalb der "inputdlg" Funktion die "uiwait" Funktion umgehen?
Abhängig von der Applikation kann der einfachste Weg sein inputdlg.m unter anderem Namen wie z.B. my_inputdlg.m ins Arbeitsverzeichnis zu speichern, zu modifizieren und dann halt die Modifikation zu benutzen. Also in diesem Fall vielleicht uiwait auszukommentieren.
Noch was Prozedurales. Ich schätze gomatlab.de sehr. Es ist m.E. zusammen mit der chinesischsprachigen Community ilovematlab.cn die Beste nicht-Englischsprachige Community weltweit. Aber wer in deutscher Sprache in eine Community posted erreicht schlicht und einfach nur 5% der Nutzerbasis als wenn man es Englisch tut.
Andreas
Bella
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 20.11.2014, 16:00
Titel:
Hallo Andreas,
vielen Dank für deine sehr gut dargestellte Hilfestellung, aber auch für die letzte Anmerkung!
Gerade wollte ich meine Lösung schreiben und siehe da, sie steht schon.
Ich konnte das Problem mittels der 'listdlg' Funktion umgehen.
Falls jemand die Lösung als Code sehen möchte:
Code:
ID = [];
Outputs = [];
for ii = 1:size(MsoundInfo_Struct,1)
msgString = ['Die Devicenummer wurde nicht geändert! Die verwendete Devicenummer lautet: ', num2str(DeviceID),'.'];
uiwait(msgbox(msgString, 'Soundkarteninfo'));
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.