Verfasst am: 06.05.2008, 15:53
Titel: Mehrzeiliges edit Feld für lange Text ausgabe in Gui nutzen
Hallo Forum,
ich habe ein Gui, welches eine ganze Stange an daten verarbeitet. Um den User etwas auf dem Laufendem zu halten gebe ich immer mal wieder eine Textzeile aus, die sagt, bei welchem Schritt das Script gerade ist.
Der Text wird in dem Gui in einem Mehrzeiligen edit Feld angezeigt.
Beim ersten Durchlauf klappt das auch.
Beim zweiten Durchlauf klappt es aber nicht mehr, da die Dimensionen für das horzcat nicht stimmen. (siehe Fehlermeldung)
Im Debugger sehe ich auch, das mein Text zu einer 9x37 char matrix geworden ist. Wie kann ich nun weiteren Text an diese Matrix anhängen?
Vielen Dank schon einmal für eure Mühe
Code:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% MAIN
old_multitext=get(multitext_handle,'String');
line='-------------------------------------';
K>> multitext=sprintf([old_multitext '\n' line '\nprocessing:' ...
img_file '\n\tsplit image into tiles.\n']);
??? Error using ==> horzcat CAT arguments dimensions are not consistent.
dann haben wir hier ein Versionsproblem. Bei meiner Matlab-Version (2006b) funktioniert es einwandfrei: Alles wird korrekt in ein cell array gewandelt. Evtl. funktioniert es dann nicht, wenn das edit-Feld am Anfang leer ist. Dann liefert get(h,'String') evtl. wirklich einen (leeren) String zurück
Deshalb ist Steve's Version natürlich besser, da versionsunabhängig.
Habe mal einige Links in der Hilfe verfolgt und bin auf die Lösung gestoßen.
Die weiteren Elemente müßen mit der [] konkateniert werde, dann geht es.
Martin3000
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 20.05.2010, 10:41
Titel:
Was meinst Du mit "die neuen Elemente müssen mit [] konkateniert werden"?
Ich habe das Problem, dass es einwandfrei funktioniert, so lange die Zeilen die genau selbe Länge haben. Sobald wir eine Stelle mehr oder weniger haben, gibt es eine Fehlermeldung (die Zahl in temp_matrix(k,5) hat stets verschiedenen Stellen.)
Leider geben geschweifte Klammern bei mir grundsätzlich eine Fehlermeldung...
Ich mache ebenfalls eine Ausgabe in ein Edit feld. Das klappt grundsätzlich auch. Ich möchte bei jedem durchlauf einer Schleiffe eine neue Nachricht ausgeben um so den Benutzer auf dem laufenden zu halten. Allerdings werden die Nachrichten nicht in "echtzeit" ausgegeben, sondern erst wenn das programm einmal durchgelaufen ist.
Muss ich beim edit-feld noch irgendwas einstellen, von wegen aktualisieren zur laufzeit oder ich weiß es nicht????
Danke!
Martin3000
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 07.06.2010, 17:31
Titel:
Das kann ich mir nicht vorstellen. Die Ausgabe sollte genau dann stattfinden, wenn das Programm die Code-Zeile aufruft.
Wenn also die Schleife in t=1 beginnt, Du in t=3 die Textausgabe machst und die Schleife danach aber noch eine Weile läuft, sagen wir bis t=5, dann sollte die Ausgabe im GUI in t=3 erscheinen.
Geil! Das mit dem DrawNow hat geholfen!
Mega geil jetzt!
DAAAANKE!
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.