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

scrollbarer Tab

 

BlackDice
Themenstarter

Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 08.12.20
Wohnort: ---
Version: R2020b
     Beitrag Verfasst am: 31.03.2021, 09:27     Titel:
  Antworten mit Zitat      
Perfekt danke.

Edit: Wie bekomme ich es am elegantesten hin, dass das Panel mit der Nummer 1 oben steht?
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 31.03.2021, 10:11     Titel:
  Antworten mit Zitat      
Hallo,

wie werden die Nummern denn vergeben? Wo steht 1 momentan?
Es wäre gut, wenn du ein für andere (mich) ausführbares Beispiel zur Verfügung stellen kannst, am besten als .mlapp. Falls nötig zippen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackDice
Themenstarter

Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 08.12.20
Wohnort: ---
Version: R2020b
     Beitrag Verfasst am: 31.03.2021, 10:18     Titel:
  Antworten mit Zitat      
Ok ich hab die Datei mal angehängt. Bisher ist es so, dass die 1 ganz unten steht.

Ich wollte durch dieses Teil Programm erstmal Probieren wie die Schleife und das erstellen funktioniert.
Im fertigen Programm soll es dann so sein, dass ganz oben ein Panel für die Einstellungen steht und darunter standartmäßig Messung 1. Wenn man dann mit dem Spinner weitere Messungen einträgt sollen die unter der Messung 1 erscheinen und auf der rechten Seite ein Scrollbalken.

Spinner Messung erzeugen.zip
 Beschreibung:

Download
 Dateiname:  Spinner Messung erzeugen.zip
 Dateigröße:  19.03 KB
 Heruntergeladen:  279 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 31.03.2021, 12:56     Titel:
  Antworten mit Zitat      
Hallo,

mit der App stehen doch derzeit gar keine Zahlen?

Man kann
Code:
'Title',"Messung "+v

anfügen, damit Zahlen angefügt werden.

Was "oben" oder "unten" ist, kontrollierst du über die Position. Wenn du z.B.
'Position',[0 1200-60*v 348 55]
angibst, ist die Reihenfolge wie von dir gewünscht. Nachteil ist allerdings, dass der Scroll-Balken bleibt.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackDice
Themenstarter

Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 08.12.20
Wohnort: ---
Version: R2020b
     Beitrag Verfasst am: 31.03.2021, 13:08     Titel:
  Antworten mit Zitat      
Wenn die Zeile nicht mehr auskommentiert ist dann werden die Zahlen aus dem loop übernommen.

Code:
               app.Messung_Label(v) = uilabel('Parent',app.Messung_Panel(v),'Position',[5,5,85,25],'Text',("Messung "+v),'FontSize',15);
 


Hmm sonst gibt es keine andere Möglichkeit das zu lösen?

Edit: aber danke schonmal.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 31.03.2021, 14:07     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Wenn die Zeile nicht mehr auskommentiert ist

Warum war sie denn dann auskommentiert? :?

Zitat:
Hmm sonst gibt es keine andere Möglichkeit das zu lösen?

Wie gesagt: du gibst die Positionen an. Wenn du eine andere Position haben möchtest, musst du eine andere Position angeben.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackDice
Themenstarter

Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 08.12.20
Wohnort: ---
Version: R2020b
     Beitrag Verfasst am: 31.03.2021, 14:43     Titel:
  Antworten mit Zitat      
Ich bräuchte ja eine Formel bei der für die y Position folgendes raus kommt:

1. Durchgang: Panel 1 = 5

2. Durchgang: Panel 1 = 10, Panel 2 = 5

3. Durchgang: Panel 1 = 15, Panel 2 = 10, Panel 3 = 5



Würde das mit einem Array für die y Position einfacher gehen? Da könnte ich ja dann die Werte auslesen.

Edit: ok mit einem Array würde es gehen. Jetzt muss ich nur noch hinbekommen, dass an der richtigen Stelle der richtige Wert steht.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 31.03.2021, 15:28     Titel:
  Antworten mit Zitat      
Hallo,

