![]() |
Stringgrid Spalten in Zeilen tauschen
Hallo DPler!
Ich möchte eine Art Logbuch Datei anlegen, d.h. ein zweispaltiges Stringgrid mit erster Spalte als Spaltenüberschrift und zweiter Spalte als WerteSpalte soll in ein zweites Stringgrid dessen Spalten die Spaltenüberschriften des ersten Grids enthalten und die Wertespalte des ersten Grids soll in den Zeilen des zweiten Grids übernommen werden. also ungefähr so:
Delphi-Quellcode:
dieser Text ist natürlich nur dummes Zeug. Es fehlt die Zeilenweiterschaltung für das zweite Grid und vieles andere mehr.
procedure TForm1.einfugenClick(Sender: TObject);
var i :integer; begin SG2.Cells[0,1] := DateToStr(DateTimePicker1.Date); SG2.Cells[1,1] := 'hauf'; //hier kommt FileName der laufenden Datei hinein SG2.Cells[2,1] := IntToStr(SGaddieren(SG1,1)) ; //Summe der WerteSpalte des ersten Grids SG2.Cells[3,1] := SG1.Cells[1,0]; // 15 Werte entsprechend der Wertespalte ds ersten Grids SG2.Cells[4,1] := SG1.Cells[1,1]; SG2.Cells[5,1] := SG1.Cells[1,2]; SG2.Cells[6,1] := SG1.Cells[1,3]; SG2.Cells[7,1] := SG1.Cells[1,4]; SG2.Cells[8,1] := SG1.Cells[1,5]; SG2.Cells[9,1] := SG1.Cells[1,6]; SG2.Cells[10,1] := SG1.Cells[1,7]; SG2.Cells[11,1] := SG1.Cells[1,8]; SG2.Cells[12,1] := SG1.Cells[1,9]; SG2.Cells[13,1] := SG1.Cells[1,10]; SG2.Cells[14,1] := SG1.Cells[1,11]; SG2.Cells[15,1] := SG1.Cells[1,12]; SG2.Cells[16,1] := SG1.Cells[1,13]; SG2.Cells[17,1] := SG1.Cells[1,14]; SG2.Cells[18,1] := SG1.Cells[1,15]; //WerteSpalte Ende SG2.SaveToCSV('HaufigLog.txt',#9); end; Aber vielleicht kennt jemand eine Funktion die Spalten in Zeilen tauscht |
Re: Stringgrid Spalten in Zeilen tauschen
Hallo,
ich habe das jetzt 5 mal gelesen und nicht verstanden ... Und nein, so ene Funktion gibt es nicht. Kann man aber leicht selber schreiben. So wie ich das gesehen habve, reicht eine for-Schleife, vielleicht auch 2 (geschachtelt). Heiko |
Re: Stringgrid Spalten in Zeilen tauschen
also versuch ich es zu erklären
Ich habe ein Stringgrid mit zwei Spalten. Nun soll die zweite Spalte, nennen wir sie Wertespalte, zur (Werte)Zeile eines zweiten Stringgrids werden. Hier habe ich 'nen Vorschlag für die Zeilenweiterschaltung:
Delphi-Quellcode:
Wo mein Fehler steckt weiß ich nicht.i:= SG2.RowCount-1 +1; : SG2.Cells[5,i] := SG1.Cells[1,2]; : Zitat:
Ich hoffe doch das mir jemand helfen kann. |
Re: Stringgrid Spalten in Zeilen tauschen
Hallo,
Delphi-Quellcode:
rechts ist kein i ...
SG2.Cells[5,i] := SG1.Cells[1,2];
F5 / F7 / F8 / Add Watch Heiko |
Re: Stringgrid Spalten in Zeilen tauschen
Zitat:
rechts ist kein i.. Ich versteh nicht... Das i soll doch nur die Zeilennummer des Zielgrids um eine Zeile weiterschalten? Und das funktioniert nicht! Ach so ich begreife :wall: andersrum ist es aber auch nicht möglich. So habe ich aber keine Idee für die ZeilenWeiterSchaltung. |
Re: Stringgrid Spalten in Zeilen tauschen
Wenn ich das Problem richtig verstanden habe sollte das hier weiter hefen:
Delphi-Quellcode:
Gruß
var
x,y : integer; begin { dient nur zum füllen } y:=0; for x:=0 to 5 do stringgrid1.Cells[y,x]:=inttohex(x,2); y:=1; for x:=0 to 5 do stringgrid1.Cells[y,x]:=char(x+32); stringgrid1.rowcount:=6; {x+1} stringgrid1.ColCount:=2; {y+1} {--------------------------------------} for x:=0 to stringgrid1.RowCount-1 do for y:=0 to stringgrid1.ColCount-1 do stringgrid2.Cells[x,y]:=stringgrid1.Cells[y,x]; end; K-H |
Re: Stringgrid Spalten in Zeilen tauschen
Manchmal ist man wirklich :wall: :wall: :wall:
Anbei meine Lösung verwendet wurde ein Jedi Stringgrid
Delphi-Quellcode:
procedure TForm1.einfuegenClick(Sender: TObject);
var i,j,Zeile,Spalte :integer; begin begin Spalte := 0; For j := 0 to SG1.RowCount-1 do begin SG2.Cells[Spalte,1] := SG1.Cells[1,j]; Spalte := Spalte+1; end; end; SG2.InsertRow(1); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:10 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-2025 by Thomas Breitkreuz