Images Drucken

Für Fragen von Einsteigern und Programmieranfängern...
Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Images Drucken

Beitrag von Maik81ftl »

pluto hat geschrieben:So wie ich es verstanden habe, soll ja für jeden Tag im Jahr ein Eintrag sein im Kalender.
Jopp! werd nun doch via TDrawGrid schreiben, mal sehen, ob i die Direkte ansteuerung des ColRow hinbekomme.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

baba
Beiträge: 265
Registriert: Mi 4. Apr 2007, 17:47

Re: Images Drucken

Beitrag von baba »

pluto hat geschrieben:So wie ich es verstanden habe, soll ja für jeden Tag im Jahr ein Eintrag sein im Kalender.
.. was ist los Pluto, stehst Du auf der Leitung?

Code: Alles auswählen

Schleife 01.01 bis 31.12 do
   Canvas.Zeichne Kalendereintrag für jeden Tag - Datum, Tag, usw. (OnClick Ereignis)
   Array.Suche(Schleife.Datum) - Ja - dann zusätzlich das Ereignis ausgeben/zeichnen.
Next
Das ist doch sowas von simpel.

Baba.

Beispiel Feiertage:
1. Es wird einfach ein Kalender gezeichnet
2. Während des Zeichnens: Berechnung - ist das Datum ein Feiertag? Info ausgeben.

Ein Grid zu nehmen ist wenig sinnvoll, da dieses für den Ausdruck nicht nutzbar ist. Eine Canvas ist für Screen und Printer gleich, es muss nur die Auflösung angepasst werden.

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Images Drucken

Beitrag von pluto »

Beispiel Feiertage:
1. Es wird einfach ein Kalender gezeichnet
2. Während des Zeichnens: Berechnung - ist das Datum ein Feiertag? Info ausgeben.

Ein Grid zu nehmen ist wenig sinnvoll, da dieses für den Ausdruck nicht nutzbar ist. Eine Canvas ist für Screen und Printer gleich, es muss nur die Auflösung angepasst werden.
Ein Grid zeichnet glaube ich auch auf den Canvas. Also kann man es auch ganz einfach drucken. Ein Kalneder zu zeichnen ist überhaupt kein Problem. Aber es wäre langweilig, wenn hier jeder gleich dutzende Beispiele Posten würde, die alle 100%ig gehen würde oder?

Der Sinn ist es ja, dass jeder selbst herausfinden wie sowas geht. Ich könnte auch innerhalb weniger Minuten ein Kalender mit Feiertagen, Mondphasen und Sternzeichen auf den Canvas Malen lassen. Aber wozu? Meine Projekte sind andere.
MFG
Michael Springwald

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Images Drucken

Beitrag von Maik81ftl »

pluto hat geschrieben:
Beispiel Feiertage:
1. Es wird einfach ein Kalender gezeichnet
2. Während des Zeichnens: Berechnung - ist das Datum ein Feiertag? Info ausgeben.

Ein Grid zu nehmen ist wenig sinnvoll, da dieses für den Ausdruck nicht nutzbar ist. Eine Canvas ist für Screen und Printer gleich, es muss nur die Auflösung angepasst werden.
Ein Grid zeichnet glaube ich auch auf den Canvas. Also kann man es auch ganz einfach drucken. Ein Kalneder zu zeichnen ist überhaupt kein Problem. Aber es wäre langweilig, wenn hier jeder gleich dutzende Beispiele Posten würde, die alle 100%ig gehen würde oder?

Der Sinn ist es ja, dass jeder selbst herausfinden wie sowas geht. Ich könnte auch innerhalb weniger Minuten ein Kalender mit Feiertagen, Mondphasen und Sternzeichen auf den Canvas Malen lassen. Aber wozu? Meine Projekte sind andere.
Pluto, Da gebe ich dir recht, Generell wollt ich ja nur 'ne kleine Gedankenstütze, wie man ein Canvas druck, das es aber soweit ausartet, war nicht sin und zweck.

edit:

Danke aber erst mal riesig für den Tip mit dem TStringGrid. durch die Verwendung des TDrawGrid hab ich erst mal ü 3000 Programmzeilen eingespart.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2811
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Images Drucken

Beitrag von m.fuchs »

