// **************************************************************************
// * Daten in Grid schreiben *
// **************************************************************************
procedure TDM.WriteDataToGrid(lPatNr: Cardinal; lGrid: TStringGrid);
var
I, Row, Col: Integer;
AlteDB: String;
StopWatch: TStopWatch;
begin
// Header in Grid schreiben
lGrid.cells[0, 0] := 'ID';
lGrid.cells[1, 0] := 'Erst.Datum';
lGrid.cells[2, 0] := 'Info Datum';
lGrid.cells[3, 0] := 'Typ';
lGrid.cells[4, 0] := 'Bilder Anzahl';
lGrid.cells[5, 0] := 'Info';
lGrid.cells[6, 0] := 'Bild';
lGrid.ColWidths[0] := -1;
lGrid.ColWidths[1] := 65;
lGrid.ColWidths[2] := 65;
lGrid.ColWidths[3] := 30;
lGrid.ColWidths[4] := 70;
lGrid.ColWidths[5] := 250;
lGrid.ColWidths[6] := 70;
qData.SQL.Text := 'Select * from Bilder Where PatNr=:PatNr order by CreateDate Desc';
qData.ParamByName('PatNr').AsInteger := lPatNr;
qData.Open;
qData.first;
// Daten aus der
DB lesen und in Grid schreiben
Row := 1;
Col := 0;
for I := 0 to qData.RecordCount - 1 do
begin
// ID einlesen und in Grid und AktData schreiben
lGrid.cells[Col, Row] := AktData.ID.ToString;
Inc(Col);
// CreateDate einlesen und in Grid schreiben
lGrid.cells[Col, Row] := DateToStr(AktData.CreateDate);
Inc(Col);
// InfoDate einlesen und in Grid schreiben
if (qData.FieldByName('InfoDate').AsString = '') then
lGrid.cells[Col, Row] := ''
else
lGrid.cells[Col, Row] := DateToStr(AktData.InfoDate);
Inc(Col);
// BildTyp einlesen und in Grid schreiben
lGrid.cells[Col, Row] := AktData.Typ;
Inc(Col);
// BildAnzahl einlesen und in Grid schreiben
lGrid.cells[Col, Row] := AktData.PicCount.ToString;
Inc(Col);
// Infotext einlesen und in Grid schreiben
lGrid.cells[Col, Row] := AktData.Info;
Inc(Col);
// Hier sollte das Bild aus der Tabelle in das Grid geschrieben werden
//lGrid.cells[Row,I+6] := PicData; // Bild in Grid schreiben ???
// Nächsten Datensatz holen
qData.Next;
Inc(Row);
Col := 0;
end;
// Ersten Datensatz mit neuestem Datum auswählen
// und in AktData Record ablegen
qData.first;
AktData.ID := qData.FieldByName('ID').AsInteger;
AktData.CreateDate := qData.FieldByName('CreateDate').AsDateTime;
AktData.InfoDate := qData.FieldByName('InfoDate').AsDateTime;
AktData.Typ := qData.FieldByName('PicTyp').AsString;
AktData.PicCount := qData.FieldByName('PicCount').AsInteger;
AktData.Info := qData.FieldByName('Info').AsString;
// Hier sollte das Bild aus der Tabelle in das Grid geschrieben werden
// AktData.JPegArray:= PicData ???
//
Query schließen
qData.Close;
//--------------------------------------------------------------------------
AktData sieht so aus:
TAktData = class
PatNr: Cardinal;
ID: Cardinal;
CreateDate: TDate;
Typ: String;
InfoDate: TDate;
PicCount: Byte;
Info: String;
DBName: string;
JpegArray: Array [0 .. 119] of TjpegImage;
.......
constructor TAktData.Create;
Var
i: Integer;
Begin
ID := 0;
PatNr := 0;
CreateDate := 0;
InfoDate := 0;
Typ := 'B';
PicCount := 1;
Info := '';
For i := 0 to 119 Do
begin
JpegArray[i] := TjpegImage.Create;
end;
End;