Idee: Kalender

Anfängerfragen zum Programmieren mit PureBasic.
>gLoo
Beiträge: 7
Registriert: 08.07.2006 15:34
Wohnort: trigger_hurt
Kontaktdaten:

Idee: Kalender

Beitrag von >gLoo »

Guten Tag.

Ich bin der totale Anfänger (habe die letzte Woche über ein paar Tuts gelesen), bin aber total erstaunt darüber, wie schnell man Erfolge erziehlen kann.

Ich habe mit den paar Befehlen, die ich nun schon kenne schon ein bisschen rumprobiert und würde nun gerne ein etwas größeres (für meine Verhältnisse :roll:) Projekt angehen.

Die Idee war, mir eine Art Kalender zu machen, der mich zum Beispiel an Termine erinnert etc.
Es stellen sich mir nun aber zwei (größere) Probleme in den Weg.

1) Wie kann ich Informationen importieren?
ich müsste ja das Programm wissen lasse, welcher Tag es ist und am Besten noch, wie spät es ist.
(wäre nicht ganz optimal, wenn ich dem Programm erst sagen muss, welcher Tag es ist und wie spät es ist, nur damit mir dann gesagt wird, ob ich was vor habe :P)

Mein Gedanke ist halt der, dass Windows ja "weiß", wie spät es ist. Ich müsste halt nur irgendwie an die Info kommen.

2) Wie benenne ich den ganzen Kram sinnvoll?
ist ja klar, dass ich nicht 365 Tage von Hand benenne...
ich habe da von mehrdimensionalen Arrays gelesen und wollte nur fragen, ob das eine sinnvolle Idee wäre, bevor ich mir die Arbei um sonst mache.
Also so nach dem Motto:

Code: Alles auswählen

dim ArrayName.Typ(wochentag$, Tag, Monat$[, Zeit])
also so in die Richtung habe ich mir das gedacht...

nun die Frage an euch: Meint ihr, dass das für einen Anfänger wie mich umsetzbar ist oder sollte ich mir lieber was einfacheres ausdenken? :)

Vielen Dank für eure Hilfe (im Vorraus)!


Eine Frage am Rande noch.
wenn ich mit ButtonGadget einen Button erstelle, dann sieht der gelinde gesagt kacke aus ^^
Kann mir einer sagen, wie ich den so xp-mäßig aussehen lassen kann?
Benutzeravatar
Alves
Beiträge: 1208
Registriert: 19.04.2006 18:24
Kontaktdaten:

Beitrag von Alves »

1. In der Hilfe mal nach Date() suchen, evtl auch Month(), Day(), etc.

2. In den Compileroptionenn einstellen: "Enable XP-Skin Support" musste Häkchen setzen.
>gLoo
Beiträge: 7
Registriert: 08.07.2006 15:34
Wohnort: trigger_hurt
Kontaktdaten:

Beitrag von >gLoo »

Alves hat geschrieben:2. In den Compileroptionenn einstellen: "Enable XP-Skin Support" musste Häkchen setzen.
Vielen Dank schon mal. Das ist, was ich wollte :)
Alves hat geschrieben:1. In der Hilfe mal nach Date() suchen, evtl auch Month(), Day(), etc.
Die Hilfe sagt dazu:
Die Hilfe hat geschrieben:Syntax

Ergebnis = Month(Datum)
Beschreibung

Gibt den Monats-Wert des angegebenen 'Datum's zurück. Das Ergebnis liegt immer zwischen 1 und 12.

Code: Alles auswählen

Debug Month(Date(2002, 10, 3, 0, 0, 0))  ; gibt '10' aus.
da bin ich ja schon mal einen Schritt weiter... aber ich wieß immer noch nicht, wo ich die "Angabe" herbekomme. Also ich meine, so weiß das Programm doch immer noch nicht, welcher Monat es ist, oder?
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Na, für den Anfang solltest du dir bestimmte Sachen im kleinen ausprobieren und dann nach und nach ein grösseres Projekt daraus zusammen setzen.

1. Fenster und Menu erzeugen und Events abfragen. (WaitWindowEvent, etc)
2. Wie lese, schreibe und erzeuge ich Dateien (OpenFile, CreateFile, etc)
3. Wie verarbeitet PB Datum und Uhrzeit (Date(), FormatDate(), etc.)

Besonders wichtig halte ich das man auch Kommentare gleich in sein Programmcode schreibt. Sonst weiss man selber irgendwann nicht mehr was man da eigendlich geschrieben hat.

Strukturiert Programmieren!!!

Code: Alles auswählen

; Kommentar

; Strukturen
Structure xy
 
EndStructure

; Globale Listen
Global NewList Users.l()

; Globale Variablen
Global Exit
Global Info