baba hat geschrieben:Beispiel Feiertage:
1. Es wird einfach ein Kalender gezeichnet
2. Während des Zeichnens: Berechnung - ist das Datum ein Feiertag? Info ausgeben.
Ja, aber was ist daran jetzt anders als beim Grid? Auch da prüfe ich in meinem Fall beim Zeichnen, ob der Tag markiert werden soll oder nicht und setze dann eine entsprechende Hintergrundfarbe.
baba hat geschrieben:Ein Grid zu nehmen ist wenig sinnvoll, da dieses für den Ausdruck nicht nutzbar ist. Eine Canvas ist für Screen und Printer gleich, es muss nur die Auflösung angepasst werden.
Natürlich hat auch ein Grid ein Canvas. Wenn also nur das notwendig ist, geht es genauso. ABER: Das Grid hat auch noch Vorteile. Zum Beispiel die Möglichkeit recht einfach einen Mausklick einer Zelle zuordnen zu können. Scrollleisten falls der Kalender mal zu lang/breit wird. Etc. etc.
Daher ist eine pauschale Aussage wenig sinnvoll. Es kommt immer auf den Anwendungsfall an.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

baba
Beiträge: 265
Registriert: Mi 4. Apr 2007, 17:47

Re: Images Drucken

Beitrag von baba »

m.fuchs hat geschrieben: Ja, aber was ist daran jetzt anders als beim Grid? Auch da prüfe ich in meinem Fall beim Zeichnen, ob der Tag markiert werden soll oder nicht und setze dann eine entsprechende Hintergrundfarbe.

Natürlich hat auch ein Grid ein Canvas. ...
... lassen wir es, ihr müsst es so machen wie ihr es könnt. Denkt mal über folgendes nach ...

Code: Alles auswählen

schleife start
   meine_funktion_Zeichne_Tag(PosX, PosY, Screen.Canvas, Farbe, Ereignis, ...);
   ODER
   meine_funktion_Zeichne_Tag(PosX, PosY, Form.Canvas, Farbe, Ereignis, ...);
   ODER
   meine_funktion_Zeichne_Tag(PosX, PosY, Panel.Canvas, Farbe, Ereignis, ...);
   ODER
   meine_funktion_Zeichne_Tag(PosX, PosY, Printer.Canvas, Farbe, Ereignis, ...);
end;
... es ist immer dieselbe Funktion, egal wo sie zeichnet. Was hat das nun mit "Grid.Cells[x, y].canvas" zu tun?

Sinnvoll wäre es, um "meine_funktion_Zeichne(...)" ein eigenes Object zu basteln, wo z.B. Propertys wie AUSGABE, LEFTMARGIN, TOPMARGIN, ... die Ausgabe steuern. Aber das zu erklären führt hier wohl zu weit.

Aber jetzt weiss ich wenigstens, dass sogar ein Grid eine Canvas hat und wenn das Grid gedruckt wird, kann ich bestimmt auf dem Papier den Cursor und wenn der Kalender mal zu groß wird, die Scrollleisten bewegen; ist ja schließlich auch eine Canvas. Toll. :shock:

Baba.

(Canvas=Leinwand=die, nicht ein oder der)

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2811
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Images Drucken

Beitrag von m.fuchs »

Meinst du das eigentlich alles ernst oder willst du nur trollen?
baba hat geschrieben:... es ist immer dieselbe Funktion, egal wo sie zeichnet. Was hat das nun mit "Grid.Cells[x, y].canvas" zu tun?
Es gibt kein Grid.Cells[x,y].Canvas.
baba hat geschrieben:Sinnvoll wäre es, um "meine_funktion_Zeichne(...)" ein eigenes Object zu basteln, wo z.B. Propertys wie AUSGABE, LEFTMARGIN, TOPMARGIN, ... die Ausgabe steuern. Aber das zu erklären führt hier wohl zu weit.
Zumindest möchten es vermutlich wenige auf diese herablassende Art erklärt bekommen.
baba hat geschrieben:Aber jetzt weiss ich wenigstens, dass sogar ein Grid eine Canvas hat und wenn das Grid gedruckt wird, kann ich bestimmt auf dem Papier den Cursor und wenn der Kalender mal zu groß wird, die Scrollleisten bewegen; ist ja schließlich auch eine Canvas. Toll. :shock:
Warum hast du nicht einfach ein Zeichenprogramm empfohlen um den Kalender zu zeichnen und auszudrucken? Reicht doch auch. Oder Stift und Papier?
Die Daten müssen vielleicht auch erst einmal gesammelt und am PC dargestellt werden (dazu müsste sich der OP noch mal äußern) und dafür ist ein Grid als Eingabemethode schon besser meiner Meinung nach. Natürlich hast du recht, man kann den Kalender ganz schnell und einfach selber zeichnen. Wenn es wirklich nur darum geht einen Kalender aufs Papier zu bringen der ein paar Daten enthält. Und wenn diese Daten wirklich nicht mit Hilfe eines Kalenders in das Programm eingeben werden sollen, dann sollte deine Herangehensweise völlig ausreichen.

