Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Daten anzeigen in StringGrid und TEdit (https://www.delphipraxis.net/92688-daten-anzeigen-stringgrid-und-tedit.html)

LOMBI 31. Mai 2007 14:33

Re: Daten anzeigen in StringGrid und TEdit
 
Ja, die Variable MyData ist nil.
Im Debug-Inspektor steht:
FTelefon : Nicht verfügbarer Wert
Aber das kann nicht sein, weil das Feld "Telefon" in der DB vorhanden ist!

Gruß
Lombi

DeddyH 31. Mai 2007 14:42

Re: Daten anzeigen in StringGrid und TEdit
 
Zitat:

Zitat von Sharky
Delphi-Quellcode:
for ndx := StringGrid1.FixedRows to StringGrid1.RowCount do

Muss es nicht heißen
Delphi-Quellcode:
for ndx := StringGrid1.FixedRows to StringGrid1.RowCount - 1 do
?

Sharky 31. Mai 2007 15:59

Re: Daten anzeigen in StringGrid und TEdit
 
Zitat:

Zitat von LOMBI
Ja, die Variable MyData ist nil.
Im Debug-Inspektor steht:
FTelefon : Nicht verfügbarer Wert
Aber das kann nicht sein, weil das Feld "Telefon" in der DB vorhanden ist!...

Hai LOMBI,

nur weil das Feld in der DB vorhanden ist bedeutet es ja noch nicht das Du die Zusatzdaten auch richtig an das StringGrid bindest.

Zeige doch einmal den Code mit dem Du das StringGrid mit Daten füllst.

Zitat:

Zitat von DeddyH
Muss es nicht heißenDelphi-Quellcode: markieren
for ndx := StringGrid1.FixedRows to StringGrid1.RowCount - 1 do

Eigentlich nicht. Warum sollte die letzte Zeile des StringGrids nicht berücksichtigt werden? :stupid:

shmia 31. Mai 2007 16:43

Re: Daten anzeigen in StringGrid und TEdit
 
Zitat:

Zitat von LOMBI
auf einer Form habe ich unter ein StringGrid einige TEdits platziert.
...Diese Daten stehen bereits in der DB

Warum dann nicht einfach ein TDBGrid und einige TDBEdits verwenden ?

DeddyH 31. Mai 2007 16:49

Re: Daten anzeigen in StringGrid und TEdit
 
Zitat:

Zitat von Sharky
Eigentlich nicht. Warum sollte die letzte Zeile des StringGrids nicht berücksichtigt werden?

Weil die letzte Zeile den Index RowCount - 1 hat? :stupid:

LOMBI 1. Jun 2007 09:28

Re: Daten anzeigen in StringGrid und TEdit
 
Guten Morgen

und danke für die rege Beteiligung!

Delphi-Quellcode:
procedure TDemoForm.FormCreate(Sender: TObject);
var
  MyData: TExtraData;
  ndx: Integer;
begin
  config := TMemIniFile.Create(ChangeFileExt(ParamStr(0), '.ini'));
...
  with StringGrid do
  begin
    if goRowSelect in Options
      then Row := Pred(RowCount)
      else Selection := TGridRect(Rect(FixedCols, Pred(RowCount), Pred(ColCount), Pred(RowCount)));
    if VisibleRowCount < (RowCount - FixedRows)
      then TopRow := Succ(RowCount - FixedRows - VisibleRowCount)
      else TopRow := FixedRows;
Natürlich wäre das Ganze mit DBGrid und DBEdits einfacher zu lösen, aber darauf möchte ich ungern
zurückgreifen.

Gruß
Lombi

Sharky 3. Jun 2007 05:53

Re: Daten anzeigen in StringGrid und TEdit
 
Hai LOMBI,

zeige doch einmal den Code in dem Du das StringGrid mit Daten füllst! In dem Codeausschnitt machst Du das ja nicht.

shmia 4. Jun 2007 10:41

Re: Daten anzeigen in StringGrid und TEdit
 
Zitat:

Zitat von LOMBI
Natürlich wäre das Ganze mit DBGrid und DBEdits einfacher zu lösen, aber darauf möchte ich ungern
zurückgreifen.

Warum einfach, wenn's auch kompliziert geht ??
Eine Grundregel des Extreme Programming lautet:
Es soll die einfachste Lösung, die genau das Gewünschte erreicht, angestrebt werden.

LOMBI 5. Jun 2007 11:24

Re: Daten anzeigen in StringGrid und TEdit
 
Delphi-Quellcode:
procedure TDemoForm.cmdItemAddExecute(Sender: TObject);
begin
  with DatModul, ItemDlg do
  begin
    ...
    if ShowModal = mrOK then
      begin
        QueryAdr.Append;
        QueryAdr.FieldByName('Name1').AsString := EdName1.Text;
        ...
        QueryAdr.Post;
        if QueryAdr.Locate('name1', EdName1.Text, []) then
          StringGrid.Row := QueryAdr.RecNo;
     end;

procedure TDemoForm.DataSetChanged(DataSet: TDataSet);
begin
  if DataSet.Active
    then StringGrid.RowCount := Max(Succ(DataSet.RecordCount), 2)
    else StringGrid.RowCount := 2;
         StringGrid.Invalidate;
end;

procedure TFDemoForm.DataSourceDemoDataChange(Sender: TObject; Field: TField);
begin
   if not Assigned(Field) then
     with Sender as TDataSource do
       if DataSet.Tag = 0 then
         DataSetChanged(DataSet);
end;

marabu 5. Jun 2007 20:19

Re: Daten anzeigen in StringGrid und TEdit
 
Hallo Lombi,

Zitat:

Zitat von LOMBI
... Im Grid muß ich jetzt auf eine markierte Zeile doppelt klicken, damit die passende Tel-Nr. im Edit erscheint. ...

dieses Verhalten kann ich in meinem Test-Projekt nicht beobachten. Es könnte sich um einen Nebeneffekt deines Codes handeln. Da müsste man genauer hinschauen. Hilfreich wäre, wenn du ein lauffähiges Minimal-Projekt zur Verfügung stellen könntest, an dem das Verhalten studiert werden kann.

Freundliche Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:35 Uhr.
Seite 2 von 3     12 3      

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-2025 by Thomas Breitkreuz