was genau meinst du mit "Array" und "auslesen"?
In MATLAB kann alles ein Vektor oder eine Matrix sein, und man kann über Indizierung jeden darin enthaltenen Wert bekommen.

Zitat:
Jetzt muss ich nur noch hinbekommen, dass an der richtigen Stelle der richtige Wert steht.

Wenn du damit die Folge davor meinst, ist das doch nur eine ganz kleine Rechenaufgabe. Mit "Durchgang" (was auch immer das bei dir bedeutet) d und Panel k ist die Position:
5*d + (k-1)*5
Ein sehr ähnliches Konstrukt hatte ich dir ja auch schon vorgeschlagen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackDice
Themenstarter

Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 08.12.20
Wohnort: ---
Version: R2020b
     Beitrag Verfasst am: 31.03.2021, 16:01     Titel:
  Antworten mit Zitat      
Meine Idee grade eben war es ein Array (100:-5:5) zu erstellen und dann mit circshift das Array bei jeden Durchgang der Schleife zu shiften um die Werte so zu haben wie in meinem vorherigen Post. Das klappt aber leider nicht weil ich ja nach dem ersten Durchgang der Schleife die Position für das Panel 1 gesetzt habe und dann nicht nochmal ändern kann.

Code:
   properties (Access = public)
        Messung_Panel
        Messung_Label
        yAchse = 100:-5:5
    end
   
    methods (Access = public)
       
        function Eins(app)
            value = app.Spinner.Value;
           
            for v = length(app.Messung_Panel)+1:value
                Y = circshift(app.yAchse,v);
                %app.Einstellung_Panel = uipanel(app.Tab_2,'Position',[0 0+60*v 348 55]);
                app.Messung_Panel(v) = uipanel(app.Tab_2,'Position',[0 Y(v) 348 55]);
                app.Messung_Label(v) = uilabel('Parent',app.Messung_Panel(v),'Position',[5,5,85,25],'Text',("Messung "+v),'FontSize',15);
            end
           
           

           
            for v = length(app.Messung_Panel):-1:value+1
                delete (app.Messung_Panel(v))
                app.Messung_Panel(v) = []; % zudem Eintrag entfernen
            end
        end
    end
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 31.03.2021, 16:55     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Das klappt aber leider nicht weil ich ja nach dem ersten Durchgang der Schleife die Position für das Panel 1 gesetzt habe und dann nicht nochmal ändern kann.

Was heißt "klappt nicht"?
Du kannst Panel 1 entweder löschen und neu erstellen oder mit set(..., 'Position', ...) die Position ändern.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackDice
Themenstarter

Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 08.12.20
Wohnort: ---
Version: R2020b
     Beitrag Verfasst am: 31.03.2021, 19:05     Titel:
  Antworten mit Zitat      
Wenn ich aber den Wert von 1 auf 2 wechsle läuft die Schleife aber nur noch einmal durch, da sie schon einmal durchgelaufen ist. Dadurch wird ja die Position für Panel 1, der ja im ersten durchlaufen der Schleife gesetzt wurde, nicht gelöscht oder neu festgelegt.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 31.03.2021, 19:24     Titel:
  Antworten mit Zitat      
Hallo,

wenn du meinem Vorschlag folgst (löschen und neu erstellen), dann schon.
Alternative die Position abändern, wie gesagt mit set(..., 'Position', ...)

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackDice
Themenstarter

Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 08.12.20
Wohnort: ---
Version: R2020b
     Beitrag Verfasst am: 31.03.2021, 19:56     Titel:
  Antworten mit Zitat      
Ok jetzt habe ich es verstanden. Das macht natürlich Sinn. Dann kann ich ja die zweite Schleife löschen und jedes Mal wenn sich der Wert des Spinners ändert alle vorhandenen Einträge löschen und die neuen erstellen oder?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 31.03.2021, 21:56     Titel:
  Antworten mit Zitat      
Hallo,

genau. So dürftest du alle bestehenden Panels auf einmal löschen können:
Code:
delete (app.Messung_Panel)


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2

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.