Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Kalenderübersicht als jpg (https://www.delphipraxis.net/191253-kalenderuebersicht-als-jpg.html)

Monday 26. Dez 2016 10:02

Kalenderübersicht als jpg
 
Hallo,
ich möchte eine Kalenderübersicht für ein Monat (sowas in der Art vom Aussehen https://mrknowing.files.wordpress.co...l-kalender.jpg ) als jpg erstellen. Also nur zum anschauen, ohne irgendwas klicken oder so.
Den Kalender als solches zu erstellen ist nicht die Schwierigkeit, da kann ich kreativ sein, wenn ich wüsste wie ich das als Grafik speichern könnte.
Ich dachte zunächst ich könnte TCalender irgendwie einfach missbrauchen und als jpg speichern, aber damit kenne ich mich nicht aus. Und selbst jpg zeichnen ist etwas fusselig mit dem positionieren. Geht das auch einfacher? Gibts da einen Trick? Wie müsste ich richtig vorangehen?! Oder doch selbst zusammenbasteln?!

LG
Monday

blawen 26. Dez 2016 11:08

AW: Kalenderübersicht als jpg
 
Zitat:

Zitat von Monday (Beitrag 1357208)
ich möchte eine Kalenderübersicht für ein Monat (sowas in der Art vom Aussehen https://mrknowing.files.wordpress.co...l-kalender.jpg ) als jpg erstellen. Also nur zum anschauen, ohne irgendwas klicken oder so.

Deine Aufgabenstellung habe ich nicht wirklich begriffen...
Geht es Dir darum, dass bei der Kalenderkomponente etwas angeklickt werden kann, Du dies aber nicht möchtest?
Zitat:

Den Kalender als solches zu erstellen ist nicht die Schwierigkeit, da kann ich kreativ sein, wenn ich wüsste wie ich das als Grafik speichern könnte.
Wie erstellst Du das Kalenderblatt? Mit Paint und Konsorten? Dann kannst Du die erstellte Grafik ja einfach mit einem TImage laden.
Zitat:

Ich dachte zunächst ich könnte TCalender irgendwie einfach missbrauchen und als jpg speichern, aber damit kenne ich mich nicht aus. Und selbst jpg zeichnen ist etwas fusselig mit dem positionieren. Geht das auch einfacher? Gibts da einen Trick? Wie müsste ich richtig vorangehen?! Oder doch selbst zusammenbasteln?!
Wenn Du einen bestimmten Bereich als Grafik speichern möchtest, kannst Du Dir folgenden Thread anschauen http://www.delphipraxis.net/84356-ei...speichern.html

Slipstream 26. Dez 2016 17:18

AW: Kalenderübersicht als jpg
 
Zitat:

Zitat von Monday (Beitrag 1357208)
Hallo, ich möchte eine Kalenderübersicht für ein Monat (sowas in der Art vom Aussehen https://mrknowing.files.wordpress.co...l-kalender.jpg ) als jpg erstellen. Also nur zum anschauen, ohne irgendwas klicken oder so.
Den Kalender als solches zu erstellen ist nicht die Schwierigkeit, da kann ich kreativ sein, wenn ich wüsste wie ich das als Grafik speichern könnte.
Ich dachte zunächst ich könnte TCalender irgendwie einfach missbrauchen und als jpg speichern, aber damit kenne ich mich nicht aus. Und selbst jpg zeichnen ist etwas fusselig mit dem positionieren. Geht das auch einfacher? Gibts da einen Trick? Wie müsste ich richtig vorangehen?! Oder doch selbst zusammenbasteln?!

Wenn ich das richtig verstanden habe, möchtest du ein Kalenderblatt zeichnen, das alle Tage eines Monats und pro Zeile 7 Tage enthält. Das kannst du auf eine Paintbox oder auf ein TImage zeichnen. Es gibt dafür Befehle wie MoveTo, LineTo, Rectangle und TextOut. Die Zeichenfläche ist der Canvas als Eigenschaft einer TBitmap. Kannst du damit was anfangen?

MEissing 27. Dez 2016 09:27

AW: Kalenderübersicht als jpg
 
In Delphi würd ich das so machen:
Code:
var
  Bmp: TBitmap;
  Png: TPngImage;
begin
  Bmp := TBitmap.Create;
  try
    Bmp.SetSize(CalendarView1.Width, CalendarView1.Height);
    BitBlt(Bmp.Canvas.Handle, 0, 0, CalendarView1.Width, CalendarView1.Height,
      self.Canvas.Handle, CalendarView1.left, CalendarView1.Top, SRCCOPY);
    Png := TPngImage.Create;
    try
      Png.Assign(Bmp);
      Png.SaveToFile('C:\Users\Matthias\Desktop\Test.png');
    finally
      Png.Free;
    end;
  finally
    Bmp.Free;
  end;
end;

Harry Stahl 27. Dez 2016 16:59

AW: Kalenderübersicht als jpg
 
Unter Lazarus würde ich das so (mit PaintTo) machen (geht bei Bedarf unter Delphi VCL auch genau so):

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  bm: TBitmap;
begin
  bm := tbitmap.create;
  try
    bm.setsize (calendar1.width, calendar1.height);

    calendar1.PaintTo(bm.canvas,0,0);
    //Image1.picture.bitmap.assign (bm); //falls Ergebnis angesehen werden soll  
  finally
    bm.free;
  end;
end;
Unter Delphi, FMX so:

Delphi-Quellcode:
procedure TForm44.Button1Click(Sender: TObject);
var
  bm: TBitmap;
begin
  bm := Tbitmap.create;
  try
    bm := calendar1.MakeScreenshot;
    //... weitere Nutzung von bm
    //image1.Bitmap.Assign(bm); falls Ergebnis betrachtet werden soll
  finally
    bm.free;
  end;
end;

Monday 4. Feb 2017 09:28

AW: Kalenderübersicht als jpg
 
Danke für eure Antworten.

Nun habe ich doch selbst etwas geschrieben, was dem nahe kommt wie ich mir vorstelle. Und da ich schon dabei war, habe ich noch ein kleines Programm daraus gemacht siehe hier: http://www.delphipraxis.net/191633-k...ml#post1360802

LG


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz