Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-02-2012
Jose Roman Jose Roman is offline
Miembro
 
Registrado: jul 2006
Ubicación: Colombia
Posts: 361
Poder: 18
Jose Roman Va por buen camino
Archivo INI y propiedad FontStyle

Hola a todos, resulta que estoy creando un reporte con QuickReport con algunas cosas en tiempo de ejecución, mi duda es la siguiente:

Creo un QRLabel y en el archivo INI deseo asignarle la propiedad fsBold pero me da error al leer la fila, esto lo deseo hacer pero sin llegar hacer un condicional IF. Este es la linea:
Código Delphi [-]
qrLabel.Font.Style    := ReadString('TITU','Style','');

Gracias de antemano por la ayuda brindada.
Responder Con Cita
  #2  
Antiguo 21-02-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Abría que ver:
1- Como llamas al archivo INI desde el principio.
2- Como creas el qreport.
3- En que linea del INI esta el style del qrlabel.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 21-02-2012
Jose Roman Jose Roman is offline
Miembro
 
Registrado: jul 2006
Ubicación: Colombia
Posts: 361
Poder: 18
Jose Roman Va por buen camino
Gracias por responder:
- El archivo INI se llama de igual manera que el ejecutable
- Ya tengo un reporte de la clase TQuickRep creado, solo que esta en blanco para que este se llene con lo necesario en el archivo INI
- La linea del archivo INI es :
[TITU]
Top=0
Left=56
Height=23
Width=311
Font=BankGothic Md BT
Style=fsBold
Size=14

Todo me lo crea y enseña el reporte con la configuración del INI solo con Style tengo el inconveniente.

Última edición por Jose Roman fecha: 21-02-2012 a las 22:40:14.
Responder Con Cita
  #4  
Antiguo 21-02-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
La propiedad Style es un conjunto, no un valor suelto. En lugar de guardar Style como una propiedad, podrías guardar cada uno de los posibles elementos, por ejemplo:

Código:
[TITU]
Bold=true
Italic=false
Entonces, para leer los valores, harías algo así:

Código Delphi [-]
Valor := ReadBool('TITU','Bold',false);
if Valor
  then qrLabel.Font.Style := qrLabel.Font.Style + [fsBold]
  else qrLabel.Font.Style := qrLabel.Font.Style - [fsBold];

// Saludos
Responder Con Cita
  #5  
Antiguo 21-02-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.048
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Y fsBold es un valor correcto para Style?
¿Puede tener otros valores 'sumados'?

Se me adelantó Román, era eso a donde quería llegar.
Responder Con Cita
  #6  
Antiguo 21-02-2012
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Muy posiblemente el error está en que la propiedad Style es de un tipo diferente a un string

Y por tanto cuando intentas leer el dato como string, y pasarlo a una propiedad de un tipo diferente, ¡pum! aparece salvaje error
Necesitas implementar de algún modo, una asociación entre el tipo que espera y lo guardado en el ini. No hay otra...

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #7  
Antiguo 21-02-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Cuando se meten los Maestros y con tan buenas respuestas, mejor, calladito Caral.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #8  
Antiguo 21-02-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Jose.

Como te comentó roman, la propiedad Style es un set, otra forma que se me ocurre podés lograrlo es:
Código Delphi [-]
procedure TForm.FormCreate(Sender: TObject);
begin
  with TIniFile.Create('C:\TEMP\ARCHIVO.INI') do
  try
    ...
    Label1.Font.Style:= TFontStyles(Byte(ReadInteger('LABEL1','STYLE',0)));
  finally
    Free;
  end;
end;
...
procedure TForm.FormDestroy(Sender: TObject);
begin
  with TIniFile.Create('C:\TEMP\ARCHIVO.INI') do
  try
    ...
    WriteInteger('LABEL1','STYLE',Byte(Label1.Font.Style));
  finally
    Free;
  end;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #9  
Antiguo 22-02-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Y nótese que estamos aplicando a rajatabla la regla 3 de la otra guía de estilo.

// Saludos
Responder Con Cita
  #10  
Antiguo 22-02-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.048
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Seguramente te han regalado esta navidad una nueva bola de cristal USB
Responder Con Cita
  #11  
