| |
|
|
- Seite 1 - |
|
GDL | Hallöle Roland,
ich stehe auch vor dem Problem, mit mehreren Listen zu arbeiten. Dabei habe ich das hier gefunden: [...]
Nur wie bekomme ich die Listen auf einen Rutsch in eine Gridbox? Die Inc unterstützt nur die Listboxliste zur Übergabe. KompilierenMarkierenSeparieren und bei KompilierenMarkierenSeparieren geht ein 2ter Parameter für die Liste ab.
Kannst du die Inc so erweitern, dass diese auch die Gridbox unterstützt, oder gibt es eine andere Möglichkeit den Movetobefehl zu erweitern?
Grüßle Georg |
|
|
| |
|
|
|
« Dieser Beitrag wurde als Lösung gekennzeichnet. » |
|
GDL | Hi,
ich habe es jetzt mit "Umschaufeln" gelöst. Da ja im Moment nicht zu viele Daten auflaufen, spielt die Zeit bei meiner Kassenanwendung keine große Rolle. Selbige Lösung ist aber für meine Modellbahnsteuerung zu langsam. Da lasse ich es im Moment so wie es ist. KompilierenMarkierenSeparierendeclare ende%,mm1&,mm2&,mm3&,a$,b$,c$,box&,m%
Set("ListDel",chr$(8))
mm1&=create("grid",3,1)
mm2&=create("grid",3,1)
mm3&=create("grid",3,1)
cls
a$="Feld1;0;100;Feld2;0;100;Nummer;0;70"
box&=create("gridbox",%hwnd,a$,1,10,10,280,400)
m%=1
whilenot m% > 4
a$="vbn"+chr$(8)+"tzu"+chr$(8)+str$(m%)
b$="777"+chr$(8)+"aaaa"+chr$(8)+str$(m%)
c$="ssssss"+chr$(8)+"00000"+chr$(8)+str$(m%)
addstring(mm1&,a$)
addstring(mm2&,b$)
addstring(mm3&,c$)
inc m%
wend
whilenot ende%
MoveHandleToList(mm1&)
MoveListToHandle(box&)
sleep 1000
clearlist box&
clearlist
MoveHandleToList(mm2&)
MoveListToHandle(box&)
sleep 1000
clearlist box&
clearlist
MoveHandleToList(mm3&)
MoveListToHandle(box&)
sleep 1000
clearlist box&
clearlist
waitinput 20
wend
Nochmals vielen Dank an H.Brill. Aus seinem Code, kann ich wieder was dazulernen.
Servus Georg |
|
|
| |
|
|
|
|
H.Brill | Du kannst auch die Listen, die mit @Create(...) erzeugt werden, verwenden. Da gibt es ja zwei Stück : KompilierenMarkierenSeparieren Mit den normalen Befehlen für Listen und Gridbox kann man diese bearbeiten oder mit : KompilierenMarkierenSeparieren zum Sortieren etc. in die interne Listboxliste schieben und wieder zurück. Du bekommst ja von den @Create() Funktionen immer ein Handle zurück.
Die neuen Move - Funktionen der Subscriptions-Version X3 bieten da noch mehr Möglichkeiten (z.B. für das Sortieren nach Spalten einer Gridbox). |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 24.05.2015 ▲ |
|
|
|
|
GDL | Hallöle H.Brill,
vielen Dank für deine Antwort. Ich habe im Eingangspost vergessen zu schreiben, dass ich die Listen selben Typs gleichzeitig brauche. Also 3 Gridlisten gleichzeitig.
Nur habe ich das Problem, dass der Movelist... Befehl nur die interne Gridliste unterstützt.
Es geht also der 2te Parameter ab.
So in etwa wäre super: KompilierenMarkierenSeparieren und dann je nachdem, welche Liste ich nun brauche mit z.B. "MoveListToHandle(liste2&,handle der Gridbox)" Nur leider hat der Movelisttohandle Befehl diese Option nicht.
Grüßle Georg |
|
|
| |
|
|
|
H.Brill | Die interne Gridliste dient ja nur als Zwischenspeicher für MoveListToHandle. Mit ClaerList kannst du ja zwischendurch die interne Listboxliste löschen. Die Listen bzw. Gridboxen kannst du ja als Handle in einem int-Array speichern.
Komt jetzt darauf an, was du vorhast. Oder willst du von Dateien lesen, wie in Franks Listview.dll ?
Da wäre sowas interessant : KompilierenMarkierenSeparierenDeclare Memory memo
Def @MoveMemToList(2) @MoveStrToList(Char$(@&(1), 0, @&(2)), Chr$(0))' speicher, größe
Dim memo, 100
String memo, 0 = "Hallo ", "du ", "da !"
Cls
MoveMemToList(memo, SizeOf(memo))
@Listbox$("Strings", 1)
Print @MoveStrToList(Char$(memo, 0, sizeof(memo)), chr$(0))
Waitkey
Dispose memo
End
im Zusammenhang mit ReadText und als Trenner mit Chr$(13) + Chr$(10) dürfte das auch gehen. Da hätte man was, wie CsvToListview() und ReadFileQuick(). |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 24.05.2015 ▲ |
|
|
|
|
GDL | Hi,
genau Zwischenspeicher trifft es. Ich bräuchte ohne String oder Array Umweg 3 Zwischenspeicher die mit einem Rutsch in eine Gridbox je nach Bedarf gelesen werden. Die 3 Zwischenspeicher nehmen Werte von 3 Geräten an der Rs232 auf. Da gibt es aber keine vorgegebene Reihenfolge. Die Werte kommen weder in vorgebener Reihenfolge noch steht die Datenmenge konstant fest. Jeder Zwischenspeicher speichert solange bis der Wert 255 kommt. Dann wird übergeben an Grid und weiterverarbeitet, während der Zwischenspeicher schon wieder aufnimmt.
Bei Versuchen stellte sich die Stringliste in Verbindung mit dem Moveto Befehl als am schnellsten raus.
Grüßle Georg |
|
|
| |
|
|
|
H.Brill | Die Werte kommen also lose und hintereinander bis Wert 255 an ? Also müßte man noch separieren, was die Anzahl Spalten des Grid anbetrifft. Schreibst du das dann in eine einzige Gridbox oder machst du je Gerät eine separate ?
Ich frage nur deshalb, um heraus zu finden, welche Liste da am besten geeignet ist. Bei der Subscription X3 kann man ja sogar offene Arrays mit Bereichen erstellen. Ein offenes Array wäre da am besten, weil die Datenmenge nicht fest steht.
Bei direkt hintereinanderliegenden Daten und keiner vorgegebenen Reihenfolge wird das aber ganz schön fummelig.
Am besten ist, wenn du mir so einen Datenstrom mal zeigen könntest. Vier Augen sehen meist mehr als zwei. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 25.05.2015 ▲ |
|
|
|
|
GDL | Hallöle,
hab dir ne PN geschrieben. Ich kann das telefonisch besser rüberbringen.
Grüßle Georg |
|
|
| |
|
|
|
H.Brill | Naja, ohne Kenntnisse der sendenden Hardware, oder auch wenn man diese nicht hat, wird es sowieso sehr schwierig. Es sei denn, man hat die Hardware z.B. mit einem AVR selbst gebaut und programmiert. Da kann man dann selber Einfluß auf die Ausgaben nehmen. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 25.05.2015 ▲ |
|
|
|
|
GDL | Hi,
ich habe es jetzt mit "Umschaufeln" gelöst. Da ja im Moment nicht zu viele Daten auflaufen, spielt die Zeit bei meiner Kassenanwendung keine große Rolle. Selbige Lösung ist aber für meine Modellbahnsteuerung zu langsam. Da lasse ich es im Moment so wie es ist. KompilierenMarkierenSeparierendeclare ende%,mm1&,mm2&,mm3&,a$,b$,c$,box&,m%
Set("ListDel",chr$(8))
mm1&=create("grid",3,1)
mm2&=create("grid",3,1)
mm3&=create("grid",3,1)
cls
a$="Feld1;0;100;Feld2;0;100;Nummer;0;70"
box&=create("gridbox",%hwnd,a$,1,10,10,280,400)
m%=1
whilenot m% > 4
a$="vbn"+chr$(8)+"tzu"+chr$(8)+str$(m%)
b$="777"+chr$(8)+"aaaa"+chr$(8)+str$(m%)
c$="ssssss"+chr$(8)+"00000"+chr$(8)+str$(m%)
addstring(mm1&,a$)
addstring(mm2&,b$)
addstring(mm3&,c$)
inc m%
wend
whilenot ende%
MoveHandleToList(mm1&)
MoveListToHandle(box&)
sleep 1000
clearlist box&
clearlist
MoveHandleToList(mm2&)
MoveListToHandle(box&)
sleep 1000
clearlist box&
clearlist
MoveHandleToList(mm3&)
MoveListToHandle(box&)
sleep 1000
clearlist box&
clearlist
waitinput 20
wend
Nochmals vielen Dank an H.Brill. Aus seinem Code, kann ich wieder was dazulernen.
Servus Georg |
|
|
| |
|
|
|
Jörg Sellmeyer | Mal ne Frage: warum hast du da jeweils ein Sleep 1000 eingebaut? Das bremst das Programm doch unnötig aus. Oder geht es dir nur drum, dein Programm anschaulich zu machen? |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 25.05.2015 ▲ |
|
|
|
|
GDL | Hallöle Jörg,
das war nur nen Testschnippsel zum Guggen ob es geht.
Grüßle Georg |
|
|
| |
|
|
|
| Dafür besser waitinput 1000, sleep kann täuschen weil der Prozess wohlmöglich keine Zeit hat anzuzeigen was Du zuvor angewiesen hast.
Besser: mySleep(1000) KompilierenMarkierenSeparieren |
|
|
| |
|
|