baba hat geschrieben:(Canvas=Leinwand=die, nicht ein oder der)
Naja, diese Ableitung als 100% korrekt anzusehen, wäre mir etwas zu einfach.

Aber wie auch immer, vielleicht ist die Diskussion auch einfach zu hoch geschaukelt und dann kann man schon einmal über das Ziel hinausschießen.
Michael
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

baba
Beiträge: 265
Registriert: Mi 4. Apr 2007, 17:47

Re: Images Drucken

Beitrag von baba »

m.fuchs hat geschrieben:Es gibt kein Grid.Cells[x,y].Canvas.
... richtig, Du hast es erkannt, hätte ich garnicht erwartet!! Er muss das gesamte Grid im Ereignis "DrawCell(Sender: TObject; aCol, aRow: Integer; aRect: TRect; aState: TGridDrawState);" zeichnen. Es sei denn er will nur eine Information ala "Grid.Cells[0, 0] := 'Montag';" anzeigen.
m.fuchs hat geschrieben:Zumindest möchten es vermutlich wenige auf diese herablassende Art erklärt bekommen.
... was willst Du mir damit sagen? Er hat Anfangs 365 Image´s gezeichnet - ach so, Grundlagen sind vorhanden, also voll drauf mit OOP - aus diesem Grund würde es hier zuweit führen.
m.fuchs hat geschrieben:Die Daten müssen vielleicht auch erst einmal gesammelt und am PC dargestellt werden (dazu müsste sich der OP noch mal äußern) und dafür ist ein Grid als Eingabemethode schon besser meiner Meinung nach. Natürlich hast du recht, man kann den Kalender ganz schnell und einfach selber zeichnen. Wenn es wirklich nur darum geht einen Kalender aufs Papier zu bringen der ein paar Daten enthält. Und wenn diese Daten wirklich nicht mit Hilfe eines Kalenders in das Programm eingeben werden sollen, dann sollte deine Herangehensweise völlig ausreichen.
So ein Quatsch. Das Zeichnen und das Speichern von Daten sind zwei Schuhe. Sobald es mehrere Daten zu einem Termin sind, können diese Daten nicht in einem Grid erfasst werden. Da ist nur ein Eingabefeld! (Combobox, oder wie auch immer)

Ein Grid für seine Belange ist aus folgenden Gründen absoluter Unsinn:
1. Er benötigt für den Bildschirm und für das Drucken zwei verschiedene Routinen und muss diese auch pflegen. (Erweiterung im Kalender, ups beim Ausdruck vergessen - Fehlerquelle!)
2. Das Erfassen mehrerer Daten, direkt in einem Grid, ist nicht möglich.
3. Das Speichern, mehrerer Daten pro Zelle muss sowieso außerhalb des Grids erfolgen.

Baba.

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Images Drucken

Beitrag von Maik81ftl »

