Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TObjectlist in StringGrid (https://www.delphipraxis.net/183621-tobjectlist-stringgrid.html)

StepByStep 23. Jan 2015 11:28

Delphi-Version: XE2

TObjectlist in StringGrid
 
Also nachdem das Rechnen nun einwandfrei funktioniert, möchte ich gerne eine TObjectlist in einem StringGrid ausgeben - das funktioniert bereits!
Es geht mir nur darum, dass ich in dieser Liste ein Kommentar habe (string) und ich dieses dort einfügen möchte.

Ich habe gelesen, dass man wohl keine Zeilenumbrüche in StringGrids machen kann, ist das richtig?
Ansonsten möchte ich nämlich so vorgehen (bisschen Pseudocode):

Code:
wenn Liste[i].DerString > Liste[i].DerString[60] (also länger als 60 Zeichen) dann
iZeichen := 60;
wiederhole:
wenn Liste[i].DerString[iZeichen] ungleich '' ist dann
iZeichen -1
ansonsten
mache dort Zeilenumbruch
bis Leerzeichen kommt
schreibe String in StringGrid mit Zeilenumbruch
Soweit meine Idee...

DeddyH 23. Jan 2015 12:53

AW: TObjectlist in StringGrid
 
http://stackoverflow.com/questions/4...tringgrid-cell
Ist halt ein wenig eigene Arbeit zu investieren.

Perlsau 23. Jan 2015 12:59

AW: TObjectlist in StringGrid
 
Zitat:

Zitat von StepByStep (Beitrag 1287545)
Ich habe gelesen, dass man wohl keine Zeilenumbrüche in StringGrids machen kann, ist das richtig?

Doch, das ginge schon. Das TjvDBGrid aus den Jedi-Komponenten erlaubt mit Hilfe seiner beiden Properties WordWrap und WordWrapAllFields sogar Zeilenumbrüche. Um das zu verwenden, müßtest du die darzustellenden Daten jedoch in ein TClientDataSet einfügen und dann mittels DataSource die Verbindung zum TjvDBGrid herstellen.

StepByStep 23. Jan 2015 15:25

AW: TObjectlist in StringGrid
 
Also ich wollte mal intuitiv sein und habe es mal auf eigenem Wege probiert. Dabei musste ich feststellen, dass ich entweder falsch programmiert habe oder ich einfach nicht den Durchblick habe... so oder so kommt es auf das Selbe heraus.

Delphi-Quellcode:
        if Length(Sumlist[iY - 1].sStichwort) > 50 then // Wenn mein String länger als 50 Chars ist
        begin
          iStrCount := 50;
          repeat
            if Sumlist[iY - 1].sStichwort[iStrCount] <> '' then // Wenn ein Leerzeichen gefunden wurde
            begin
              iStrCount := iStrCount - 1;
            end
            else
            begin
              iCounter := 1;
              sNote   := Copy(Sumlist[iY - 1].sStichwort, iStrCount + 1,
                (Length(Sumlist[iY - 1].sStichwort[iStrCount + 1]) - iStrCount) - 2); // Kopiere alles nach dem ersten Leerzeichen in diesen String
              Auskunft_strgr.RowCount           := Auskunft_strgr.RowCount + 1;
              iNextRow                          := iY + 1;
              Auskunft_strgr.Cells[iX, iNextRow] := sNote; // Gebe ihn in der nächsten Reihe aus
            end;
          until iStrCount = 1;
          Auskunft_strgr.Cells[iX, iY] := Sumlist[iY - 1].sStichwort;
        end
        else
        begin
          Auskunft_strgr.Cells[iX, iY] := Sumlist[iY - 1].sStichwort;
        end;
Generell sollte das so doch auch funktionieren oder irre ich mich? Was mache ich falsch?

Gruß
Jan

Jumpy 23. Jan 2015 15:34

AW: TObjectlist in StringGrid
 
Delphi-Quellcode:
sNote := Copy(Sumlist[iY - 1].sStichwort, iStrCount + 1,
                (Length(Sumlist[iY - 1].sStichwort[iStrCount + 1]) - iStrCount) - 2); // Kopiere alles nach dem ersten Leerzeichen in diesen String
Das scheint mir auf jeden Fall schon mal falsch zu sein, da
Code:
Length(Sumlist[iY - 1].sStichwort[iStrCount + 1])
= 1 ist, oder?


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