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
[-]
function TZ_FillTimeZonesComboBox(Query: TADOQuery; cmbTimeZones: TComboBox): boolean;
var LVTimeZones : TListView;
LVCreated, TZResult : boolean;
TZDSTSettings : TTZDSTSettings;
ActiveTimeZone : TimeZone;
errMsg :string;
begin
LVTimeZones := nil;
LVCreated := false;
try
TZ_Initialize();
LVTimeZones := TListView.Create(cmbTimeZones.Owner);
LVCreated := true;
LVTimeZones.Parent := cmbTimeZones.Parent;
TZ_FillListView(LVTimeZones);
LVTimeZones.SortType := stText;
LVTimeZones.SortType := stNone;
TZ_OrderTimeZone(lvTimeZones,0,0);
TZ_FillComboFromList(LVTimeZones, cmbTimeZones);
if not (Query = nil ) then
TZDSTSettings := TZ_GetTZDSTSEttings(Query,tzresult,errMsg);
cmbTimeZones.ItemIndex := cmbTimeZones.Items.IndexOf(TZDSTSettings.TIMEZONE);
if cmbTimeZones.ItemIndex=-1 then begin
ActiveTimeZone := TZ_GetActiveTimeZone();
TZDSTSettings.TIMEZONE := ActiveTimeZone.ID;
cmbTimeZones.ItemIndex := cmbTimeZones.Items.IndexOf(TZDSTSettings.TIMEZONE);
end;
LVTimeZones.Free;
result := true;
except
on e:exception do begin
result := false;
if LVCreated then
LVTimeZones.Free;
end;
end;
end;