Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-07-2018
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: Jun 2010
Posts: 371
Poder: 9
bulc Va por buen camino
Obtener el valor de la propiedad Width y Hignt

Deseo cambiar un TDBImage, posicionándolo como vertical (Portrait) u horizontal (Marine) según que el ancho (Width) sea mayor o menor que el alto (Hight).
Usaría el Evento onDataChange del DataSource para que evalúe dichas propiedades y se muestre del modo correcto. Lo sé hacer con un CheckBox a la vista del gráfico.
Mi pregunta es:
¿Cuál es la mejor manera de obtener el valor de esa propiedad? Probaré con Modulo1.FDQuery2.FieldByName('foto').... pero ahí tropiezo y no sé seguir. ¿Debo usar un formato Picture?
Saludos,
bulc
Responder Con Cita
  #2  
Antiguo 02-07-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: Dec 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.099
Poder: 30
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.

Una opcion para obtener los valores del ancho y alto de la imágen almacenada en el campo 'FOTO' es:
Código Delphi [-]
function ImageFieldWidthHeight(aField: TField): TPoint;
var
  BF: TBlobField;
  GR: TGraphic;
  FS: Word;
  st: string;
begin
  BF := TBlobField(aField);
  // obtener signature de la imágen
  CopyMemory(@FS, @BF.Value[1], SizeOf(FS));
  st := IntToHex(FS, 4);

  GR := TGraphic.Create;
  try
    if st = '4D42' then      GR := TBitmap.Create
    else if st = 'D8FF' then GR := TJPEGImage.Create
    else if st = '0000' then GR := TIcon.Create
    // else if st = ... etc, etc
    else  raise Exception.Create('Formato de imágen no soportado');
    GR.Assign(BF);
    Result := Point(GR.Width, GR.Height);
  finally
    GR.Free;
  end;
end;

Uso:
Código Delphi [-]
...
var
  p: TPoint;
begin
   p := ImageFieldWidthHeight(Query.FieldByName('FOTO'));
   ShowMessageFmt('Width:%5d%sHeight:%5d', [p.X, #10, p.Y]);
...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Obtener valor de una propiedad de una Tabla en un Form1 desde otro Form2 Yugo C++ Builder 6 19-11-2015 10:57:08
Cambiar de valor la propiedad TTabItem.width fedesoft FireMonkey 2 26-08-2015 23:55:10
valor de defecto de propiedad. martinartaza OOP 5 10-06-2011 19:47:08
width con valor mínimo edusus Varios 1 02-04-2006 11:58:11
Como leer el valor de una propiedad en una DLL ? Delphiboy Varios 2 27-01-2006 16:18:32


La franja horaria es GMT +2. Ahora son las 06:20:01.


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