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 01-09-2007
Avatar de BuenaOnda
BuenaOnda BuenaOnda is offline
Miembro
 
Registrado: feb 2006
Ubicación: La Serena - Chile
Posts: 347
Poder: 19
BuenaOnda Va por buen camino
Question problemas de velocidad con Skin..

Hola.

Amigos.. alguien me podria decir como puedo deshabilitar la funcionalidad del skin de mi sistema, utilizo los VclSckins, en el momento de realizar un proceso que demanda gran cantidad de recursos( si dejo el Skin cono desactivado Funciona, pero le quita la Pariencia a mi sistema, lo cual no es la idea ), me gustaria que mi sistema siguiera funcionando, con la misma apariencia, pero que el skin no influya en los procesos...muchas gracias por su ayuda..
Responder Con Cita
  #2  
Antiguo 01-09-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Quién diría que el "Skin" influye... claro que depende. ¿En el proceso que mencionas actualizas la interfaz? Supongo que si actualizas un "Label", por ejemplo, tal vez el "Skin" entre en juego, porque, de otro modo... a bote pronto no sé me ocurre cómo iba a influir el "Skin"...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 01-09-2007
Avatar de BuenaOnda
BuenaOnda BuenaOnda is offline
Miembro
 
Registrado: feb 2006
Ubicación: La Serena - Chile
Posts: 347
Poder: 19
BuenaOnda Va por buen camino
asi..es.

asi es compañero Dec.. todos los controles de mi Ventana estan afectados por el Skin..Sabes.. le quite el skin y se comporta super rapido..por eso me gustaria descativarlos, momentaneamente,sin que la ventana pierda su apareicia...muchas gracias por tu respuesta..
Responder Con Cita
  #4  
Antiguo 01-09-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Pero es que es una contradicción... porque si "desactivas" el "Skin" entonces el formulario perderá la apariencia que le diera el Skin activado... vamos, digo yo, ¿eh? Otra cosa es que los programadores del componente en cuestión no tengan previsto alguna solución para este problema, puesto que parece que pudiera darse en más de una ocasión a más de una persona.

Voy a repetirme, ¿mientras estás realizando el proceso problemático actualizas algún elemento de la interfaz de usuario, actualizas algún control del formulario? ¿Das algún respiro a la aplicación durante el proceso problemático (mediante un "Sleep" o un "Application.ProcessMessages()")?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 01-09-2007
Avatar de BuenaOnda
BuenaOnda BuenaOnda is offline
Miembro
 
Registrado: feb 2006
Ubicación: La Serena - Chile
Posts: 347
Poder: 19
BuenaOnda Va por buen camino
puede ser..

eso puede ser.. voy a revisar lo que me indicas..
Responder Con Cita
  #6  
Antiguo 01-09-2007
Avatar de BuenaOnda
BuenaOnda BuenaOnda is offline
Miembro
 
Registrado: feb 2006
Ubicación: La Serena - Chile
Posts: 347
Poder: 19
BuenaOnda Va por buen camino
lo revise..

Lo revise compañero Dec.. y solo tenia un "Application.ProcessMessages;", en le proceso, lo quite, y sigue igual...la velocidad..no cambia...
Responder Con Cita
  #7  
Antiguo 01-09-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No; si en realidad no se trataba de quitar el "Application.ProcessMessages()", sino de ponerlo, si fuera menester... Chico, no se me ocurre qué decirte sino que muestres el código del proceso famoso, o cuando menos expliques qué llevas a cabo en el mismo, cómo es que tarda tanto... qué se hace ahí... de dónde venimos, adónde vamos...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #8  
Antiguo 01-09-2007
Avatar de BuenaOnda
BuenaOnda BuenaOnda is offline
Miembro
 
Registrado: feb 2006
Ubicación: La Serena - Chile
Posts: 347
Poder: 19
BuenaOnda Va por buen camino
este es el codigo, solo lleno un stringGrid, no utilice un DBStringGrid, por que los datos puedes modificarse en el StringGrid(Osea el StringGrid es editable)..

