ok magui, tu tienes que trabajar con el renderer de tu capa y de ahi escalarla, te mando el ejemplo de esto
Código:
procedure TForm2.bbuniClick(Sender: TObject);
var
a,breakVal,z : integer;
zaz : string;
begin
try
memo1.Clear;
recs:=l.Records;
l.Renderer:=nil;
l.Renderer:=ImoClassBreaksRenderer(CreateOleObject('MapObjects2.ClassBreaksRenderer'));
tdesc:=recs.TableDesc;
fields:=recs.Fields;
cbr:=ImoClassBreaksRenderer(l.Renderer);
cbr.Field:=tdesc.FieldName[cbx.ItemIndex];
if cbx.Text='' then
begin
showmessage('No Se Eligio Un Campo');
exit;
end;
strsUniqueValues:= IMoStrings(CreateOleObject('MapObjects2.strings'));
//fld := IMoField(CreateOleObject('MapObjects2.Field'));
fld := fields.Item(tdesc.FieldName[cbx.ItemIndex]);
except//if varisempty(fld) then
//begin
showmessage('Hay Un Error En La Tabla!!');
exit;
end;
z:=0;
recs.MoveFirst;
a:=1;
while (not recs.EOF) do
begin
strsUniqueValues.Add(fld.value);
recs.MoveNext;
inc(z);
if z = 100 then
begin
a:=application.MessageBox( 'USTED TIENE MÁS DE 100 VARIABLES UNICAS, DESEA CONTINUAR A PESAR DE QUE DILATE MUCHO EL PROCESO??', 'EXCEDENTE DE VARIABLES...', MB_OKCANCEL);
if a=2 then
exit; //se sale de la aplicacion
end; //fin if
end; //fin while
{a:=1;
if strsUniqueValues.Count > 100 then
a:=application.MessageBox( 'USTED TIENE MÁS DE 100 VARIABLES UNICAS, DESEA CONTINUAR??', 'EXCEDENTE DE VARIABLES...', MB_OKCANCEL);
if a=2 then
exit; //se sale de la aplicacion}
if (vmr=nil)then
vmr:= IMoValueMapRenderer(CreateOleObject('MapObjects2.ValueMapRenderer'));
vmr.SymbolType:=l.Symbol.SymbolType;
vmr.Field:=fld.Name;
vmr.ValueCount:=strsUniqueValues.Count;
vmr.UseDefault:=false;
for a:=0 to strsUniqueValues.Count-1 do
begin
vmr.Value[a]:=strsUniqueValues.Item(a);
// showmessage(strsUniqueValues.Item(a));
end;
memo1.Lines.Add(' LISTADO DE VALORES UNICOS!!');
memo1.Lines.Add(' ');
for a:=0 to vmr.ValueCount-1 do
begin
zaz:='';
zaz:=inttoStr(a+1);
zaz:=zaz+' '+vmr.Value[a];
memo1.Lines.Add(zaz);
end; //fin for llenado memo1
cbr.BreakCount:=strsUniqueValues.Count;
bbuni2.Enabled:=true;
end; //fin procedure