Seite 2 von 4
Verfasst: 06.07.2005 20:40
von Batze
Ich glaube es bringt leider auch kaum etwas wenn wir dir die Lösung vorgeben.
Lies erstmal ein par Tutorials und versuch sie zu verstehen, bevor du dich an ein Projekt wagst.
Zumindest solltest du dir die Beispieldateien in der Hilfe ansehen und zu verstehen versuchen.
Verfasst: 06.07.2005 20:44
von R4z0r1989
die Beisspiele hab ich mir schon angesehen.
und gibt es irgendwo ein Tutorial mit open und save.
Wenn ja Danke.
Verfasst: 06.07.2005 20:52
von Batze
(kennst du das: ? -> Das nennt sich "Fragezeichen"
)
Ja gibt es:
1. Starte
PureBasic.
2. Öffne die
Hilfe.
3. Wähle
File.
4. Da unten steht
"Beispiel: File.pb".
5. Das
liest du.

Verfasst: 06.07.2005 20:57
von R4z0r1989
muss ich das kapieren was du jetzt damit meinst????????????????
da ist kein save oder open requester drin.
Verfasst: 06.07.2005 20:59
von ts-soft
Badboy99 hat geschrieben:muss ich das kapieren was du jetzt damit meinst????????????????
da ist kein save oder open requester drin.
Wähle Requester anstatt von File und Du wirst fündig werden
Verfasst: 06.07.2005 21:01
von Batze
Du hast ja auch nichts von einem Requester gesagt.
Guck doch mal in der Hilfe bei
Requester.

Ich dachte du hättest dir die Beispiele angeguckt.
Edit: Oh es weiß noch jemand.
Verfasst: 06.07.2005 21:04
von R4z0r1989
soviel so gut aber ich habe mir das jetzt 70 mal durchgelesen, und ich kapiere es immer noch nicht.
und jetzt nochmal zu der Frage ob es das so speichern würde wie ich es in meinem LED-Anzeige eingebe.
Verfasst: 06.07.2005 21:18
von Batze
Du kannst eine Schleife erstellen wie die am Anfang für das Laden.
Code: Alles auswählen
Dim LEDs.l(87, 39)
file.s = OpenFileRequester("Öffnen", "", "Leddateien|*.LED", 0)
OpenFile(0, file)
; LEDs aus Datsection einlesen
For j = 1 To 25
For i = 1 To 50
LEDs(i, j) = ReadLong()
Next
Next
CloseFile(0)
InitSprite()
OpenWindow(0, 0, 0, 50 * 10 + 7, 25 * 10 + 7, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "LED-Test")
OpenWindowedScreen(WindowID(0), 0, 0, 50 * 10 + 6, 25 * 10 + 6, 0, 0, 0)
Repeat
ClearScreen(0,0,0)
StartDrawing(ScreenOutput())
; LEDs anzeigen
For i = 1 To 50
For j = 1 To 25
; Wenn an der Position im Array eine 1 steht
If LEDs(i, j) = 0
Color = RGB(0,0,0) ; Schwarz
EndIf
If LEDs(i, j) = 1
Color = RGB(255,0,0) ; Rot
EndIf
If LEDs(i, j) = 2
Color = RGB(0,255,0) ; Grün
EndIf
; LED anzeigen
Circle(i * 10, j * 10,5, Color.l)
Next
Next
StopDrawing()
FlipBuffers()
Select WindowEvent()
Case #PB_EventCloseWindow
file.s = SaveFileRequester("Speichern", "", "Leddateien|*.LED", 0) ; Neuer Dateityp ist doch praktisch :)
CreateFile(0, file)
For j = 1 To 25 ; Die hast du auch am Anfang !
For i = 1 To 50
WriteLong( LEDs(i, j) )
Next
Next
Break
; Wenn die linke Maustaste gedrückt wurde
Case #WM_LButtonDown
; Berechne die Position der LED anhand der Mauskoordinaten
x.l = WindowMouseX() / 10-7/50
y.l = WindowMouseY() / 10-7/25
; Ändere den Wert an dieser Stelle
LEDs(x, y) ! 1
EndSelect
Delay(1)
ForEver
Wenn du das vestehst kannst du ja noch ein Menü zum Speichern und Laden erstellen.
Am Anfang musst du dir noch ne .LED Datei erstellen. Da muss nichts drinstehen!

Verfasst: 06.07.2005 21:31
von R4z0r1989
Es hat irgendeinen Fehler.
Es öfnet scheinbar die section, aber es ist nicht richtig, denn es zeigt einfach gar nichts an.
und das zweite man kann mit der Maus nicht die Farben verändern.
und daher ist das Speichern in dem Moment sinnlos.
Verfasst: 06.07.2005 21:42
von Batze
Also:
Als ich das ausprobiert habe zeigte er erstmal garnichts an.
Klar, denn ich hatte eine leere Datei geööfnet also war nichts drin.
Dann kannst du aber die Leds anschalten und beim Beenden wird gespeichert.
Wenn du das Programm beim nächsten mal startest kannst du die gespeicherte Datei öffnen und weiterverändern.
Bei mir funktionierts
Hier ein Beispiel zum runterladen und angucken.