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 28-08-2013
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: Aug 2007
Posts: 589
Poder: 12
ingabraham Va por buen camino
Wink Obtener zona horaria en window 8

tengo el siguiente codigo y me funciona bien hasta win 7

pero en el 8 no me funciona.

me carga en el combobox las zonas, como por ejemplo:

(GMT -05:: BOGOTA , LIMA, QUITO)

obtengo la zona horaria Con el sgt codigo:
Código Delphi [-]

//Lena el combobox que se pase como parametro con las diferentes zonas de tiempo
//que se encuentren en el registro de windows
// PRE  :   El query puede llegar nil si se llama del setup en ese caso asigna settings
//          de la aplicacion por defecto

function TZ_FillTimeZonesComboBox(Query: TADOQuery; cmbTimeZones: TComboBox): boolean;
var LVTimeZones         : TListView;
    LVCreated, TZResult : boolean;
    TZDSTSettings       : TTZDSTSettings;
    ActiveTimeZone      : TimeZone;
    errMsg :string;
begin
   //Inicializacion de variables para evitar warnings
   LVTimeZones := nil;
   LVCreated := false;
   try

      //Inicializa el arreglo TZs con las zonas de tiempo que se encuentran
      //en el registro de windows
      TZ_Initialize();

      LVTimeZones := TListView.Create(cmbTimeZones.Owner);
      LVCreated := true;

      LVTimeZones.Parent := cmbTimeZones.Parent;

      //Poblar la lista de zonas de tiempo.
      TZ_FillListView(LVTimeZones);

      //Ordenar la lista
      LVTimeZones.SortType := stText;
      LVTimeZones.SortType := stNone; 
      TZ_OrderTimeZone(lvTimeZones,0,0);  

      //Ahora que está ordenada copiar dicha lista al combo. La columna que se copia
      //es la de 'NAME', dado que las primeras dos son solo para efecto de ordenamiento.
      TZ_FillComboFromList(LVTimeZones, cmbTimeZones);

      // Obtienen los settings de DST de la aplicacion.
      if not (Query = nil ) then
         TZDSTSettings :=  TZ_GetTZDSTSEttings(Query,tzresult,errMsg);
      //Si la zona de tiempo que leyo de la BD NO esta dentro de las que se encuentran en el combo
      //cmbTimeZones (esto ocurre cuando se escribe en la BD en un idioma diferente al de la estación de trabajo)
      //la variable cmbTimeZones.ItemIndex queda con el valor de -1
      cmbTimeZones.ItemIndex := cmbTimeZones.Items.IndexOf(TZDSTSettings.TIMEZONE);

      //Si NO encontró una zona de tiempo busca la del computador
      if cmbTimeZones.ItemIndex=-1 then begin

         // En este punto hay que saber cual es la TZ activa del sistema.
          ActiveTimeZone := TZ_GetActiveTimeZone();

          TZDSTSettings.TIMEZONE := ActiveTimeZone.ID;

         //Ubica el combo en la zona de tiempo que indica la variable TZDSTSettings.TIMEZONE
         //que deberia ser la zona de tiempo del PC
         cmbTimeZones.ItemIndex := cmbTimeZones.Items.IndexOf(TZDSTSettings.TIMEZONE);

      end;

      LVTimeZones.Free;

      result := true;
   except
      on e:exception do begin
         result := false;

         //Si creo el TListView lo libera.
         if LVCreated then
            LVTimeZones.Free;
      end;
   end;
end;
__________________
Enseñar es la virtud de un sabio.

Última edición por ingabraham fecha: 28-08-2013 a las 17:59:12.
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
como caambiar la zona horaria desde delphi kurono Varios 4 19-08-2008 06:53:36
La Zona Premium tazzmk La Taberna 29 26-09-2007 19:05:30
Zona Horaria palets API de Windows 2 23-10-2006 19:44:57
Consola cualquier zona yusnerqui Varios 5 08-09-2006 18:01:45
Zona horaria Genner Varios 1 17-04-2006 14:22:20


La franja horaria es GMT +2. Ahora son las 23:04:49.


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