; Procedureen
Procedure xyz()

  ; Locale Variablen
  Protected dx,dy,dz
  Static ID
 
  ; Programmcode
 
EndProcedure

; Hauptprogrammcode

End
Für sich selber ein paar Regeln festlegen für die Vergabe der Namen von Variablen und Proceduren, etc.

Viel Spass noch beim programmieren und ausprobieren.

FF
:wink:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
>gLoo
Beiträge: 7
Registriert: 08.07.2006 15:34
Wohnort: trigger_hurt
Kontaktdaten:

Beitrag von >gLoo »

mk-soft hat geschrieben:1. Fenster und Menu erzeugen und Events abfragen. (WaitWindowEvent, etc)
2. Wie lese, schreibe und erzeuge ich Dateien (OpenFile, CreateFile, etc)
3. Wie verarbeitet PB Datum und Uhrzeit (Date(), FormatDate(), etc.)
Punkt 1 habe ich jetzt schon mal ein bisschen probiert und mit ein paar verschiedenen Varianten rumgetestet.
Punkt 2 habe ich schon was drüber gelesen aber noch nichts mit gemacht.

Dazu kam mir dann eine Frage in den Kopf.
Wenn ich jetzt zum Beispiel einen Eintrag in meinen Kalender haben möchte, der mir zB sagt, dass ich am 2. August zu einem Geburtstag muss.
Dann mache ich den Eintrag und schließe das Programm und der Eintrag ist weg, oder? Muss ich so eine Info dann über das Schließen des Programms hinaus in einer "externen" Datei speichern?
Das ich zB mit dem Eintrag zusammen eine *.txt Datei erschaffe, die ich dann ggf. auslese?
Oder gibt es da eine schnellere/platzsparendere Methode?

Zu 3.: Genau das ist ja das Problem: darüber weiß ich nichts. Hat da jemand ein Link zu einem Tut oder sowas?


btw, schön zu sehen, wie schnell hier die Antworten kommen. Ich brauch ja fast nur F5 zu drücken :mrgreen:
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

@gLoo:

Zum Thema Datum:

> aber ich wieß immer noch nicht, wo ich die "Angabe" herbekomme.

die Angabe ist optional (erkennbar an den eckigen Klammern). D.h., Du
kannst sie angeben, musst es aber nicht.

Wenn Du Date() ausgibst, dann bekommst Du eine lange Zahl zurück:

Code: Alles auswählen

Debug Date() ; -> 1152376869
Wenn Du das in ein lesbares Datumsformat konvertieren möchtest, dann
kannst Du FormatDate() verwenden.

Auszug aus der Hilfe-Datei:

Code: Alles auswählen

Debug FormatDate("J=%yyyy, M= %mm, T=%dd", Date()) ; zeigt das aktuelle Datum in  der Form "J=2002, M=10, T=03"

Debug FormatDate("%hh:%ii:%ss", Date())  ; zeigt die aktuelle Zeit mittels dem 00:00:00 Format
a²+b²=mc²
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Die Purebasic Hilfe ist sehr gut geschrieben. Vielleicht mal reinschauen

- DateGadget() -> GetGadgetState() vor vor schliessen aufrufen -> FormatDate(...)
- Part Date() durchlesen.

Code: Alles auswählen

Datum.l = Date()
Debug FormatDate("%yyyy.%mm. %dd %hh:%ii:%ss", Datum)
FF :wink:

(edit) Mist, zu langsam
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
>gLoo
Beiträge: 7
Registriert: 08.07.2006 15:34
Wohnort: trigger_hurt
Kontaktdaten:

Beitrag von >gLoo »

hehe

vielen Dank noch mal (euch beiden)
Heute habe ich leider keine Zeit mehr... aber dann habe ich ja morgen wieder was zum Lesen und Testen :)


ich werde mich sicher wieder melden ;)
Benutzeravatar
uweb
Beiträge: 461
Registriert: 13.07.2005 08:39

Beitrag von uweb »

Ein kleiner Tipp für die 2. Version :

In der ct 13/2006 war ein Artikel "Im Gleichtakt - Wie SyncML funktioniert".
Es geht dabei um den Standard für Adress- und Termindatenabgleich.
Über google müstest Du aber auch sonst noch einiges zum Thema finden.

Mit PBOSL - http://pbosl.purearea.net/ kann man auch prima XML.
>gLoo
Beiträge: 7
Registriert: 08.07.2006 15:34
Wohnort: trigger_hurt
Kontaktdaten:

Beitrag von >gLoo »

ich komm schon in pure basic kaum klar :lol:

ich bin froh, wenn ich das so umsetzten kann, wie ich mir das denke...

aber trotzdem danke für deine Hilfe. :allright:
Antworten