![]() |
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:
goEditing := True;
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; Mein Problem ist, dass ich keine Daten in das StringGrid eintragen kann. Für Hilfe bin ich dankbar! Gruß Lombi |
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:
Freundliche Grüße vom marabu
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; |
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? |
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 |
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 |
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 ![]() Schönes Wochenende marabu |
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 21:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz