Seite 1 von 2

For .. Next-Schleife in Gadget ausgeben

Verfasst: 02.04.2005 17:25
von WeEf
Hallo,
ich möchte in die untere Reihe, die in einem Gadget angezeigt werden soll, die Schleife For k = 1 to 10 .... einbauen. Mein Problem ist, dass diese nicht in die gleiche Reihe eingefügt wird, sondern in weitere Reihen.
(Die Werte vor der Schleife sollen einmal erscheinen, dann die nächsten 10 Spalten mit den Zahlen(k,i) gefüllt und erst dann eine neue Reihe begonnen werden)
Ausserdem sollen die Zahlenwerte im gesamten Gadget rechtsbündig erscheinen.
Besten Dank für Eure Hilfe!
WeEf

Code: Alles auswählen

AddGadgetItem(0, -1, Str(LfdNr(i)) + Chr(10) + Str(Tag(i)) + Chr(10) + Str(Monat(i)) + Chr(10) + Str(Jahr(i)))
For k = 1 To 10
  AddGadgetItem(0, -1, Chr(10) + Str(Zahlen(k, i)))
Next

Verfasst: 02.04.2005 22:53
von Helmut
@meister
Deine Erklärung ist schon schwierig, dein Code nicht vollstandig, wunderst du dich wenn du keine gewünschte Antwort bekommst?
Der dir helfen soll muss erst deine Variablen definieren usw.
Kopiere doch nur mal deinen geposteten Code in ein neues Arbeitsblatt von Purebasic und schaue dir an was da passiert. Der Code wird schon nicht in die Zeile passen.
Schau dir doch die anderen Codes, die du so hier siehst an, stehen die in einer Zeile? WARUM.....
Das ist doch übersichtlicher.
Schwierig wird's von allein.
Ich hab auch nicht so die Ahnung von gutem Programmiersyntax, aber so würde ich es nicht machen.
Also poste es komplett, dann wird dir schon geholfen.

Verfasst: 03.04.2005 03:40
von mipooh
Vielleicht suchst Du nach AddGadgetColumn...
Gruss
Mipooh

Verfasst: 03.04.2005 10:49
von WeEf
Helmut hat geschrieben:@meister
Deine Erklärung ist schon schwierig, dein Code nicht vollstandig, wunderst du dich wenn du keine gewünschte Antwort bekommst?
Der dir helfen soll muss erst deine Variablen definieren usw.
Kopiere doch nur mal deinen geposteten Code in ein neues Arbeitsblatt von Purebasic und schaue dir an was da passiert. Der Code wird schon nicht in die Zeile passen.
Schau dir doch die anderen Codes, die du so hier siehst an, stehen die in einer Zeile? WARUM.....
Das ist doch übersichtlicher.
Schwierig wird's von allein.
Ich hab auch nicht so die Ahnung von gutem Programmiersyntax, aber so würde ich es nicht machen.
Also poste es komplett, dann wird dir schon geholfen.
Hallo Helmut,
wahrscheinlich habe ich mich wirklich nicht verständlich ausgedrückt.
Tatsache ist, dass das Programm einwandfrei läuft, wenn ich statt der Schleife die Werte einzeln einlese, also Zahl(1,i), Zahl(2,i) usw.
In meinem schlechten Codebesispiel werden die Werte vor der For...Next - Schleife in eine Zeile eingelesen, die Variablen in der Schleife aber nicht mehr. Der Fehler muß demnach vermutlich in diesem Codeschnipsel liegen.
Leider kann ich aus bestimmten Gründen den gesamten Code nicht posten. Ich entwickle hobbymäßig Lottosysteme, die Programme hierzu möchte ich nicht öffentlich preisgeben. Es kommt mir also nur darauf an, dass die Werte in der gleichen Zeile im Gadget stehen.
(Der Code soll natürlich nicht in einer Reihe stehen, sondern übersichtlicher angeordnet werden. Ich habe den aber einfach aus dem Programm kopiert und die Variablennamen geändert und unnützes herausgenommen)
Ich hoffe, dass mir nun jemand helfen kann, auch ohne ins Detail gehen zu müssen.
Danke!

Verfasst: 03.04.2005 11:28
von freedimension
Zeig mal an einem Beispiel wie das Endergebnis aussehen soll!

Den Code oben habe ich mal etwas umformatiert damit er besser lesbar ist ;)