baba hat geschrieben:
m.fuchs hat geschrieben:Es gibt kein Grid.Cells[x,y].Canvas.
... richtig, Du hast es erkannt, hätte ich garnicht erwartet!! Er muss das gesamte Grid im Ereignis "DrawCell(Sender: TObject; aCol, aRow: Integer; aRect: TRect; aState: TGridDrawState);" zeichnen. Es sei denn er will nur eine Information ala "Grid.Cells[0, 0] := 'Montag';" anzeigen.
Jain. Ob der 1.1.2011 nun ein Monat oder gar ein Freitag war ist für die Tatsache, das eine Frau an diesem Tag ihre regel bekommen hat total nebensächlich
baba hat geschrieben:
m.fuchs hat geschrieben:Zumindest möchten es vermutlich wenige auf diese herablassende Art erklärt bekommen.
... was willst Du mir damit sagen? Er hat Anfangs 365 Image´s gezeichnet - ach so, Grundlagen sind vorhanden, also voll drauf mit OOP - aus diesem Grund würde es hier zuweit führen.
hast 2 unterschlagen :!: (ein image für des 29.02. und ein Image für den Hintergrund, aus den denne alles in der Druckfunction kopiert werden soll.
baba hat geschrieben:
m.fuchs hat geschrieben:Die Daten müssen vielleicht auch erst einmal gesammelt und am PC dargestellt werden (dazu müsste sich der OP noch mal äußern) und dafür ist ein Grid als Eingabemethode schon besser meiner Meinung nach. Natürlich hast du recht, man kann den Kalender ganz schnell und einfach selber zeichnen. Wenn es wirklich nur darum geht einen Kalender aufs Papier zu bringen der ein paar Daten enthält. Und wenn diese Daten wirklich nicht mit Hilfe eines Kalenders in das Programm eingeben werden sollen, dann sollte deine Herangehensweise völlig ausreichen.
So ein Quatsch. Das Zeichnen und das Speichern von Daten sind zwei Schuhe. Sobald es mehrere Daten zu einem Termin sind, können diese Daten nicht in einem Grid erfasst werden. Da ist nur ein Eingabefeld! (Combobox, oder wie auch immer)
Hier muß ich dir bedingt rechtgeben.

1) die Regel ist kein Thermin.
2) auf dem DrawGrid(c, r) werden nur folgende Daten dargestellt. a) vorhanden, b) if A then Stärke der regel.
3) Weitere Daten w.z.B. regelschmerzen, Medikamente (Schmerzmittel) und weitere Besonderheiten, werden alle in einer TStringList/Record gesammel und entsprechend zu dem Regeltag gespeichert.
baba hat geschrieben:Ein Grid für seine Belange ist aus folgenden Gründen absoluter Unsinn:
1. Er benötigt für den Bildschirm und für das Drucken zwei verschiedene Routinen und muss diese auch pflegen. (Erweiterung im Kalender, ups beim Ausdruck vergessen - Fehlerquelle!)
2. Das Erfassen mehrerer Daten, direkt in einem Grid, ist nicht möglich.
3. Das Speichern, mehrerer Daten pro Zelle muss sowieso außerhalb des Grids erfolgen.

Baba.
Das was du hier beschreibst, ist mir sehr bewust. Du meinen auch Erweiterung im Kalender.

da für mich auch die Option eines Schaltjahres dazugehört, habe ich mir da schon mit dieser kleinen Funktion abgeholfen

Code: Alles auswählen

Function TForm1.Schaltjahr: Boolean;
var B: Byte;
    C: String;
begin
     C:= DateToStr(Date);
     B:= Length(C);
     C:= C[b-1] + C[b];
     Result:= IsLeapYear(StrToInt(C));
end;
zugegeben die Grenzen habe ich hier noch nicht ausgelotet, aber da sich die Schaltjahre aller 100 Jahre wiederholen, sehe ich hier kein problem eines Fehlers.

2) hab ich schon oben beschrieben, wie das laufen soll.
3) erfolgt die Speicherung sowieso verschlüßelt in einer '*.log-Datei', Das DrawGrid ist nur zur optisch besseren Übersicht, um nicht lange suchen zu müßen, wann die letzte genau war.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

baba
Beiträge: 265
Registriert: Mi 4. Apr 2007, 17:47

Re: Images Drucken

Beitrag von baba »

Maik81ftl hat geschrieben:aber da sich die Schaltjahre aller 100 Jahre wiederholen, sehe ich hier kein problem eines Fehlers.
... das ist falsch - alle 4 Jahre!

... was Du da speichert ist egal. Wichtig ist nur, dass es sich erweitern läßt und glaube mir, diese Anforderung wird kommen. Zudem ist es wichtig eine möglichst übersichtliche, einheitliche Struktur zu bekommen. Mal eben eine Lösung im Grid, rächt sich später, da drumherum jede Menge gefriemelt werden muß.
Maik81ftl hat geschrieben:da für mich auch die Option eines Schaltjahres dazugehört, habe ich mir da schon mit dieser kleinen Funktion abgeholfen

