Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Textdatei in Stringgrid (https://www.delphipraxis.net/96551-textdatei-stringgrid.html)

onkelmehli 26. Jul 2007 12:47


Textdatei in Stringgrid
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo !

Ich möchte eine Textdatei in ein Stringgrid einlesen, soweit kein Problem. Aber wie kann ich nach eigenem Ermessen festlegen, welcher Textbaustein in welche Zelle gehören soll ?
Es gibt in Excel die Möglichkeit, Daten zu Importieren, nun kann man im Assistenten die Spalten(-breite) selbst festlegen (siehe Bild im Anhang).

Wenn ich die Länge der Zeichen habe, ist dies ja kein Problem, nur wie lege ich die Spaltenbreite fest ? Gibt es eine Komponente (Listbox o. ä.) wie im Bild, in der man die Anzahl der Zeichen anzeigen und dann per Klick festlegt, bis hierhin ist Spalte1, bis hierhin ist Spalte2 usw. ?

Es gibt diese TxtDatasetDemo die genau so einen Assistenten darstellt, nur leider fehlt hierzu die nötige Komponente.

Kann mir jemand weiter helfen ?


Gruß

Matthias

angos 26. Jul 2007 13:00

Re: Textdatei in Stringgrid
 
Hi,

Delphi-Quellcode:
Canvas.TextWidth()
gibt dir die Länge des Textes in Pixeln zurück. Wenn du nun eine Festbreitenschrift verwendest(solltest du ;) ), kannst du damit die einzelnen Breiten herausfiltern und passend setzen.

Gruß

onkelmehli 26. Jul 2007 13:58

Re: Textdatei in Stringgrid
 
Hallo,

danke für die Antwort !

Aber wenn ich das richtig sehe, gibt mir Canvas.TextWidth() die gesamte Länge des Strings in Pixeln zurück, ich möchte aber die Länge bis zu dem Punkt, den ich anklicke ?

Gruß

Matthias

angos 27. Jul 2007 06:38

Re: Textdatei in Stringgrid
 
ja, das stimmt. Aber wenn du eine Festbrewtien.-Schrift verwendest (zB Courier New) , dann sind ja alle Buchstaben gleichbreit und du kannst dir somit die anzahl der Buchstaben errechnen.


Gruß

onkelmehli 27. Jul 2007 11:32

Re: Textdatei in Stringgrid
 
Ok, ich hab mich gerade ein wenig mit CaretPos beschäftigt und festgestellt, das dies wahrscheinlich eine sinnvolle Lösung ist, um die Spaltenlänge auszulesen.

Nun würde ich aber gern, genauso wie im angehängten Screen, das über dem Richedit eine Leiste vorhanden ist, die mir die Anzahl der Zeichen anzeigt, gibt es hierfür eine Komponente ?

f.siebler 27. Jul 2007 11:44

Re: Textdatei in Stringgrid
 
Moin,

das hilft dir zwar nicht wirklich weiter, aber ich würde es gut finden, wenn du die Bilder etc, als .jpg oder so anhängt, nen halbes MB BMP als Anhang macht leider wenig spass wenn man nicht die mega Leitung hat :-)

Eine Komponente die ein Lineal oder ähnlich anzeigt fällt mir gerade net, ein schau sonst mal bei Torry...

onkelmehli 27. Jul 2007 12:03

Re: Textdatei in Stringgrid
 
Moin f.siebler,

sorry, war mir gar nicht aufgefallen, das das Bild so groß ist, hab es nun als .gif angehangen :zwinker:

danke für den Tipp, werd gleich mal nachschauen....

Hansa 27. Jul 2007 20:44

Re: Textdatei in Stringgrid
 
Zitat:

Zitat von angos
..Wenn du nun eine Festbreitenschrift verwendest(solltest du ;) ..

Warum sollte er das ? :shock: Das macht vielleicht Sinn bei zeilenorientierten Steuerelementen (Memo, Listbox etc.), aber nicht bei einem Stringgrid.

onkelmehli 28. Jul 2007 11:25

Re: Textdatei in Stringgrid
 
Hallo Hansa,

Zitat:

Das macht vielleicht Sinn bei zeilenorientierten Steuerelementen (Memo, Listbox etc.), aber nicht bei einem Stringgrid.
im Stringgrid ist die Schriftart auch egal, denn dort sind die Daten ja schon importiert, ich möchte bevor ich eine Textdatei importiere festlegen, wie breit die Spalten beim Import sein sollen, sieh dir am besten das Bild oder den Import Wizard in Excel an, dann ist es glaub ich einfacher zu verstehen was mein eigentliches Ziel ist, genau so ein Wizard zu erstellen.

Gruß

Matthias

Hansa 28. Jul 2007 13:46

Re: Textdatei in Stringgrid
 
Dieses Lineal ist ja zumindest schon halbwegs im Stringgrid eingebaut. Verändern der Spaltenbreiten durch ziehen in der Überschriftszeile. Oder geht das nur zur Designzeit ? K.A., brauche das sowieso nicht. Solange nicht geklärt ist, was eine Textdatei in einem Stringgrid zu suchen hat, kommt wohl sowieso keine brauchbare Antwort.

Will ich in der 2. Spalte Strings unterbringen mit max. 25 Zeichen, dann geht das so :

Delphi-Quellcode:
sg.ColWidths [2] := 25 * (Font.Size + 1);
Wie gesagt : die Schriftart interessiert nicht ! Egal welche, 25 Zeichen werden immer da rein passen, ohne was abzuschneiden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:55 Uhr.
Seite 1 von 2  1 2      

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