Re: For .. Next-Schleife in Gadget ausgeben

Verfasst: 03.04.2005 11:41
von rolaf
Hallo WeEf!

Wenn Du die 10 Zahlenwerte in eine Zeile bringen willst, versuch das folgende.

Code: Alles auswählen

AddGadgetItem(0, -1, Str(LfdNr(i)) + Chr(10) + Str(Tag(i)) + Chr(10) + Str(Monat(i)) + Chr(10) + Str(Jahr(i)))
Zeile.s=""
For k = 1 To 10
  Zeile = Zeile + Str(Zahlen(k, i))
  if k < 10
    Zeile = Zeile + Chr(10)
  endif
Next
AddGadgetItem(0, -1,Zeile)
Das bei Dir alle in 10 Spalten kam ist klar, da Du 10 mal AddGadgetItem aufgerufen hast, für jede Zahl einmal. Du willst aber alles in eine Zeile (wenn ich es richtig verstanden habe). Also erst diese Zeile bilden und dann per AddGadgetItem in die Tabelle einfügen.

Verfasst: 03.04.2005 11:41
von WeEf
freedimension hat geschrieben:Zeig mal an einem Beispiel wie das Endergebnis aussehen soll! Code oben habe ich mal etwas umformatiert damit er besser lesbar ist ;)
Hallo,
ich habe die hier hochgeladen, um im Forum keine Werbung für mich zu machen:

http://rapidshare.de/files/1112469/Beispiel.doc.html

(Komischerweise wird gemeldet, wenn ich die Datei laden will, sie sei nicht da. Wenn ich sie aber speichere und dann öffne, geht das einwandfrei)

Was mich ausserdem noch stört, eigentlich sollen die Zahlen rechtsbündig stehen.

Re: For .. Next-Schleife in Gadget ausgeben

Verfasst: 03.04.2005 12:36
von WeEf
Falo hat geschrieben:Hallo WeEf!

Wenn Du die 10 Zahlenwerte in eine Zeile bringen willst, versuch das folgende.

Code: Alles auswählen

AddGadgetItem(0, -1, Str(LfdNr(i)) + Chr(10) + Str(Tag(i)) + Chr(10) + Str(Monat(i)) + Chr(10) + Str(Jahr(i)))
Zeile.s=""
For k = 1 To 10
  Zeile = Zeile + Str(Zahlen(k, i))
  if k < 10
    Zeile = Zeile + Chr(10)
  endif
Next
AddGadgetItem(0, -1,Zeile)
Das bei Dir alle in 10 Spalten kam ist klar, da Du 10 mal AddGadgetItem aufgerufen hast, für jede Zahl einmal. Du willst aber alles in eine Zeile (wenn ich es richtig verstanden habe). Also erst diese Zeile bilden und dann per AddGadgetItem in die Tabelle einfügen.
Hallo Falo,
da Du ja weißt, was ich will, dafür kennen wir uns lange genug, danke ich Dir für die Hilfe.
Das Problem wird dadurch aber nicht behoben. Die Daten aus der Schleife erscheinen eine Zeile tiefer als die Datumsdaten. Die müssen aber in der gleichen Zeile stehen.

Re: For .. Next-Schleife in Gadget ausgeben

Verfasst: 03.04.2005 12:40
von freedimension
WeEf hat geschrieben:Die Daten aus der Schleife erscheinen eine Zeile tiefer als die Datumsdaten. Die müssen aber in der gleichen Zeile stehen.
Argh, sag doch gleich was du willst ;)

So oder so ähnlich (ich hab's nicht ausprobiert) müsste es tun:

Code: Alles auswählen

z.s = Str(LfdNr(i)) + Chr(10) + Str(Tag(i)) + Chr(10) + Str(Monat(i)) + Chr(10) + Str(Jahr(i))
For k = 1 To 10
  z.s + Chr(10) + Str(Zahlen(k, i))
Next
AddGadgetItem(0, -1, z.s)

Re: For .. Next-Schleife in Gadget ausgeben

Verfasst: 03.04.2005 13:08
von rolaf
Hallo WeEf,

Freedim hat es ja bereits bestens gelöst. Im Prinzip mußt Du immer darauf achten, das Du für alles was in eine Zeile soll erstmal einen String mit allen Werten erstellst und diesen erst dann mit AddGadgetItem einfügst. Denn jeder Aufruf startet eine neue Zeile.