Delphi-PRAXiS

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 gegensatz zu rowcount (https://www.delphipraxis.net/127393-gegensatz-zu-rowcount.html)

Molzer 12. Jan 2009 17:17


gegensatz zu rowcount
 
Hallo!

mit Rowcount+1 erstelle ich am ende meines stringgrid eine zeile,
ich würde gerne am anfang eine erstellen..

finde leider nichts..


lg

himitsu 12. Jan 2009 17:22

Re: gegensatz zu rowcount
 
da wirst du wohl alle Zeilen eine runterschieben müssen und die 1. Zeile dann überschreiben.

Helmi 12. Jan 2009 17:27

Re: gegensatz zu rowcount
 
Oder du probierst mal den Code von den Schweizern aus...

Der.Kaktus 12. Jan 2009 17:31

Re: gegensatz zu rowcount
 
interessante Frage..es gibt ja die Funktion
Delphi-Quellcode:
 ...Row[0].Insert(0,'test');
welche aber "so" wohl nicht funktioniert :gruebel:

DeddyH 12. Jan 2009 17:46

Re: gegensatz zu rowcount
 
Würde die nicht eine neue Spalte erzeugen?

Der.Kaktus 12. Jan 2009 17:48

Re: gegensatz zu rowcount
 
Zitat:

Zitat von DeddyH
Würde die nicht eine neue Spalte erzeugen?

nöö, er bricht ab mit Exception...es kann keine Row eingefuegt bzw. geloescht werden(Standardeinstellungen verwendet) :gruebel:

[OT] P.S.: gesundes Neues noch Euch beiden wuensch!![/OT]

DeddyH 12. Jan 2009 17:54

Re: gegensatz zu rowcount
 
Das dachte ich mir fast, da das ja nur eine Spalte in der ersten Zeile wäre.

[OT] Danke, Dir auch :cheers: [/OT]

Lannes 12. Jan 2009 18:05

Re: gegensatz zu rowcount
 
Hallo,

richtig, abgesehen davon, das es ...Rows[0].Insert(0,'test'); sein müsste,
in Rows werden die Zellen aus dem Cells-Array angeboten.

Da müsste ja die Prozedure ein Array in folgender Form erzeugen:
Code:
.__ __ __ __ __
|__|__|__|__|__|
|__|__|__|__|
|__|__|__|__|
|__|__|__|__|
Die Prozedur aus Grids.pas:

Delphi-Quellcode:
procedure TStringGridStrings.Insert(Index: Integer; const S: string);
begin
  InvalidOp(sInvalidStringGridOp);
end;
Warum ist diese Prozedur eigentlich angelegt,veröffenlicht :gruebel:

DeddyH 12. Jan 2009 18:07

Re: gegensatz zu rowcount
 
Zitat:

Zitat von Lannes
Warum ist diese Prozedur eigentlich angelegt,veröffenlicht :gruebel:

Das müsstest Du bei Kotgier erfragen :mrgreen:

Der.Kaktus 12. Jan 2009 18:14

Re: gegensatz zu rowcount
 
Ok, "s" vergessen :oops: ..aber hast Recht...warum gibt es diese Funktion..wenn sie net geht..auch codegear weiss es sicher net..Entwickler sicher aus Fusionsgruenden aus der Entwicklung in den Vertrieb versetzt (wie in vielen Firmen) *loool* :-D

Lannes 12. Jan 2009 18:28

Re: gegensatz zu rowcount
 
Hallo,

bis ich das dann geklärt hab mach ich es mal so: :mrgreen:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  StringGrid1.RowCount := 3;
  StringGrid1.ColCount := 3;
  StringGrid1.Rows[1].Text := 'eins'+#13#10+'zwei'+#13#10+'drei'+#13#10+#13#10;
  //Rows[x].Count jetzt 4
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  StringGrid1.Cells[3,1] := 'test';
  StringGrid1.Rows[1].Exchange(1,3);
  StringGrid1.Rows[1].Exchange(3,2);
end;

Der.Kaktus 12. Jan 2009 18:29

Re: gegensatz zu rowcount
 
Zitat:

Zitat von Lannes
Hallo,

bis ich das dann geklärt hab mach ich es mal so: :mrgreen:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  StringGrid1.RowCount := 3;
  StringGrid1.ColCount := 3;
  StringGrid1.Rows[1].Text := 'eins'+#13#10+'zwei'+#13#10+'drei'+#13#10+#13#10;
  //Rows[x].Count jetzt 4
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  StringGrid1.Rows[1].Exchange(1,3);
  StringGrid1.Rows[1].Exchange(3,2);
end;

Das iss ja von hinten durch die Brust ins Auge :-D

Klaus01 12. Jan 2009 19:15

Re: gegensatz zu rowcount
 
Guten Abend,

marabu hatte hier diesen Code
zum Einfügen von Zeilen in das StringGrid gepostet:
Delphi-Quellcode:
procedure TDemoForm.InsertRow(iRow: integer);
var
  i: integer;
begin
  with StringGrid do begin
    if iRow < FixedRows then
      raise Exception.Create('you cannot insert a fixed row');
    RowCount := RowCount + 1;
    for i := RowCount - 1 downto Succ(iRow) do
      Rows[i].Assign(Rows[i-1]);
    Rows[iRow].Clear;
  end;
end;
Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:01 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