For .. Next-Schleife in Gadget ausgeben

Anfängerfragen zum Programmieren mit PureBasic.
WeEf
Beiträge: 36
Registriert: 14.12.2004 23:12
Wohnort: Remscheid
Kontaktdaten:

For .. Next-Schleife in Gadget ausgeben

Beitrag 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
PureBasic 4.31
Windows 7

Gruß WeEf
Es ist noch kein Meister vom Himmel gefallen - vielleicht sind auch gar keine oben
Benutzeravatar
Helmut
Beiträge: 162
Registriert: 20.09.2004 22:53

Beitrag 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.
mipooh
Beiträge: 226
Registriert: 12.12.2004 04:49
Kontaktdaten:

Beitrag von mipooh »

Vielleicht suchst Du nach AddGadgetColumn...
Gruss
Mipooh
WeEf
Beiträge: 36
Registriert: 14.12.2004 23:12
Wohnort: Remscheid
Kontaktdaten:

Beitrag 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!
PureBasic 4.31
Windows 7

Gruß WeEf
Es ist noch kein Meister vom Himmel gefallen - vielleicht sind auch gar keine oben
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag 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 ;)
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Re: For .. Next-Schleife in Gadget ausgeben

Beitrag 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.
Zuletzt geändert von rolaf am 03.04.2005 11:44, insgesamt 3-mal geändert.
:::: WIN 10 :: PB 5.73 :: (x64) ::::
WeEf
Beiträge: 36
Registriert: 14.12.2004 23:12
Wohnort: Remscheid
Kontaktdaten:

Beitrag 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.
PureBasic 4.31
Windows 7

Gruß WeEf
Es ist noch kein Meister vom Himmel gefallen - vielleicht sind auch gar keine oben
WeEf
Beiträge: 36
Registriert: 14.12.2004 23:12
Wohnort: Remscheid
Kontaktdaten:

Re: For .. Next-Schleife in Gadget ausgeben

Beitrag 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.
PureBasic 4.31
Windows 7

Gruß WeEf
Es ist noch kein Meister vom Himmel gefallen - vielleicht sind auch gar keine oben
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Re: For .. Next-Schleife in Gadget ausgeben

Beitrag 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)
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Re: For .. Next-Schleife in Gadget ausgeben

Beitrag 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.
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Antworten