Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   StringGrid neue Zeile oben einfügen (https://www.delphipraxis.net/184529-stringgrid-neue-zeile-oben-einfuegen.html)

strom 2. Apr 2015 08:00

StringGrid neue Zeile oben einfügen
 
hallo,

möchte immer die aktuellen Zeilen oben haben!
wie löse ich dieses Problem?

Delphi-Quellcode:
var
 i: Integer;
begin
 i := StringGrid1.RowCount;
    StringGrid1.RowCount := i +1;
    StringGrid1.Cells[1, i] := IntToStr(zaehler);
    inc(zaehler);
     StringGrid1.Cells [2, i] := FormatDateTime ('dd:mm:yyyy', Now);
     StringGrid1.Cells [3, i] := FormatDateTime ('hh:nn:ss', Now);
     StringGrid1.Cells [4, i] := ('Log * '+ Edit6.Text +' * User ID * '+ Edit3.Text);
end;

PaddyVII 2. Apr 2015 08:09

AW: StringGrid neue Zeile oben einfügen
 
Zitat:

i := StringGrid1.RowCount;
StringGrid1.RowCount := i +1;
Bist du sicher dass das soo funktioniert...?? rowcount geht man (soo kenn ichs) mit ner schleife von 0 to stringGrid1.Rowcount -1 durch...machst du jetzt i plus 1 in deinem code, dann gibts nen Bereichsfehler...glaub ich...oder hast dus getestet?

himitsu 2. Apr 2015 08:24

AW: StringGrid neue Zeile oben einfügen
 
Mit i+1 wird eine Zeile hinzugefügt, aber quasi nur am Ende.

Also ja, jetzt muß man nur noch alle bestehenden Inhalte um je eine Zeile nach unten kopieren (natürlich von unten nach oben, um nichts zu überschreiben).
Au0er es gäbe zufällig einen Insert-Befehl, welcher das Umkopieren für einen übernimmt.

Jumpy 2. Apr 2015 08:26

AW: StringGrid neue Zeile oben einfügen
 
Da ein StringGrid afaik oben bei 0 anfängt und unten bei count-1 aufhört musst du, wenn du oben etwas einfügen willst zunächst RowCount um 1 erhöhen, dann alle Zeilen von Count-2 bis 0 um eins nach unten verschieben und dann erst in der Zeile 0 das neue einfügen.

baumina 2. Apr 2015 08:28

AW: StringGrid neue Zeile oben einfügen
 
Mein Freund Google spuckt gewaltig viel zu diesem Thema aus, z.B.: http://www.swissdelphicenter.com/de/showcode.php?id=460

Sir Rufo 2. Apr 2015 12:11

AW: StringGrid neue Zeile oben einfügen
 
Sobald man mit der Unsitte (ich persönlich halte es für Unfug) die Controls zur Datenspeicherung zu nutzen aufhört, ist das Problem kein Problem mehr.

Dann hat man nur noch eine Präsentations-Methode für eine Liste und ein StringGrid. Nach jeder Änderung an der Liste ruft man die Präsentations-Methode auf und schon ist es wie gewünscht.


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