Code: Alles auswählen

Function TForm1.Schaltjahr: Boolean;
var B: Byte;
    C: String;
begin
     C:= DateToStr(Date);
     B:= Length(C);
     C:= C[b-1] + C[b];
     Result:= IsLeapYear(StrToInt(C));
end;
Schau mal hier, dass ist sicher was für Dich: http://www.freepascal.org/docs-html/rtl ... pyear.html

Baba.
Zuletzt geändert von baba am Fr 11. Mär 2011, 14:51, insgesamt 1-mal geändert.

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Images Drucken

Beitrag von pluto »

da für mich auch die Option eines Schaltjahres dazugehört, habe ich mir da schon mit dieser kleinen Funktion abgeholfen
Das brauchst du gar nicht. Es gibt eine Funktion, die zurück gibt wie viele Tage ein Monat hat. Nach meinen Beobachtungen zieht diese Funktion auch ein Schaltjahr mit ein.

Daher könntest du auch einfach jeden Tag in eine einfache Tabelle zeichnen, wie du es schon tust.

Das Grid wäre sehr zu Empfehlen.

@baba
deine Einwende kann ich hier nicht nachvollziehen. Es dürfte keine Rolle spielen, ob es jetzt ein Feiertag ist oder nicht, selbst wenn, diese Infos könnten auch in ein Grid eingezeichnet werden. Das wäre kein Problem. Warum es nicht einfach machen? Nur weil es auch kompliziert geht?

Aber müssen wir uns deshalb wegen dieser einfachen Frage streiten? Klar, jeder hat eine andere Meinung, jeder würde es anders lösen. Ich wette es gibt auch Leute, die gleich zu OpenGL greifen würden. Aber ist das notwendig?

aik81ftl wollte doch nur eine Liste haben, wo Kreuze gemacht werden können. Weiter nichts. Nur war der Ansatz nicht Sinnvoll. Aus meiner Sicht.
MFG
Michael Springwald

baba
Beiträge: 265
Registriert: Mi 4. Apr 2007, 17:47

Re: Images Drucken

Beitrag von baba »

pluto hat geschrieben: deine Einwende kann ich hier nicht nachvollziehen. Es dürfte keine Rolle spielen, ob es jetzt ein Feiertag ist oder nicht, selbst wenn, diese Infos könnten auch in ein Grid eingezeichnet werden. Das wäre kein Problem. Warum es nicht einfach machen? Nur weil es auch kompliziert geht?
Genau das ist des Pudels Kern - Du kannst es einzeichnen - aber wie bringst Du es zu Papier? Das Grid Zelle für Zelle abarbeiten, zur Zelle die extern verfügbaren Daten abgleichen und es dann über TPrinter.Canvas drucken? :wink:

Du willst ein Grid einsetzen - wofür? Nur zu Steuerung des Cursors am Bildschirm? Du kannst es nicht drucken, benötigst also eine weitere Routine. Du kannst nur eine Information pro Zelle speichern, benötigst also eine separate Datenspeicherung. Wo ist der Sinn? Nicht ich, Du machst es kompliziert. Wach auf!!! Ich bin sicher, sowas kannst Du besser.

Baba.

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Images Drucken

Beitrag von pluto »

Du willst ein Grid einsetzen - wofür? Nur zu Steuerung des Cursors am Bildschirm? Du kannst es nicht drucken, benötigst also eine weitere Routine. Du kannst nur eine Information pro Zelle speichern, benötigst also eine separate Datenspeicherung. Wo ist der Sinn? Nicht ich, Du machst es kompliziert. Wach auf!!! Ich bin sicher, sowas kannst Du besser.
Also:
Es ist eine Jahres Übersicht gewünscht. Dafür ist ein Grid wie geschaffen. Ich würde die Daten einfach zu HTML und CSS exportieren und fertig. Wo ist das Problem?
Das ist das einfachste was es gibt. Punkt.

Die Daten liegen ja schon im Speicher vor. Außerhalb von der Stringird, so wie ich das jetzt verstanden habe.
MFG
Michael Springwald

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Images Drucken

Beitrag von Maik81ftl »

