Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-02-2004
ciscu ciscu is offline
Miembro
 
Registrado: jun 2003
Ubicación: Granollers
Posts: 114
Poder: 21
ciscu Va por buen camino
Como guardar una array en una base datos?

Hola a todos!!!

Veréis, estoy haciendo un programa ligado con tablas de una base de datos, y entre estas tablas hay una en que guardo las caracteristicas de la fuente utilizada para los quickreports para las cabeceras de facturas, clientes, etc.

Hay un apartado en mi programa en que puedes configurar el tipo de fuente y despues de haber hecho los cambios los guardo en la tabla (en un campo guardo el tipo de fuente, el tamaño y el color.,
Pero todo iva bien cuando me encontré el problema de guardar una variable de tipo TFONTSTYLES en una base de datos para el estilo de fuente (cursiva, negrita, etc...), como:

table1.fields[0].as?????:=fontdialog1.font.style;

Podrias ayudarme a encontrar alguna solución para poder guardar el estilo de la fuente en la base de datos?

Gracias anticipadas
Responder Con Cita
  #2  
Antiguo 10-02-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Aclaremos que TFontStyles no es un array, es un "set of" muchas veces nombrados como "conjuntos".
Lo que podrías hacer es descomponer este "conjunto", e ir agregando valores a una variable, y a la inversa por ejemplo:
Código:
function FontStyleToInteger(AStyle: TFontStyles): Integer;
begin
  Result := 0;

  if fsBold in AStyle Then
    Result := Result or $1;

  if fsItalic in AStyle Then
    Result := Result or $2;

  if fsUnderline in AStyle Then
    Result := Result or $4;

  if fsStrikeOut in AStyle Then
    Result := Result or $8;
end;

function IntegerToFontStyle(Value: Integer): TFontStyles;
begin
  Result := [];

  if (Value and $1) = $1 Then
    Include(Result, fsBold);

  if (Value and $2) = $2 Then
    Include(Result, fsItalic);

  if (Value and $4) = $4 Then
    Include(Result, fsUnderline);

  if (Value and $8) = $8 Then
    Include(Result, fsStrikeOut);
end;
Otras ideas que se me ocurren, es copiar el dato de en memoria a un string, o utilizar las WinApi´s para obtener este tipo de valor del dato de la fuente.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 10-02-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Me uno a la Sugerencia de Delphi.com.ar añadiendo que se guarde en la base de datos como un String con el siguiente formato:

Tipo de fuente:tamaño de fuente : opciones de negrita y demás
Ejemplo: Times New Roman:12:5


Lo guardas como un String en la base de datos, y despues al recuperarlo, usas un StringList en el que cargas la linea al completo, usando como separador los dos puntos ":"
Código:
MiStringList.delimitedChar := ':';
MiStringList.delimitedText:= <Linea de la base de datos>

nombre := MiStringList[0];
tamaño := MiStringList[1];
opciones:= MiStringList[2];
No sé si te gustará la idea. Saludos

Última edición por Lepe fecha: 10-02-2004 a las 18:49:00.
Responder Con Cita
  #4  
Antiguo 11-02-2004
ciscu ciscu is offline
Miembro
 
Registrado: jun 2003
Ubicación: Granollers
Posts: 114
Poder: 21
ciscu Va por buen camino
Saludos cordiales....!!!

Gracias por responderme, seguro que de una u otra forma me saldrá bien!!

Saludos!!!
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


La franja horaria es GMT +2. Ahora son las 06:13:08.


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