WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

mehrzeilige Ausgabe im Edit Fenster

 

Dave86
Forum-Century

Forum-Century


Beiträge: 113
Anmeldedatum: 31.07.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.11.2008, 15:00     Titel: mehrzeilige Ausgabe im Edit Fenster
  Antworten mit Zitat      
Hallo,

ich habe da ein kleines Problem! Undzwar möchte ich verschiedene Werte in einem Editfenster ausgeben. Wird ein button betätigt, kommt eine Ausgabe, beim Betätigen eines anderen buttons kommt unter die letzte Ausgabe eine neue Ausgabe. Dabei soll die letzte Ausgabe nicht überschrieben werden, sondern eine neue einfach unterhalb der letzten angehängt werden (new line). Ausgabe in Edit ist kein Problem.
Wie bekomm ich jetzt das Editfenster mehrzeilig und die Ausgaben untereinander hin?
Vielen Dank für eure Bemühungen!

Gruß

Dave
Private Nachricht senden Benutzer-Profile anzeigen


PaulGuenther

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.11.2008, 16:47     Titel:
  Antworten mit Zitat      
Hallo,

ich habe das ganze auf die folgende Weise gelöst.
Man muss einfach nur die Funktion Statusanzeige aufrufen, den neu Zeilenabstand und den Ausgabtext übergeben.

In der Funktion musst du nur noch die handles Bezeichnung deines Editfenster anpassen.

Code:

function [handles] = Statusanzeige(handles,Zeilenabstand, Ausgabetext);
   
   % Es wird ein Text in der GUI 'GUI_Codec' in der Statusanzeige ausgegeben.
    % Zeilenabstand: Gibt an wieviele Zeilenabstand zum vorherigen Text
    % eingehalten werden soll.
    % Handles wird von der GUI übergeben
    % Ausgabetext ist der neue Text: z.B. Ausgabetext = ['Dieser Test wird hinzugefügt']
    statustext = get(handles.statustext, 'String'); %"handles.statustext" muss angepasst werden z.B. "handles.edit1".%Status Anzeige auslesen
    [statuszaehler,temp] = size(statustext); %Anzahl der Reihen ermitteln.
        n = statuszaehler+Zeilenabstand;            %Zeilenabstand für die nächste Zeile
        for i = 1:statuszaehler,
            if isempty(statustext{i}),
                    statustext{i} = ' ';
            end
        end
    statustext{n} = char(Ausgabetext);
    set(handles.statustext,'String',statustext); %Neuen Text in Status-Anzeige schreiben.
 
 
Dave86
Themenstarter

Forum-Century

Forum-Century


Beiträge: 113
Anmeldedatum: 31.07.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.11.2008, 16:51     Titel:
  Antworten mit Zitat      
Hallo,

ich habs jetzt folgendermaßen probiert:

Code:

% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
Zeilenabstand=2;
Ausgabetext='bla';
Statusanzeige(handles,Zeilenabstand, Ausgabetext);
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

 


Code:

function [handles] = Statusanzeige(handles,Zeilenabstand, Ausgabetext);
   
   % Es wird ein Text in der GUI 'GUI_Codec' in der Statusanzeige ausgegeben.
    % Zeilenabstand: Gibt an wieviele Zeilenabstand zum vorherigen Text
    % eingehalten werden soll.
    % Handles wird von der GUI übergeben
    % Ausgabetext ist der neue Text: z.B. Ausgabetext = ['Dieser Test wird hinzugefügt']
    statustext = get(handles.edit1, 'String'); %"handles.statustext" muss angepasst werden z.B. "handles.edit1".%Status Anzeige auslesen
    [statuszaehler,temp] = size(statustext); %Anzahl der Reihen ermitteln.
        n = statuszaehler+Zeilenabstand;            %Zeilenabstand für die nächste Zeile
        for i = 1:statuszaehler,
            if isempty(statustext{i}),
                    statustext{i} = ' ';
            end
        end
    statustext{n} = char(Ausgabetext);
    set(handles.edit2,'String',statustext); %Neuen Text in Status-Anzeige schreiben.
 


Bekomm jedoch folgende Fehlermeldung:

Code:

Warning: Single line Edit Controls can not have multi-line text.
> In gui_mainfcn at 224
  In mehrzeilige_Ausgabe at 42
 

Die Editbox, in der der Text ausgegeben werden soll, verschwindet aus meiner GUI vollständig!
Private Nachricht senden Benutzer-Profile anzeigen
 
neuergast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.11.2008, 17:21     Titel:
  Antworten mit Zitat      
verwende eine listbox!!!!
 
Dave86
Themenstarter

Forum-Century

Forum-Century


Beiträge: 113
Anmeldedatum: 31.07.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.12.2008, 16:41     Titel:
  Antworten mit Zitat      
Hallo,

wo kann ich im Eigenschaftsfenster einer listbox einstellen, dass er mir nicht überschreiben soll? D.h.die Ausgabe soll Zeile für Zeile erfolgen unter Verwendung des scroll Balkens!
Hab dazu nicht wirklich was Produktives gefunden!

Gruß

Dave
Private Nachricht senden Benutzer-Profile anzeigen
 
Dave86
Themenstarter

Forum-Century

Forum-Century


Beiträge: 113
Anmeldedatum: 31.07.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.12.2008, 15:02     Titel:
  Antworten mit Zitat      
Hallo zusammen,

ich hab jetzt annähernd das hinbekommen, was ich will. Jedoch fehlt mir noch en Schritt!
Im Eigenschaftsfenster einer EditBox hab ich die Eigenschaft "Max" und "Min" auf Max=10 und Min=2, da ich nachgelesen hab, dass bei einer mehrzeiligen Ausgabe "Max-Min>1" gelten soll.
Bei einer Eingabe in einer beliebigen EditBox wird diese Eingabe in der mehrzeiligen EditBox in der ersten Zeile angezeigt, bei einer erneuten Eingabe wird diese nicht verschoben, sondern einfach überschrieben! D.h. die letzten x Eingaben sind nicht sichtbar!
Gibt es eine Möglichkeit im Eigenschaftsfenster eine Eigenschaft einzustellen, die mir eine "multiline" Ausgabe ermöglicht?

Danke im Voraus!

Dave
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.