Hola blackpic,
Ahora si se entiende.
El motivo de porqué te aparece Delphi repetido en las filas o columnas se debe a que estás abriendo el archivo en todas las filas o columnas.
Los ejemplos que te he dado son simples. Se supone que tu en base a esos ejemplos los adaptaras a tus necesidades.
En el primer código que te he mostrado, dado el contenido de un TEdit, se "crean" las columnas necesarias para contener todo el texto, y luego caracter a caracter se va copiando el contenido.
En el segundo ejemplo he dado a conocer la forma en como se puede leer un archivo de texto, y mostrarlo en una fila o columna (según sea el caso).
Estás confundiendo las propiedades Cells, Rows, y Cols.
En resumen es:
Cells: para acceder a una celda dada una posición determinada.
Cols: para acceder a una columna determinada.
Rows: para acceder a una fila determinada.
Cuando te recomendé ir a la ayuda, no es por vago, sino porque allí está bien aclarado el uso de cada propiedad. No te enojes pero cuando uno hace uso de un componente, es mejor ir a la ayuda y documentarse un poco de su uso.
El problema es que el TStringGrid no cuenta con un método, procedimiento o función que lea el contenido de un archivo y lo escriba en el TStringGrid, caracter a carácter en una fila o columna distinta. Necesariamente debes implementar tu la rutina que haga lo que necesitas.
Y disculpa que sea insistente, pero tu explicación está muy floja.
¿Cuántas líneas tiene el texto? ¿Sólo se lee una? ¿10? ¿200?
Nos comentabas que el archivo tiene el texto "Delphi". ¿Sólo eso? ¿Esa única línea? ¿O es que lo hiciste a modo de ejemplo?
Si el archivo tiene muchas líneas, y se debe volcar el contenido caracter a caracter, habrá que recorrer cada línea y traspasar el contenido de forma similar al primer ejemplo. Pero hay que considerar algo fundamental: la cantidad de columnas (o fila, según sea el caso) debe ser del largo de la línea más larga de todo el archivo.
Es decir, que dado un archivo con un texto así:
Código:
Texto1
UnTexto
Otro texto más largo
En un StringGrid, por lo que parecieran ser tus breves escritos, debería quedar así:
Código:
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| T | e | x | t | o | 1 | | | | | | | | | | | | | | |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| U | n | T | e | x | t | o | | | | | | | | | | | | | |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| O | t | r | o | | t | e | x | t | o | | m | á | s | | l | a | r | g | o |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
Si eso es correcto, me parece más apropiado leer el archivo desde un TStringList, y luego trabajar linea a linea y copiando el contenido.
Algo así:
Código Delphi
[-]procedure TForm1.Button1Click(Sender: TObject);
var lista: TStringList;
cant, max, i,j: integer;
begin
lista := TStringList.Create;
lista.LoadFromFile('C:\Documents and Settings\Administrador\Escritorio\la oreja.txt');
max := 0;
for i := 0 to lista.Count - 1 do
if max < Length(lista[i])
then max := Length(lista[i]);
StringGrid1.ColCount := max + 1; StringGrid1.RowCount := lista.Count + 1;
for i := 0 to lista.Count - 1 do
begin
for j := 1 to Length(Lista[i]) do
StringGrid1.Cells[j,i + 1] := lista[i][j];
end;
lista.Free;
end;
Notarás que ya sea que en el archivo exista una o más líneas el código funciona.
Saludos,