AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Stringgrid kopieren und in anderes einfügen untereinander
Thema durchsuchen
Ansicht
Themen-Optionen

Stringgrid kopieren und in anderes einfügen untereinander

Ein Thema von klaus9 · begonnen am 25. Sep 2014 · letzter Beitrag vom 25. Sep 2014
Antwort Antwort
Seite 1 von 2  1 2      
klaus9

Registriert seit: 4. Dez 2011
123 Beiträge
 
#1

Stringgrid kopieren und in anderes einfügen untereinander

  Alt 25. Sep 2014, 09:56
Hallo,

ich möchte gerne alle Daten des StringGrid1 ins Stringgrid2 kopieren, dieses klappt über folgenden Code auch ganz gut.

Delphi-Quellcode:
var
  ndx : Integer;
begin
  Form1.StringGrid2.ColCount:= Form1.StringGrid1.ColCount;
  Form1.StringGrid2.RowCount := Form1.StringGrid1.RowCount;


  for ndx := 0 to StringGrid1.RowCount +1 do
  begin
    Form1.StringGrid2.Rows[ndx] := Form1.StringGrid1.Rows[ndx];
  end;
end;
Ich möchte jetzt aber gerne das wenn ich auf den Button klicke, er mir StringGrid1 im StringGrid2 unten an die vorhandenden Daten anhängt.
Wie bekomme ich dies hin ?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Stringgrid kopieren und in anderes einfügen untereinander

  Alt 25. Sep 2014, 10:03
Mit StringGrid.Rows.Add kann man eine Zeile einfügen.
Markus Kinzler
  Mit Zitat antworten Zitat
Headbucket

Registriert seit: 12. Dez 2013
Ort: Dresden
172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Stringgrid kopieren und in anderes einfügen untereinander

  Alt 25. Sep 2014, 10:27
Du scheinst viel mit den Daten direkt aus dem Stringgrid zu arbeiten.
Hier solltest du eventuell nochmal deine Struktur überdenken, denn Anzeige und Speicherung der Daten sollte man nach Möglichkeit immer trennen.

Ich empfehle dir also, die Daten z.B. in Stringlisten zu speichern. Hier erfolgt dann auch die ganze Verarbeitung. Am Ende der Verarbeitung rufst du einfach eine Funktion auf, die die beiden Stringgrids mit den aktuellen Daten füllt. Du wirst sehen: Es wird alles viel einfacher und übersichtlicher.

Deine letzte Frage wurde ja schon beantwortet: Einfach über eine Schleife mit Add die Daten anfügen.

Grüße
  Mit Zitat antworten Zitat
klaus9

Registriert seit: 4. Dez 2011
123 Beiträge
 
#4

AW: Stringgrid kopieren und in anderes einfügen untereinander

  Alt 25. Sep 2014, 10:44
hmm irgendwie funktioniert es nicht so..

Delphi-Quellcode:
var
  ndx : Integer;
begin
  Form1.StringGrid2.ColCount:= Form1.StringGrid1.ColCount;
  Form1.StringGrid2.RowCount := Form1.StringGrid1.RowCount;


  for ndx := 0 to StringGrid1.RowCount +1 do
  begin
    Form1.StringGrid2.Rows[ndx].Add := Form1.StringGrid1.Rows[ndx];
  end;
end;
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#5

AW: Stringgrid kopieren und in anderes einfügen untereinander

  Alt 25. Sep 2014, 10:52
Den Part musst du weglassen oder ändern, damit du dir nicht immer alles wieder zurücksetzt:

Delphi-Quellcode:
Form1.StringGrid2.ColCount:= Form1.StringGrid1.ColCount;
Form1.StringGrid2.RowCount := Form1.StringGrid1.RowCount;
Könnte werden zu:
Delphi-Quellcode:
Form1.StringGrid2.ColCount := Form1.StringGrid1.ColCount;
Form1.StringGrid2.RowCount := Form1.StringGrid2.RowCount + Form1.StringGrid1.RowCount;
dann musst du auch nix mit Add machen.

------------

Oder du läßt es ganz weg (oder machst es nur 1x am Anfang) und machst dann nur die Schleife mit dem Add.

------------

Ausserdem würde ich das Form1. entweder weglassen oder durch self. ersetzen, da das sonst später Schwierigkeiten machen kann.
Ralph
  Mit Zitat antworten Zitat
klaus9

Registriert seit: 4. Dez 2011
123 Beiträge
 
#6

AW: Stringgrid kopieren und in anderes einfügen untereinander

  Alt 25. Sep 2014, 11:16
Hallo Ralph,

funktioniert nicht ganz so, er kopiert zwar jetzt die Werte aus Stringgrid1 und packt diese in Stringgrid2 rein, wenn ich dann die nächste Abfrage mache, fügt
er mir nur eine leere tabelle dahinter.


Gruß
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Stringgrid kopieren und in anderes einfügen untereinander

  Alt 25. Sep 2014, 11:55
Bist D wirklich sicher, daß das in Ordnung ist?

StringGrid2.Rows[ndx].Add := Form1.StringGrid1.Rows[ndx];

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
klaus9

Registriert seit: 4. Dez 2011
123 Beiträge
 
#8

AW: Stringgrid kopieren und in anderes einfügen untereinander

  Alt 25. Sep 2014, 11:57
Hallo K+H,

nee das funktioniert leider nicht


Irgendwie bekomme ich es einfach nicht hin aus einem Stringgrid1, dessen Daten in Stringgrid2 zu bewegen und wenn ich nochmal klicke
das dann alles weitere angefügt wird im Stringgrid2..
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#9

AW: Stringgrid kopieren und in anderes einfügen untereinander

  Alt 25. Sep 2014, 12:07
Aus dem Hut und ungetestet:
Delphi-Quellcode:
procedure AppendToStringGrid(const Source, Destination: TStringGrid);
var
  Line: integer;
begin
  Assert(Assigned(Source) and Assigned(Destination),
    'Beide StringGrids müssen gültige Instanzen sein');
  for Line := Source.FixedRows to Source.RowCount - 1 do
    begin
      Destination.RowCount := Destination.RowCount + 1;
      Destination.Rows[Destination.RowCount - 1].Assign(Source.Rows[Line]);
    end;
end;
Aufruf wäre dann:
AppendToStringGrid(StringGrid2, StringGrid1);
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
klaus9

Registriert seit: 4. Dez 2011
123 Beiträge
 
#10

AW: Stringgrid kopieren und in anderes einfügen untereinander

  Alt 25. Sep 2014, 12:32
Hallo Deddy,

vielen Dank, der Source funktioniert schon fast perfekt, habe nur ein Problem
die Reihen habe ich jetzt korrekt aber die Zellen werden nicht übertragen..
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:32 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