Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Daten in ein StringGrid schreiben (https://www.delphipraxis.net/77646-daten-ein-stringgrid-schreiben.html)

LOMBI 22. Sep 2006 11:56

Datenbank: Paradox • Version: 7 • Zugriff über: TQuery, TDataSource

Daten in ein StringGrid schreiben
 
Hallo,

in meinem Programm möchte ich gerne die DBGrids durch StringGrids ersetzen.

Delphi-Quellcode:
procedure TFRechn.FormCreate(Sender: TObject);
begin
  StringGridRedat.colcount := 6;
  StringGridRedat.rowcount := 1;
  StringGridRedat.Cells [1,0] := 'PosNr';
  StringGridRedat.Cells [2,0] := 'ArtNr';
  StringGridRedat.Cells [3,0] := 'Artbez';
  ...
end;

procedure TFRechn.BtnArtNeuClick(Sender: TObject);
var
  inzeile:Integer;
begin
  StringGridRedat.rowcount := inzeile;
  inzeile := StringGridRedat.rowcount+1;
  StringGridRedat.Cells [1, inzeile] :=
  QueryRedat.FieldByName('PosNr').Text;
  StringGridRedat.Cells [2, inzeile] :=
  QueryRedat.FieldByName('ArtNr').Text;
  StringGridRedat.Cells [3, inzeile] :=
  QueryRedat.FieldByName('Artbez').Text;
  StringGridRedat.Cells [4, inzeile] :=
  QueryRedat.FieldByName('Anzahl').Text;
  ...
end;
goEditing := True;

Mein Problem ist, dass ich keine Daten in das StringGrid eintragen
kann.

Für Hilfe bin ich dankbar!

Gruß Lombi

marabu 22. Sep 2006 12:17

Re: Daten in ein StringGrid schreiben
 
Hallo Lombi,

ich nehme an, du möchtest die Daten aus dem aktuellen Datensatz deiner Query als neue Zeile an das StringGrid anfügen. Probiere es so:

Delphi-Quellcode:
procedure TFRechn.BtnArtNeuClick(Sender: TObject);
var
  inZeile: Integer;
begin
  with StringGridReDat, QueryReDat do
  begin
    inZeile := RowCount;
    RowCount := RowCount + 1;
    Cells[1, inZeile] := FieldByName('PosNr').AsString;
    Cells[2, inZeile] := FieldByName('ArtNr').AsString;
    // ...
  end;
end;
Freundliche Grüße vom marabu

LOMBI 22. Sep 2006 15:57

Re: Daten in ein StringGrid schreiben
 
Vielen Dank marabu für die Antwort.

Hatte vergessen zu erwähnen, dass ich die Daten mittels Edits in das StringGrid einfügen möchte. Beim Ausführen mit Deinem Code zeigen sich
noch folgende Probleme:

1.) Die PosNr beginnt nun mit 1 und nicht wie beim DBGrid bei 001...
2.) ArtNr und ArtBez werden nicht in das StringGrid übernommen.
3.) Wenn ich für Anzahl und Einzelpreis jeweils "1" bzw."1,00" eingebe,
dann steht in den Spalten: 2,22863...

Bei ColCount := 6 werden nur 5 Spaltenüberschriften angezeigt.
Die Spalte ganz links im StringGrid ist ohne Bezeichnung in grau
dargestellt. Wie läßt sich diese Spalte entfernen?

marabu 22. Sep 2006 16:12

Re: Daten in ein StringGrid schreiben
 
Der Index für Spalten und Zeilen eines Grids beginnt bei 0. Die grauen Bereiche werden über die Eigenschaften FixedCols und FixedRows eingestellt und eignen sich für Spalten- und Zeilenbeschriftungen. Bei der Übernahme irgendwelcher Daten in die Zellen des Grids musst du für die gewünschte Darstellung sorgen. Wo die Daten herkommen ist egal. Falsche Ergebnisse sind vielleicht nur unerwartete Ergebnisse? Schlüsselfelder solltest du übrigens nicht im Grid anzeigen.

marabu

LOMBI 23. Sep 2006 13:20

Re: Daten in ein StringGrid schreiben
 
Danke für die Hinweise.

Mit QueryBeforePost wurden die Daten aus den Edits
in das StringGrid eingetragen. Wie bitte lassen sich
nun die gespeicherten Daten (Zeilen) aus dem StringGrid
wieder löschen? Nach einem OnDblClick bleiben die Einträge
trotzdem im StringGrid stehen.

Gruß
Lombi

marabu 23. Sep 2006 13:31

Re: Daten in ein StringGrid schreiben
 
Hallo Lombi,

beim Löschen und Einfügen von Zeilen und anderen Operationen im Zusammenhang mit der Komponente TStringGrid helfen dir vielleicht die Routinen aus der Unit GridUtils.

Schönes Wochenende

marabu

LOMBI 23. Sep 2006 13:43

Re: Daten in ein StringGrid schreiben
 
Ein StringGrid zu verwenden ist gar nicht so einfach!

Danke und viele Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 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