View Single Post

  #1 (permalink)  
Old 07-15-2005
gavin gavin is offline
Junior Member
White Belt
 
Join Date: Jul 2005
Posts: 3
FIXED: Type Mismatch in DisplayDataMap

Hi,

Currently im using Delphi7 to link data from a CSV, one field in the CSV is the symbol# to use, now i know that this carnt be mapped at load so i have been trying to use DisplayDataMap but when i try to use this function with geoMapTypeMulitpleSymbol i get a "Type Mismatch" exception each time, no matter what i seem to pass to it.
Id appreciate it if someone could review that paramerters im passing, the most frustating thing is. is that it all looks reasonable to me.
oh i also tried moveing the array index from 1 to 4 incase it was something to do with that, it sill caused the same problem.
Here is the code of the procdure that maps the data after it has been linked,
Code:
procedure TMapForm.MapSymbols;
var
    dMap : DataMap;
    DataSetToUse: DataSet;
    Index: OleVariant;
    DataMapType: GeoDataMapType;
    DataField: Field;
    ShowDataBy: GeoShowDataBy;
    CombineDataBy: GeoCombineDataBy;
    DataRangeType: GeoDataRangeType;
    DataRangeOrder: GeoDataRangeOrder;
    ColorScheme: Integer;
    DataRangeCount: Integer;
    ArrayOfCustomValues: OleVariant;
    ArrayOfCustomNames: OleVariant;
    DivideByField: OleVariant;
    ArrayOfDataFieldLabels: OleVariant;
    ArrayOfPushpinSymbols: OleVariant;
begin
    Index := 'Index0';
    DataSetToUse := mpcCameraMap.ActiveMap.DataSets.Item[Index];

    DataMapType := geoDataMapTypeMultipleSymbol;
    Index := 'Symbol';
    DataField := DataSetToUse.Fields[Index];
    ShowDataBy := geoShowByDefault;
    CombineDataBy := geoCombineByNone;
    DataRangeType := geoRangeTypeUniqueValues;
    DataRangeOrder := geoRangeOrderLowToHigh;
    ColorScheme := 0;
    DataRangeCount := 4;
    ArrayOfCustomValues := VarArrayCreate([0,3], varVariant);
    ArrayOfCustomValues[0] := 111;
    ArrayOfCustomValues[1] := 122;
    ArrayOfCustomValues[2] := 123;
    ArrayOfCustomValues[3] := 133;

    ArrayOfCustomNames := VarArrayCreate([0,3], varVariant);
    ArrayOfCustomNames[0] := 'sym0';
    ArrayOfCustomNames[1] := 'sym1';
    ArrayOfCustomNames[2] := 'sym2';
    ArrayOfCustomNames[3] := 'sym3';
    DivideByField := '';
    ArrayOfDataFieldLabels := VarArrayCreate([0,3], varVariant);
    ArrayOfDataFieldLabels[0] := '111';
    ArrayOfDataFieldLabels[1] := '122';
    ArrayOfDataFieldLabels[2] := '123';
    ArrayOfDataFieldLabels[3] := '133';
    ArrayOfPushpinSymbols := VarArrayCreate([0,3], varVariant);
    ArrayOfPushpinSymbols[0] := 10;
    ArrayOfPushpinSymbols[1] := 20;
    ArrayOfPushpinSymbols[2] := 30;
    ArrayOfPushpinSymbols[3] := 40;


    dMap := DataSetToUse.DisplayDataMap(
        DataMapType,
        DataField,
        ShowDataBy,
        CombineDataBy,
        DataRangeType,
        DataRangeOrder,
        ColorScheme,
        DataRangeCount,
        ArrayOfCustomValues,
        ArrayOfCustomNames,
        DivideByField,
        ArrayOfDataFieldLabels,
        ArrayOfPushpinSymbols);
Reply With Quote