Código Delphi [-]
     WITH Modulo DO
     BEGIN
          LimpiarGrilla;
          LimpiarMatriz;
          TRY
             fFila:=0;
             Query1.SQL.Clear;
             Query1.SQL.Text:='Select * From Sp_Articulos_de_venta';
             Query1.Open;
             IF Query1.RecordCount > 0 THEN
             BEGIN//1
                    LimpiarGrilla;
                    LimpiarMatriz;
                    Query1.Last;
                    GrillaArticulos.RowCount:=Query1.RecordCount;
                    Query1.First;
                    WHILE NOT Query1.Eof DO
                    BEGIN//2
                           WITH GrillaArticulos DO
                           BEGIN
                                Cells[0,fFila]:=Trim(Query1.FieldByName('DescUsuario').AsString);
                                Cells[1,fFila]:=IntToStr(Query1.FieldByName('CODIGO_FAMILIA').AsInteger);
                                Cells[2,fFila]:=Trim(Query1.FieldByName('DESCFAMILIA').AsString);
                                Cells[3,fFila]:=Trim(Query1.FieldByName('PROVEEDOR').AsString);
                                Cells[4,fFila]:=Trim(Query1.FieldByName('CODIGO_ART_PROVEEDOR').AsString);
                                Cells[5,fFila]:=Trim(Query1.FieldByName('DESCRIPCIONDECOMPRA').AsString);
                                Cells[6,fFila]:=IntToStr(Query1.FieldByName('CODIGO_ARTICULO').AsInteger);
                                Cells[7,fFila]:=Trim(Query1.FieldByName('DESCRIPCION_DE_VENTA').AsString);
                                Cells[8,fFila]:=FormatFloat('#,##',Query1.FieldByName('PRECIO_VENTA').AsFloat);
                                Cells[9,fFila]:=FormatFloat('#,##0.0',Query1.FieldByName('Porcentaje_precio_venta').AsFloat);
                                Cells[10,fFila]:=FormatFloat('#,##0',Query1.FieldByName('PRECIO_OFERTA').AsFloat);
                                Cells[11,fFila]:='0';//FormatFloat('#,##0.0',Query1.FieldByName('PORCENTAJE_PRECIO_VENTA').AsFloat);
                                Cells[12,fFila]:=FormatFloat('#,##',Query1.FieldByName('PRECIO_SOCIA').AsFloat);
                                Cells[13,fFila]:=FormatFloat('#,##0.0',Query1.FieldByName('Porcentaje_precio_Socia').AsFloat);
                                Cells[14,fFila]:=FormatFloat('#,##0',Query1.FieldByName('PRECIO_X_MAYOR').AsFloat);
                                Cells[15,fFila]:=FormatFloat('#,##0.0',Query1.FieldByName('Porcentaje_precio_Mayor').AsFloat);
                                Cells[16,fFila]:=FormatFloat('#,##0',Query1.FieldByName('PRECIO_FINAL').AsFloat);
                                Cells[17,fFila]:=FormatFloat('#,##0.0',(Query1.FieldByName('DESCUENTO1').AsFloat) +
                                                                       (Query1.FieldByName('DESCUENTO2').AsFloat) +
                                                                       (Query1.FieldByName('DESCUENTO3').AsFloat) );
                                Cells[18,fFila]:=FormatFloat('#,##0',Query1.FieldByName('PRECIO_COMPRA').AsFloat);
                                Cells[19,fFila]:=FormatFloat('#,##0',Query1.FieldByName('UNIDADES_DE_VENTAS').AsFloat);
                                Cells[20,fFila]:=FormatFloat('#,##0',Query1.FieldByName('VALOR_UNIDAD_DE_VENTA').AsFloat);
                                Cells[21,fFila]:=FormatFloat('#,##0.0',Query1.FieldByName('DESCUENTO1').AsFloat);
                                Cells[22,fFila]:=FormatFloat('#,##0.0',Query1.FieldByName('DESCUENTO2').AsFloat);
                                Cells[23,fFila]:=FormatFloat('#,##0.0',Query1.FieldByName('DESCUENTO3').AsFloat);
                                Cells[24,fFila]:=FormatDateTime('dd/mm/yyyy',Query1.FieldByName('FECHA_ULT_COMPRA').AsDateTime);
                           END;
                           Inc(fFila);
                           Query1.Next;
                    END; //2
             END  //1
             ELSE AgregarProducto_A_La_Lista; //DamoslaPosibilidad de ingresar un nuevo Artículo..jejej.
          FINALLY
             Query1.Close;
          END;
     END;

lo unico que hace es traer la informacion desde un procedimiento almacenado,no son mas de 3000 registros, la idea es que el StringGrid opere al estilo Excel, lo cual lo realiza super bien..(me gustaria mostrar menos informacion en el StringGrid, pero se necesita mostrar todo)..
Responder Con Cita
  #9  
Antiguo 01-09-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Pero no parece que estés actualizando sino el "StringGrid"... ¿no existen el en "StringGrid" métodos como "BeginUpdate()" y "EndUpdate()"? Tal vez pudieras hacer uso de ellos... comienza la actualización justo antes del inicio del "bucle" y termina una vez ejecutado el mismo.

Por otro lado... y puestos a deshabilitar "Skin"... ¿probaste a deshabilitar el Skin únicamente en el "StringGrid"? Pero, de todos modos... se me hace raro que haya que deshabilitar el componente... y dices que sin el Skin todo funciona bien...

En todo caso añade también un "Application.ProcessMessages()" en el bucle, y si me apuras prueba con un "Sleep(1)" en el bucle, sin el "Application.ProcessMessages()" (prueba de ambas formas a ver).
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #10  
Antiguo 01-09-2007
Avatar de BuenaOnda
BuenaOnda BuenaOnda is offline
Miembro
 
Registrado: feb 2006
Ubicación: La Serena - Chile
Posts: 347
Poder: 19
BuenaOnda Va por buen camino
Thumbs up Muchas Gracias..

Muchas gracias Dec.. hice todo lo que me dijiste..pero sigue el problemita, voy a seguir investigando.....
Responder Con Cita
  #11  
Antiguo 03-09-2007
Avatar de Io
[Io] Io is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: San Fernando (Cádiz)
Posts: 259
Poder: 19
Io Va por buen camino
Hola.
Este componente tiene la propiedad DisableTag
Código:
SkinData1.DisableTag:=99;
En el ejemplo anterior todos los componentes del form que tengan la propiedad tag a 99, no se verán afectados por el skin.
Podrías intentar utilizarlos en momentos crítico, haber que pasa.

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
componente VCL Skin... Dosk Gráficos 3 20-03-2007 18:26:26
Vieja version de Skin CARSOFT_AR Varios 0 12-01-2006 15:24:15
skin reina Varios 2 06-09-2005 21:53:21
Skin Fitoperu Varios 1 16-08-2005 22:47:04


La franja horaria es GMT +2. Ahora son las 03:48:03.


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