Estás mezclando dos cosas:
- Leer el archivo
- Colorear las líneas en mayúsculas
Comenzaste este hilo preguntando cómo leer un archivo de texto y determinar si una línea está en mayúsculas o no. Después pasaste al tema del ListBox y no queda claro del todo claro su relación con el archivo.
Si el ListBox lo llenas con las líneas del archivo entonces no necesitas ningún TStringList aparte, basta que hagas:
Código Delphi
[-]
ListBox1.Items.LoadFromFile('c:\prueba.txt');
La propiedad Items es ya un TStringList (más o menos).
Pero por otra parte recuerda: tú no pintas los elementos del ListBox, únicamente indicas bajo qué condiciones un elemento debe ir de un color u otro.
En el evento OnDrawItem
no lees el archivo, ése ya lo leíste previamente. El parámetro Index indica el ítem que
en esos momentos (cuando la VCL llama al evento) se va a dibujar y es cuando debes verificar si está en mayúsculas:
Código:
// Pseudo-código
Si el ítem con índice Index del ListBox está en mayúsculas entonces
Cambiar propiedades de Canvas.Font y Canvas.Brush;
Imprimir la cadena
// Saludos