Einzelnen Beitrag anzeigen

TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: aus Datenbank Datum ein image.left zuweisen

  Alt 12. Jan 2022, 11:58
Die auskommentierten FDQuery1-Zugriffe müsstest du noch wieder einkommentieren

Delphi-Quellcode:
// muss in die Uses-Klausel
uses
   System.Math, System.UiTypes

...

procedure TKalender.FormCreate(Sender: TObject);
var
  d: Integer;
  Tag1: array[1..365] of Integer; //TArray<Integer>;
  simage: TImage;
  Colors: TArray<TColor>;
begin

// FDQuery1.Open;

  for d := 1 to 365 do
  begin
    Tag1[d] := Trunc(Kalenderimage.Width / 365 * d);
  end;

// if FDQuery1.FieldByName('START').Calculated then
  begin
    Colors := [TColors.Red, TColors.Dodgerblue, TColors.Floralwhite, TColors.Olive, TColors.Sandybrown];
    for d := 1 to 365 do
    begin
      simage := TImage.create(Self);
      simage.Parent := Self;
      simage.Left := Kalenderimage.Left + Tag1[d];
      simage.Height := Kalenderimage.Height;
      simage.Width := Trunc(Kalenderimage.Width / 365);

      // Mit zufälliger Farbe ausfüllen, damit sieht, dass es 365 verschiedene Images sind:
      simage.Canvas.Brush.Color := Colors[RandomRange(Low(Colors), High(Colors))];
      simage.Canvas.FillRect(simage.ClientRect);
    end;

  end;
end;
  Mit Zitat antworten Zitat