![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Ayuda con Archivos de Texto!!
Necesito obtener de un archivo de texto, línea por línea, y identificar si esa línea esta escrita solamente en mayúsculas. Para esta aplicación utilizo Delphi 5.
De antemano muchas gracias! ![]() |
#2
|
||||
|
||||
El archivo podrías leerlo con un TStringList. Para saber si una línea dada está en sólo mayúsculas, conviértela a mayúsculas y compárala con la original. Si coinciden es que estaba en sólo mayúsculas.
// Saludos |
#3
|
|||
|
|||
Ayuda, como hacer una llamada de un procedimiento, dentro de otro procedimiento?
Hola Roman!, muchas gracias por tu respuesta, ya me salio el procedimiento, pero ahora necesito saber como llamar al procedimiento:
ListBox1DrawItem(Control: TWinControl; Index: Integer;Rect: TRect; State:TOwnerDrawState); Desde el procedimiento que ya hice, lo que quiero hacer es lo siguiente: Que cuando se cumpla la condición (que la línea del archivo de texto este escrita en mayúsculas), entre al procedimiento ListBox1DrawItem, para cambiar el formato de esas líneas. De antemano Gracias!, y un Saludo! ![]() |
#4
|
||||
|
||||
Lo estás enfocando mal. OnDrawItem es un evento y los eventos no son procedimientos que uno mande ejecutar, sino que el mismo Delphi (la VCL para ser más precisos) se encarga de llamarlos cuando es necesario. En este caso, OnDrawItem se llama cada vez que por una u otra razón debe dibujarse algún elemento de la lista y el código que pongas ahí debe estar preparado para dibujar correctamente el texto.
Dicho de otra forma, no es tu procedimiento quien debe llamar al evento sino alrevés. En el código de OnDrawItem haces la comparación para ver si el ítem está escrito en mayúsculas y de ser así cambias el formato. // Saludos |
#5
|
||||
|
||||
Existe una forma mas sencilla:
Espero que te sea de utilidad. |
#6
|
|||
|
|||
Espero me puedas ayudar
Hola Roman!, otra vez yo, Gracias por tú respuesta, realmente estaba confundida, pero todavía no me sale, creo tener algún error en el código, yo creo que es por el ciclo, espero me puedas ayudar.
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); begin I:=0; arch:=TStringList.Create; arch.LoadFromFile('c:\prueba.txt'); arch.Count; with (Control as TListBox) do begin while I<arch.Count do begin cadena:=arch.Strings[i]; if AnsiUpperCase(cadena)= cadena then begin Canvas.Font.Color:=clNavy ; Canvas.Font.Style:=[fsBold]; Canvas.Brush.Color:=$00DDDDDD; I:=I+1; end else begin Canvas.Font.Color:=clBlack; Canvas.FillRect(Rect); Canvas.TextOut(Rect.Left,Rect.Top,Items[Index]); I:=I+1; end; end; end; arch.Free; end; De ante mano Gracias!, y un Saludo!. ![]() |
![]() |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
![]() |
|