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 Gedankenschupps SL.Strings[i] ---> Stringrid.Cells[x,y] (https://www.delphipraxis.net/134365-gedankenschupps-sl-strings%5Bi%5D-stringrid-cells%5Bx-y%5D.html)

Steku 20. Mai 2009 17:45


Gedankenschupps SL.Strings[i] ---> Stringrid.Cells[x,y]
 
Hallo zusammen,

ich bräuchte mal einen Gedankenschupps, da ich momentan
vor lauter Buchstaben den Bildschirm nicht mehr sehe.

Nach langer Zeit arbeite ich mich gerade wieder in die Delphi
Grundlagen ein und stehe bei meinen momentanen Bastelarbeiten
völlig auf dem Schlauch.

Ich habe mir eine Textdatei in eine Stringliste geladen, welche
Beispielhaft folgende Form hat:

Test1
Test2
Test3
Test11
Test22
Test33
Test111
Test222
Test333
..
..

Ich möchte nun diese Liste in ein Stringgrid laden, so dass jeweils
der 1/4/7 , 2/5/8, usw... String der Stringliste in einer Zeile
des Stringgrids stehen.

Bitte um einen Schupps, Schlagwort, das mich auf den Weg bringt.

Danke im Voraus und Gruß,
Steku

P.S. Suche in der DP hat 20 Seiten ergeben, bin aber nicht weiter gekommen...schnief

Alaitoc 20. Mai 2009 18:00

Re: Gedankenschupps SL.Strings[i] ---> Stringrid.Cells[x,
 
Tach,

also z.b.

Delphi-Quellcode:
for i:=0 to Stringlist.Count -1 do
begin
  if i mod 3 = 0 then
  begin
    //Bei 1/4/7 ...
    StringGrid[spalte,zeile]:=Stringlist[i];
    spalte:=0;
    inc(zeile);
  end
  else if i mod 2 = 0 then
  begin
    //Bei 2/5/8 ...
    StringGrid[spalte,zeile]:=Stringlist[i];
    inc(spalte);
  end
  else if i mod 1 = 0 then
  begin
    //Bei 3/6/9 ...
    StringGrid[spalte,zeile]:=Stringlist[i];
    inc(spalte);
  end;
end
mod = Rest von i/Zahl

Ist halt nur so in etwa nen Anstupser und würde halt nur nachdem in welchem Format das ganze basiert eine ziemlich große If-Anweisung werden ;o

Oder was du noch machen könntest wäre durch die Liste zu iterieren und die Werte immer in die Spalten eintragen, wenn du dann am Ende der Zeile angekommen bist halt in die nächste wechseln...also so z.b. :

Delphi-Quellcode:
for i:=0 to Stringlist.Count -1 do
begin
  Stringrid[Spalte,Zeile]:=Stringlist[i];
  if Spalte=Stringrid.Spaltenanzahl then
  begin
    Spalte:=0;
    inc(Zeile);
  end
  else
  begin
    inc(Spalte);
  end;
end;
Was glaubich dann doch wahrscheinlich effizienter wäre *g*

Steku 20. Mai 2009 21:40

Re: Gedankenschupps SL.Strings[i] ---> Stringrid.Cells[x,
 
Hallo Alaitoc,

vielen Dank für den Schupps,
hat sehr gut funktioniert.

Schönen Abend noch,
Steku


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:00 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 by Thomas Breitkreuz