Antiguo 22-02-2012
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Seguramente te han regalado esta navidad una nueva bola de cristal USB
¡La que yo tenía era a puerto serie! Espero que para mi próximo cumpleaños me regalen una que tenga conexión wifi y bluetooth. Como seguramente ya saben... todo es mejor si tiene bluetooth

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #12  
Antiguo 22-02-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.048
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Delphius Ver Mensaje
¡La que yo tenía era a puerto serie! Espero que para mi próximo cumpleaños me regalen una que tenga conexión wifi y bluetooth. Como seguramente ya saben... todo es mejor si tiene bluetooth
Saludos,
A ver si para el año que viene está mejor la cosa por ahí, porque por lo que me ha contado un recién llegado argentino a España...
Aunque por aquí tampoco anda la cosa muy bien, a mí no me han traido este año ni carbón
Responder Con Cita
  #13  
Antiguo 22-02-2012
Jose Roman Jose Roman is offline
Miembro
 
Registrado: jul 2006
Ubicación: Colombia
Posts: 361
Poder: 18
Jose Roman Va por buen camino
Gracias a todos esta ayuda sirvió mucho
Responder Con Cita
  #14  
Antiguo 27-02-2012
Jose Roman Jose Roman is offline
Miembro
 
Registrado: jul 2006
Ubicación: Colombia
Posts: 361
Poder: 18
Jose Roman Va por buen camino
Hola...
Siguiendo con el reporte que he creado en tiempo de diseño, lo cree en un procedimiento (esto lo hice para cuadrar el titulo de un reporte el cual se modificara a gusto del cada usuario por medio de un archivo INI), todo funciona a la perfección y muestro un preliminar de como quedara:
Código Delphi [-]
with TqrPreview.Create(Application) do
try
  with TIniFile.Create(ChangeFileExt(Application.ExeName,'.INI')) do
  try
    ...
  finally
    free;
  end 
  Preview;
finally
  free;
end;
La duda mia es la siguiente, como puedo volver a utilizar este mismo código sin que se genere un error, es decir, son tres tipos de reportes pero llevan el mismo encabezado y no deseo escribir tres veces este mismo codigo y los tres reportes se llaman por medio de tres procedimientos distintos. Gracias
Responder Con Cita
  #15  
Antiguo 27-02-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Código Delphi [-]
Procedure GeneraReporte;
Begin
with TqrPreview.Create(Application) do
try
  with TIniFile.Create(ChangeFileExt(Application.ExeName,'.INI')) do
  try
    ...
  finally
    free;
  end 
  Preview;
finally
  free;
end;
end;

Llamado desde un boton:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
 GeneraReporte;
end;

Saludos
__________________
Siempre Novato
Responder Con Cita
  #16  
Antiguo 27-02-2012
Jose Roman Jose Roman is offline
Miembro
 
Registrado: jul 2006
Ubicación: Colombia
Posts: 361
Poder: 18
Jose Roman Va por buen camino
Gracias por responder, bueno quizas no me hice entender bien, hay un
Código Delphi [-]
procedure GeneraEncabezado
y en tiempo de ejecucion lo creo segun parametros de archivo INI, puedes ver que invoco
Código Delphi [-]
with TqrPreview.Create(Application) do
pero habra un procedimiento que llenara este informe de una manera y habra otro que la llena de otra manera el reporte (TQuickReport) lo cree en el encabezado pero tendria que crear otro TqrPreview en el otro procedimiento y este no genera el Encabezado, no se si me puedes entender bien
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
propiedad del dblookupcombobox Vales08 Varios 1 24-06-2011 23:37:41
no puedo abrir un archivo con ShellExecute si el archivo es variable belpab API de Windows 2 28-11-2007 16:24:22
Propiedad del DBGrid Iskariote0087 Varios 3 19-01-2006 15:53:46
Propiedad KeyValue i.larranaga Conexión con bases de datos 0 01-10-2004 14:18:07
como le coloco la propiedad a un tsession desde un archivo txt perico OOP 4 28-11-2003 15:22:44


La franja horaria es GMT +2. Ahora son las 13:20:28.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi