Einzelnen Beitrag anzeigen

Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
831 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Daten aus einem MySQL Server in Editfeld ausgeben

  Alt 15. Mai 2007, 08:41
Vielen Dank für die Antwort!

Leider hilft es mir noch nicht weiter. Ich würde so etwas wie die nachstehende FillGrid Procedure benötigen...
Aus Deinem Code kann ich nicht erkennen, wie DU die Daten aus der DB holst bzw. dem Edit-Feld dann zuordnest. Bin wirklich um die Lösung verlegen!

Nachfolgend der FillGrid Code, mit dem ein StringGrid mit Daten "befüllt" wird:

Delphi-Quellcode:
procedure FillGrid(SG: TStringGrid; Cols: TCols; Rows: TRows);
var
  i, j : Integer;
begin
  SG.ColCount := 0;
  SG.RowCount := 0;
  if Assigned(Rows) then
  begin
    // Wir brauchen eine Zeile mehr für die Spaltenüberschriften
    SG.RowCount := length(Rows[0]) + 1;
    SG.ColCount := length(Cols);
    SG.FixedRows := 0;
    // Spaltenüberschriften in die erste Zeile schreiben
    for i := 0 to length(Cols) - 1 do
    begin
      SG.Cols[i].Add(Cols[i]);
      SG.Cells[i, 0] := Cols[i];
    end;
    // zwei-dimensionales Zeilen-Array in den Zellen ausgeben
    for i := 0 to length(Cols) - 1 do
    begin
      for j := 0 to length(Rows[0]) - 1 do
      begin
        SG.Cells[i, j + 1] := Rows[i, j];
      end;
    end;
  end;
end;
Ich hatte versucht, diese Procedure anzupassen, in dem ich folgende Änderungen vorgenommen hatte:


Delphi-Quellcode:
procedure FillGrid(ED : TEdit; Cols: TCols; Rows: TRows); //Damit ich ein Edit-Feld übergeben kann
var
  i, j : Integer;
  SG: TStringGrid; // Damit die eigentliche Procedure normal läuft und ich aus SG die
                      // entsprechende Werte holen kann...
begin
  SG.ColCount := 0;
  SG.RowCount := 0;
  if Assigned(Rows) then
  begin
    // Wir brauchen eine Zeile mehr für die Spaltenüberschriften
    SG.RowCount := length(Rows[0]) + 1;
    SG.ColCount := length(Cols);
    SG.FixedRows := 0;
    // Spaltenüberschriften in die erste Zeile schreiben
    for i := 0 to length(Cols) - 1 do
    begin
      SG.Cols[i].Add(Cols[i]);
      SG.Cells[i, 0] := Cols[i];
    end;
    // zwei-dimensionales Zeilen-Array in den Zellen ausgeben
    for i := 0 to length(Cols) - 1 do
    begin
      for j := 0 to length(Rows[0]) - 1 do
      begin
        SG.Cells[i, j + 1] := Rows[i, j];
        ED.Text:=SGCells[0,0]; //Um jetzt im übergebenden Edit-Feld EINEN Wert zu setzten...
      end;
    end;
  end;
end;
Vielen Dank Euch im Voraus
Patrick
  Mit Zitat antworten Zitat