AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken aus Datenbank Datum ein image.left zuweisen
Thema durchsuchen
Ansicht
Themen-Optionen

aus Datenbank Datum ein image.left zuweisen

Ein Thema von Nine9 · begonnen am 12. Jan 2022 · letzter Beitrag vom 13. Jan 2022
Antwort Antwort
Nine9

Registriert seit: 1. Dez 2021
45 Beiträge
 
Delphi 10 Seattle Professional
 
#1

aus Datenbank Datum ein image.left zuweisen

  Alt 12. Jan 2022, 09:05
Guten Tag Delphi Gurus,

ich habe ein Image indem jeder Tag des Jahres gezeichnet wurde. berechnet habe ich dies mit image.width / 365 . Natürlich mit Trunc abgeschnitten damit sich das auch zeichnen lässt.

Nun habe ich jede position von image.width / 365 * 1 usw... mit einem Array gespeichert.
Jetzt möchte ich aus einer Datenbank aus einer Tabelle ein Datum heraus nehmen und ein Image auf das Image als Auftrag Zeichnen.
Das Datum dafür sollte left sein, daher muss ich jedes Datum für jede gespeicherte Array pixel Position zuweisen.

ich habe das noch nie gemacht daher bitte ich um Hilfe ich weis leider nicht weiter und google bietet mir momentan zu wenig oder ich suche falsch.

Delphi-Quellcode:
procedure TKalender.FormCreate(Sender: TObject);
begin

 FDQuery1.Open;

  D := Tag1[D]; E := Stunden[E];


  for j1 := 1 to 365 do
    begin
       Tag1[D] := trunc(KalenderImage.Width / 365 *j1);
       D:= D+1;
    end;


  if fdquery1.FieldByName('START').Calculated then
  begin
              simage := Timage.create(self);
              with simage do begin // weist man so die werte zu?
                left := Kalenderimage.left + 2020-11-01 := Tag1[1];
                       2020-11-02 := Tag1[2]; 2020-11-03 := Tag1[3];
                        2020-11-04 := Tag1[4];
              end;

  end;
Liebe Grüße
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
614 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: aus Datenbank Datum ein image.left zuweisen

  Alt 12. Jan 2022, 09:59
Hallo, was sagt denn der Compiler dazu?
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Nine9

Registriert seit: 1. Dez 2021
45 Beiträge
 
Delphi 10 Seattle Professional
 
#3

AW: aus Datenbank Datum ein image.left zuweisen

  Alt 12. Jan 2022, 10:11
Das er der Linken Seite (z.b 2020-01-01 ) nichts zuweisen kann..

Ich weis nicht wie das überhaupt geht vll hast du das mal in einer anderen Form mal gemacht.
  Mit Zitat antworten Zitat
TiGü

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

AW: aus Datenbank Datum ein image.left zuweisen

  Alt 12. Jan 2022, 10: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
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.292 Beiträge
 
Delphi 12 Athens
 
#5

AW: aus Datenbank Datum ein image.left zuweisen

  Alt 12. Jan 2022, 11:00
Zitat:
Das er der Linken Seite (z.b 2020-01-01 ) nichts zuweisen kann.
...das kann aber nicht alles sein.

1.
j1 = keine lokale Schleifenvariable
2.
globale Variablen/ Arrays, wo sind die Deklarationen?
3.D := Tag1[D]; E := Stunden[E]; -> niemals mehrere "Befehle" in eine Zeile
4.
with simage do begin -> bitte with abkündigen
Das Problem.
left := Kalenderimage.left + 2020-11-01 := Tag1[1]; =
Variable := Variable + Variable := Array[1] -> siehst du es?
6.
left := Kalenderimage.left + 2020-11-01 := Tag1[1]; falsche Stringverkettung

Bitte durcharbeiten:
https://www.delphi-treff.de/tutorial...phi-crashkurs/

@TiGü:
Es fehlen ihm die Grundlagen. Bei so vielen Fehlern ist er mit deinem Code überfordert.

Geändert von haentschman (12. Jan 2022 um 11:03 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
614 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: aus Datenbank Datum ein image.left zuweisen

  Alt 12. Jan 2022, 11:08
Wenn Du bis Gestern nur Kreise gemalt hast. Und ab Heute auch Rechtecke malen sollst, machst Du zwar was total neues, aber doch nichts wofür Du einen total neuen Weg gehen musst. Du, kannst einfach den bestehenden Weg anpassen.

Ich denke, was dir fehlt, ist wie Du ein Datum zerlegen kannst um an die Tage, Monate und Jahre zu kommen.
Das macht man mit SysUtils.DecodeDate
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
13. Jan 2022, 09:01
Dieses Thema wurde am "13. Jan 2022, 10:01 Uhr" von "Daniel" aus dem Forum "Neuen Beitrag zur Code-Library hinzufügen" in das Forum "Datenbanken" verschoben.
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.137 Beiträge
 
Delphi 12 Athens
 
#8

AW: aus Datenbank Datum ein image.left zuweisen

  Alt 13. Jan 2022, 09:39
Warum will hier eigentlich jemand ein "Datum" zu einer Position dazurechnen?
Und was um Himmels Willen soll dabei überhaupt rauskommen?


Vermutung: TextWidthTextWidth / Delphi-Referenz durchsuchenTextWidth / Hier im Forum suchenTextWidth
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: aus Datenbank Datum ein image.left zuweisen

  Alt 13. Jan 2022, 16:22
Mit Datenbanken hat das Thema eigentlich wenig zu tun.
Es geht doch eher darum einen Kalender zu zeichnen.

Im Anhang wenig Code der zumindest erst mal funktioniert, an der optischen Gestaltung kann man noch arbeiten ...
Angehängte Dateien
Dateityp: zip TerminKalender.zip (2,5 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:39 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