Hallo,
Ich versuche ein Array auszugeben mit 49 Einträgen, das wollte ich
mittels slider zum Scrollen machen.
Nur leider werden mir nur die ersten 17 Einträge angezeigt.
Vielleicht könnte mir da einer Weiterhelfen
andy schrieb:> Ich versuche ein Array auszugeben mit 49 Einträgen
Worauf?
> Nur leider werden mir nur die ersten 17 Einträge angezeigt.
Und dann? Was passiert? Was hättst du stattdessen erwartet?
Lothar M. schrieb:> andy schrieb:>> Ich versuche ein Array auszugeben mit 49 Einträgen> Worauf?
for( k=0; k<49; k++ )
{
h = (k*16)+y;
if (h<398-16)
{
sprintf( acText,"PLUSS:%d" ,k );
GUI_Text( 105, h, acText, LCD_COLOR_WHITE,
LCD_COLOR_BLUE);
}
}
Mein Ausdruck war vermutlich nicht richtig gewählt.
Ich habe ein Fenster 300x300 Pixel.
Die erste Ausgabezeile beginnt bei x105 y105.
In das Fenster Passen ja nur 18 Einträge in Y-Rchtung.
Ich wollte wenn die ersten 18 Einträge im Fenster erscheinen durch die
Slider Position die nächsten Einträge erscheinen.
andy schrieb:> Ich wollte wenn die ersten 18 Einträge im Fenster erscheinen durch die> Slider Position die nächsten Einträge erscheinen.
Dir ist aber schon klar, dass die ausgegebenen Texte nicht mit der
Position zu tun haben, weil k einfach nur von der for-Schleife abhängt.
Du rechnest da zwar irgendein j mit der y-Position aus, verwendest es
aber nicht weiter...
Ich würde sowieso die darzustellende Liste von der Darstellung selber
entkoppeln, nur einen Pointer auf das erste Element berechnen und den
dann einer Funktion übergeben, die ab dort 18 Zeilen ausgibt.
Mach mal aus den vielen Konstanten, "lesbare" Werte.
Übrigens: In vielen Fällen kann man in einem Fenster, das 17 Zeilen
umfasst, auch 70 Zeilen ausgeben. Nur sieht man sie nicht! Das ist wie
Deine hübsche Nachbarin hinter dem Fenster, auch wenn man das
Fahrgestell von außen nicht sieht, so ist es doch vorhanden!
Lothar M. schrieb:>> Ich würde sowieso die darzustellende Liste von der Darstellung selber> entkoppeln, nur einen Pointer auf das erste Element berechnen und den> dann einer Funktion übergeben, die ab dort 18 Zeilen ausgibt.
ich hab das jetzt mal so umgesetzt, sicherlich ist das jetzt nicht die
Sinnvollste Lösung.
Gibt es ein Beispiel wie man dies mit Pointern macht.
g = 0; //1. Seite
scroll_list_vertical_text_one(105);
g = 1; //2. Seite
scroll_list_vertical_text_one(105);
g = 2; //3. Seite
scroll_list_vertical_text_one(105);