baba hat geschrieben:
Maik81ftl hat geschrieben:aber da sich die Schaltjahre aller 100 Jahre wiederholen, sehe ich hier kein problem eines Fehlers.
... das ist falsch - alle 4 Jahre!
sry aber da muß ich wirklich mit aller mach wieder Sprechen...

Schaltjahre z.B. von 1900!

da haben wir 1900, 1904, 1908, 1912, 1916,..., 1996.

ergo? Von dieser sichweise aller 100 Jahre.

des Wären denne ab 2000 wie folgt.

2000, 2004, 2008, 2012, 2016, ... , 2096.

Dazu brauchst nix sagen! sogesehen haben wir beide hier recht.
baba hat geschrieben:... was Du da speichert ist egal. Wichtig ist nur, dass es sich erweitern läßt und glaube mir, diese Anforderung wird kommen. Zudem ist es wichtig eine möglichst übersichtliche, einheitliche Struktur zu bekommen. Mal eben eine Lösung im Grid, rächt sich später, da drumherum jede Menge gefriemelt werden muß.
:lol:

Die Rache Bahnt sich zugegeben schon an, werd ich aber auch noch 'uf die reihe bekommen.
Maik81ftl hat geschrieben:da für mich auch die Option eines Schaltjahres dazugehört, habe ich mir da schon mit dieser kleinen Funktion abgeholfen
CODE: ALLES AUSWÄHLEN
Function TForm1.Schaltjahr: Boolean;
var B: Byte;
C: String;
begin
C:= DateToStr(Date);
B:= Length(C);
C:= C[b-1] + C;
Result:= IsLeapYear(StrToInt(C));
end;


Schau mal hier, dass ist sicher was für Dich: http://www.freepascal.org/docs-html/rtl ... pyear.html

Baba.[/quote]

Code: Alles auswählen

Result:= IsLeapYear(StrToInt(C));
schon in verwendung...

pluto hat geschrieben:
Du willst ein Grid einsetzen - wofür? Nur zu Steuerung des Cursors am Bildschirm? Du kannst es nicht drucken, benötigst also eine weitere Routine. Du kannst nur eine Information pro Zelle speichern, benötigst also eine separate Datenspeicherung. Wo ist der Sinn? Nicht ich, Du machst es kompliziert. Wach auf!!! Ich bin sicher, sowas kannst Du besser.
Also:
Es ist eine Jahres Übersicht gewünscht. Dafür ist ein Grid wie geschaffen. Ich würde die Daten einfach zu HTML und CSS exportieren und fertig. Wo ist das Problem?
Das ist das einfachste was es gibt. Punkt.

Die Daten liegen ja schon im Speicher vor. Außerhalb von der Stringird, so wie ich das jetzt verstanden habe.
nun Pluto!

Für HTML und CSS reichen meine kenntnisse leider nicht aus. :( sonst gerne...
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Images Drucken

Beitrag von pluto »

>Für HTML und CSS reichen meine kenntnisse leider nicht aus. :( sonst gerne...
Da habe ich was für dich, Praktisch eine Voralge, die ich mal erstellt habe. Du kannst sie natürlich nach beliebigen anpassen.

Es ist nur eine Vorlage. Die ich als Schablone für meine Zwecke verwende. Dafür habe ich sie auch erstellt. Z.B. verwende ich sie für mein Web-Server(Den ich nicht mehr weiter Entwickeln) und für meine PHP-Anwendung. Ich habe sie etwas angepasst.
Ich denke, du müsstest dich recht schnell zu recht finden.

Die wichtigeste Zeile ist:

Code: Alles auswählen

<tr><td rowspan="2">52</td><td>1</td><td id="DayItem"><b id="DayItem2">01 Samstag</b><br>
Sternzeichen&Mondphasen</td> <td>Sond & Feiertage<br>Geburstag</td>
Ich denke, wenn du dir den Code angesehen hast, müsste es dir klar sein, wie du diese Zeilen Anpassen musst.

PS: Leider ist die Datei Erweiterung HTML nicht erlaubt. Ich habe sie jetzt einfach gepackt zu einem ZIP Archiv. Endlich. Text Dateien waren nicht erlaubt und Pas Dateien anscheinend auch nicht. Aber ZIP geht zum Glück.
Dateianhänge
KalenderVorlageHTML02.html.zip
(1.16 KiB) 68-mal heruntergeladen
MFG
Michael Springwald

Antworten