Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   ListView Add "Datum" Items (https://www.delphipraxis.net/133920-listview-add-datum-items.html)

thiagojonas 12. Mai 2009 08:55


ListView Add "Datum" Items
 
Moin moin,
ich habe eine Funktion geschrieben, die alle Tage in zwischen zwei DateTimePicker ausspuckt. :D
Die Tage möchte ich jetzt gerne alle in eine ListView einfügen und zwar in die Dritte Spalte.

Wie kann ich das machen?

Was ich schon weiß ist das:

Delphi-Quellcode:
Listview.Items.Item[0].Caption:='12.02.2009'; //Spalte1 Zeile1
Listview.Items.Item[0].SubItems.Add('12.02.2009');
Aber da wird ersten nur ein Datum von vielen eingefügt und nicht in die Dritte Spalte.

Danke im voraus :-D

DeddyH 12. Mai 2009 09:08

Re: ListView Add "Datum" Items
 
Delphi-Quellcode:
var Item: TListItem;
    i: integer;
begin
  for i := 1 to 10 do
    begin
      Item := Listview1.Items.Add;
      Item.Caption := '12.02.2009';
      Item.SubItems.Add('');
      Item.SubItems.Add('05.05.2009');
    end;
end;
Getippt und nicht getestet.

Luckie 12. Mai 2009 09:11

Re: ListView Add "Datum" Items
 
Kann man die SubItems nicht mit einem Index ansprechen:
Delphi-Quellcode:
Listview1.SubItems[2] := "2009-05-12";

DeddyH 12. Mai 2009 09:19

Re: ListView Add "Datum" Items
 
Sofern sie vorhanden sind, könnte das auch so gehen (nicht ausprobiert):
Delphi-Quellcode:
Listview1.Items[0].SubItems[2] := '01.01.2009';

thiagojonas 12. Mai 2009 09:40

Re: ListView Add "Datum" Items
 
@DeddyH
Danke genau das brauchte ich :-D

Luckie 12. Mai 2009 10:01

Re: ListView Add "Datum" Items
 
He, moment, die eigentliche Idee stammt von mir. ;)

DeddyH 12. Mai 2009 10:02

Re: ListView Add "Datum" Items
 
Heul doch :mrgreen:

thiagojonas 12. Mai 2009 15:46

Re: ListView Add "Datum" Items
 
Danke an Euch Beiden :-D

Ich will jetzt die Tage mit den Tagen meiner DB vergleichen.
Die Tage die identisch sind sollen dann in die Listview rein.

Mein Ansatz:

Delphi-Quellcode:
var Days ,i,p: integer;
    Date : TDatetime;
    Dates : array of string;

var Item: TListItem;
    x: integer;
begin
  ///////////////////////////////////////////////////////////////////////////
  ///  Definitionen der Variablen
  x := 0;
  fehltage_view.Clear;
  days:=(daysbetween(DateTimeVon.Datetime,DateTimeBis.Datetime ));
  date := DateTimeVon.Datetime;
  setlength(dates,days+1);
  for i := 0 to days do
  begin
    dates[i] := datetostr(date) ;
    date:= (incday(date, 1));
  end;

for p := 0 to days do
      begin
      x := x +1;
      ///////////////////////////////////////////////////////////////////////////
      ///  DB Fehltage öffnen
      ADOQuery1.SQL.Text := 'SELECT * FROM `Fehltage` WHERE `Datum` = '''+Dates[p]+''';';
      ADOQuery1.Open;
      ///////////////////////////////////////////////////////////////////////////
      ///  Werte der DB in ListView hinzufügen, wenn vorhanden.
      Item := Listview.Items.Add;
      Item.Caption := IntToStr(x) + '.';
      Item.SubItems.Add(ADOQuery1.FieldByName('Tag').Value);
      Item.SubItems.Add(ADOQuery1.FieldByName('Datum').Value);
      end;
 end;
So kommpt aber folgende Fehlermeldung wenn der eines der Tage im Array nicht in der DB vorhanden ist:

Zitat:

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Valho_Student.exe ist eine Exception der Klasse EVariantTypeCastError mit der Meldung 'Variante des Typs (Null) konnte nicht in Typ (OleStr) konvertiert werden' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------

DeddyH 12. Mai 2009 16:01

Re: ListView Add "Datum" Items
 
Du musst auch zuerst abfragen, ob Deine Datenmenge Sätze enthält.
Delphi-Quellcode:
ADOQuery1.Open;
if not ADOQuery1.EOF then
  begin
      ///////////////////////////////////////////////////////////////////////////
      ///  Werte der DB in ListView hinzufügen, wenn vorhanden.
      Item := Listview.Items.Add;
      Item.Caption := IntToStr(x) + '.';
      Item.SubItems.Add(ADOQuery1.FieldByName('Tag').Value);
      Item.SubItems.Add(ADOQuery1.FieldByName('Datum').Value);
  end;

thiagojonas 12. Mai 2009 16:08

Re: ListView Add "Datum" Items
 
Super Vielen Dank :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:08 Uhr.
Seite 1 von 2  1 2      

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