Announcement

Collapse

Forum Guidelines

This forum is for finished source code that is working properly. If you have questions about this or any other source code, please post it in one of the Discussion Forums, not here.
See more
See less

SI Unit Names, Quantity Names and Symbols

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • SI Unit Names, Quantity Names and Symbols

    'An include file containing unit names, quantity names and symbols. Following
    'that is code for a demo program to select one of the names or symbol and
    'display the other two items. (the demo part is how to access the ASMDATA blocks)
    '
    'Explanation of ASMDATA block format at:
    ' http://www.yarker-dsyc.info/D_Notebo..._UnitData.html
    '
    '
    Code:
    'base units  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    asmdata TimeL
     'offset to Quantity_Name always 8
      dd 18 'offset to Unit_Name 10 + size Quanity name, offset this always 0
      dd 32 'offset to Unit_Symbol 12 + sizes Quantity and Unit names, offset this always 4
      dw 4, "time" 'char count for peek$$ then string
      dw 6, "second"
      dw 1, "s"
    end asmdata
    asmdata LengthL
      dd 22, 62 '1st block has 2 DDs to allow comments, like this for the rest.
      dw 6, "length"
      dw 19, "meter, metre, mètre"
      dw 1, "m"
    end asmdata
    asmdata MassL
      dd 18, 36
      dw 4, "mass"
      dw 8, "kilogram"
      dw 2, "kg"
    end asmdata
    asmdata ElectricCurrentL
      dd 42, 56
      dw 16, "electric current"
      dw 6, "ampere"
      dw 1, "A"
    end asmdata
    asmdata ThermodynamicTemperatureL
      dd 60, 74
      dw 25, "thermodynamic temperature"
      dw 6, "kelvin"
      dw 1, "K"
    end asmdata
    asmdata AmountOfSubstanceL '
      dd 48, 58
      dw 19, "amount of substance"
      dw 4, "mole"
      dw 3, "mol"
    end asmdata
    asmdata LuminousIntensity   
      dd 46, 62
      dw 18, "luminous intensity"
      dw 7, "candela"
      dw 2, "cd"
    end asmdata
    'derived units with special names and symbols  - - - - - - - - - - - - - - - - -
    asmdata PlaneAngleL
      dd 32, 46
      dw 11, "plane angle"
      dw 6, "radian"
      dw 3, "rad"
    end asmdata
    asmdata SolidAngleL
      dd 32, 52
      dw 11, "solid angle"
      dw 9, "steradian"
      dw 2, "sr"
    end asmdata
    asmdata FrequencyL
      dd 28, 40
      dw 9, "frequency"
      dw 5, "hertz"
      dw 2, "Hz"
    end asmdata
    asmdata ForceWeightL
      dd 36, 50
      dw 13, "force, weight"
      dw 6, "newton"
      dw 1, "N"
    end asmdata
    asmdata PressureStressL '
      dd 42, 56
      dw 16, "pressure, stress"
      dw 6, "pascal"
      dw 2, "Pa"
    end asmdata
    asmdata EnergyWorkHeatL
      dd 46, 58
      dw 18, "energy, work, heat"
      dw 5, "joule"
      dw 1, "J"
    end asmdata
    asmdata PowerRadiantFluxL
      dd 48, 58
      dw 19, "power, radiant flux"
      dw 4, "watt"
      dw 1, "W"
    end asmdata
    asmdata ElectricChargeL
      dd 40, 56
      dw 15, "electric charge"
      dw 7, "coulomb"
      dw 1, "C"
    end asmdata
    asmdata ElectricPotenialVoltageEMFL
      dd 72, 82
      dw 31, "electric potenial, voltage, emf"
      dw 4, "volt"
      dw 1, "V"
    end asmdata
    asmdata CapacitanceL
      dd 32, 44
      dw 11, "capacitance"
      dw 5, "farad"
      dw 1, "F"
    end asmdata
    asmdata ResistanceImpedanceReatanceL '
      dd 72, 80
      dw 31, "resistance, impedance, reatance"
      dw 3, "ohm"
      dw 1, chr$$(&h03A9??)
    end asmdata
    asmdata ElectricalConductanceL
      dd 54, 100
      dw 22, "electrical conductance"
      dw 22, "siemans (formerly mho)"
      dw 25, "S (SI), ", chr$$(&h2127??), " (non-ambiguous)"
    end asmdata
    asmdata MagneticFluxL
      dd 36, 48
      dw 13, "magnetic flux"
      dw 5, "weber"
      dw 2, "Wb"
    end asmdata
    asmdata MagneticFluxDensityL
      dd 52, 64
      dw 21, "magnetic flux density"
      dw 5, "tesla"
      dw 1, "T"
    end asmdata
    asmdata InductanceL
      dd 30, 42
      dw 10, "inductance"
      dw 5, "henry"
      dw 1, "H"
    end asmdata
    asmdata TemperatureL
      dd 32, 64
      dw 11, "temperature"
      dw 15, "degrees Celsius"
      dw 2, "°C"
    end asmdata
    asmdata LuminousFluxL
      dd 36, 48
      dw 13, "luminous flux"
      dw 5, "lumen"
      dw 2, "lm"
    end asmdata
    asmdata IlluminanceL
      dd 32, 40
      dw 11, "illuminance"
      dw 3, "lux"
      dw 2, "lx"
    end asmdata
    asmdata RadioactiveDecaysPerSecondL
      dd 68, 88
      dw 29, "radioactive decays per second"
      dw 9, "becquerel"
      dw 2, "Bq"
    end asmdata
    asmdata RadiationDoseIonisingL
      dd 60, 70
      dw 25, "radiation dose (ionising)"
      dw 4, "gray"
      dw 2, "Gy"
    end asmdata
    asmdata RadiationEquivalentDoseL
      dd 82, 98
      dw 36, "radiation equivalent dose (Ionising)"
      dw 7, "sievert"
      dw 2, "Sv"
    end asmdata
    asmdata CatalyticActivityL
      dd 46, 58
      dw 18, "catalytic activity"
      dw 5, "katal"
      dw 3, "kat"
    end asmdata
    'Coherent Derived Units  - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    asmdata AreaL
      dd 18, 44
      dw 4, "area"
      dw 12, "square meter"
      dw 2, "m", chr$$(&h00B2??)
    end asmdata
    asmdata VolumeL
      dd 22, 46
      dw 6, "volume"
      dw 11, "cubic meter"
      dw 2, "m", chr$$(&h00B3??)
    end asmdata
    asmdata SpeedVelocityL
      dd 40, 76
      dw 15, "speed, velocity"
      dw 17, "meters per second"
      dw 3, "m/s"
    end asmdata
    asmdata AccelerationL
      dd 34, 86
      dw 12, "acceleration"
      dw 25, "meters per second squared"
      dw 4, "m/s", chr$$(&h00B2??)
    end asmdata
    asmdata WaveNumberVergenceL
      dd 50, 84
      dw 20, "waveNumber, vergence"
      dw 16, "reciprocal meter"
      dw 3, "m", chr$$(&h207B??, &h00B9??)
    end asmdata
    asmdata DensityL
      dd 24, 74
      dw 7, "density"
      dw 24, "kilogram per cubic meter"
      dw 5, "kg/m", chr$$(&h00B3??)
    end asmdata
    asmdata SurfaceDensityL
      dd 40, 92
      dw 15, "surface density"
      dw 25, "kilogram per square meter"
      dw 5, "kg/m", chr$$(&h00B2??)
    end asmdata
    asmdata SpecificVolumeL
      dd 38, 88
      dw 14, "specfic volume"
      dw 24, "cubic meter per kilogram"
      dw 5, "m", chr$$(&h00B3??), "/kg"
    end asmdata
    asmdata CurrentDensityL
      dd 40, 88
      dw 15, "current density"
      dw 23, "ampere per square meter"
      dw 4, "A/m", chr$$(&h00B2??)
    end asmdata
    asmdata MagneticFieldStrengthL
      dd 56, 90
      dw 23, "magnetic field strength"
      dw 16, "ampere per meter"
      dw 3, "A/m"
    end asmdata
    asmdata ConcentrationMolecularL
      dd 60, 102
      dw 25, "concentration (molecular)"
      dw 20, "mole per cubic meter"
      dw 6, "mol/m", chr$$(&h00B3??)
    end asmdata
    asmdata MassConcentrationL
      dd 46, 96
      dw 18, "mass concentration"
      dw 24, "kilogram per cubic meter"
      dw 5, "kg/m", chr$$(&h00B3??)
    end asmdata
    asmdata LuminanceL
      dd 28, 78
      dw 9, "luminance"
      dw 24, "candela per square meter"
      dw 5, "cs/m", chr$$(&h00B2??)
    end asmdata
    'Derived Units with special names  - - - - - - - - - - - - - - - - - - - - - - -
    asmdata DynamicViscosityL
      dd 44, 72
      dw 17, "dynamic viscosity"
      dw 13, "pascal-second"
      dw 4, "Pa·s"  'Pa·s
    end asmdata
    asmdata MomentOfForceL
      dd 56, 82
      dw 23, "moment of force, torque"
      dw 12, "newton-meter"
      dw 3, "N·m"
    end asmdata
    asmdata SurfaceTensionL
      dd 40, 74
      dw 15, "surface tension"
      dw 16, "newton per meter"
      dw 3, "N/m"
    end asmdata
    asmdata AngularVelocityAngularFrequencyL
      dd 80, 116
      dw 35, "angular velocity, angular frequency"
      dw 17, "radian per second"
      dw 5, "rad/s"
    end asmdata
    asmdata AngularAccelerationL
      dd 50, 102
      dw 20, "angular acceleration"
      dw 25, "radian per second squared"
      dw 6, "rad/s", chr$$(&h00B2??)
    end asmdata
    asmdata HeatFluxDensityIrradianceL
      dd 68, 112
      dw 29, "heat flux density, irradiance"
      dw 21, "watt per square meter"
      dw 4, "W/m", chr$$(&h00B2??)
    end asmdata
    asmdata EntropyHeatCapacityL
      dd 54, 88
      dw 22, "entropy, heat capacity"
      dw 16, "joule per kelvin"
      dw 3, "J/K"
    end asmdata
    asmdata SpecificHeatCapacitySpecificEntropyL
      dd 90, 142
      dw 40, "specific heat capacity, specific entropy"
      dw 25, "joule per kilogram-kelvin"
      dw 8, "J/(kg·K)"
    end asmdata
    asmdata SpecificEnergyL
      dd 40, 78
      dw 15, "specific energy"
      dw 18, "joule per kilogram"
      dw 4, "J/kg"
    end asmdata
    asmdata ThermalConductivityL
      dd 50, 94
      dw 20, "thermal conductivity"
      dw 21, "watt per meter-kelvin"
      dw 7, "W/(m·K)"
    end asmdata
    asmdata EnergyDensityL
      dd 38, 82
      dw 14, "energy density"
      dw 21, "joule per cubic metre"
      dw 4, "J/m", chr$$(&h00B3??)
    end asmdata
    asmdata ElectricFieldStrengthL
      dd 56, 86
      dw 23, "electric field strength"
      dw 14, "volt per meter"
      dw 3, "V/m"
    end asmdata
    asmdata ElectricChargeDensityL
      dd 56, 104
      dw 23, "electric charge density"
      dw 23, "coulomb per cubic meter"
      dw 4, "C/m", chr$$(&h00B3??)
    end asmdata
    asmdata SurfaceChargeDensityElectricFluxDensityL
      dd 116, 166
      dw 53, "surface charge, electric flux density or displacement"
      dw 24, "coulomb per square meter"
      dw 4, "C/m", chr$$(&h00B2??)
    end asmdata
    asmdata PermittivityL
      dd 34, 66
      dw 12, "permittivity"
      dw 15, "farad per meter"
      dw 3, "F/m"
    end asmdata
    asmdata PermeabilityL
      dd 34, 66
      dw 12, "permeability"
      dw 15, "henry per meter"
      dw 3, "H/m"
    end asmdata
    asmdata MolarEnergyL
      dd 34, 64
      dw 12, "molar energy"
      dw 14, "joule per mole"
      dw 5, "J/mol"
    end asmdata
    asmdata MolarEntropyMolarHeatCapacityL
      dd 78, 122
      dw 34, "molar entropy, molar heat capacity"
      dw 21, "joule per mole-kelvin"
      dw 9, "J/(mol·K)"
    end asmdata
    asmdata ExposureL
      dd 58, 100
      dw 24, "exposure (x- and ", chr$$(&h03B3??), "-rays)"
      dw 20, "coulomb per kilogram"
      dw 4, "C/kg"
    end asmdata
    asmdata AbsorbedDoseRateL
      dd 46, 78
      dw 18, "absorbed dose rate"
      dw 15, "gray per second"
      dw 4, "Gy/s"
    end asmdata
    asmdata RadiantIntensityL
      dd 44, 82
      dw 17, "radiant intensity"
      dw 18, "watt per steradian"
      dw 4, "W/sr"
    end asmdata
    asmdata RadianceL
      dd 26, 90
      dw 8, "radiance"
      dw 31, "watt per square meter-steradian"
      dw 9, "W/(m", chr$$(&h00B2??), "·sr)"
    end asmdata
    asmdata CatalyticActivityConcentrationL
      dd 74, 118
      dw 32, "catalytic activity concentration"
      dw 21, "katal per cubic meter"
      dw 6, "kat/m", chr$$(&h00B3??)
    end asmdata '
    '
    '
    Code:
    'Copyleft 2022 by Dale Yarker; do what you want with this code except claim it,
    'or sell it, as yours. No warranty of any kind.
    #compile exe
    #dim all
    'selected in callback, (better) allows SELECT CASE AS CONST rather than AS LONG
    %ID_FromQuantityOpt = 1001
    %ID_FromUnitOpt     = 1002
    %ID_FromSymbolOpt   = 1003
    %ID_OptionFrame     = 1004
    %ID_PickCBx         = 1005
    'not selected in callback, need IDs to modify these controls
    %ID_ResultALbl   = 1101
    %ID_ResultATxtBx = 1102
    %ID_ResultBLbl   = 1103
    %ID_ResultBTxtBx = 1104
    'used in load and callback of combobox, again sequential for AS CONST
    %FromQuantName  = 1&
    %FromUnitName   = 2&
    %FromSymbolName = 3&
    #include "./SI_Data.inc"
    sub LoadComboBox(byval hMainDlg as dword, byval FromID as long)
      local pSI_Item, pItemCharCnt, ItemCharCnt, pItemStr, ItemOffset as dword
      local CBIdx as long
      combobox reset hMainDlg, %ID_PickCBx
      control set text hMainDlg, %ID_ResultATxtBx, ""
      control set text hMainDlg, %ID_ResultBTxtBx, ""
      pSI_Item = codeptr(AbsorbedDoseRateL) : gosub ComboBxItem
      pSI_Item = codeptr(AccelerationL) : gosub ComboBxItem
      pSI_Item = codeptr(AmountOfSubstanceL) : gosub ComboBxItem
      pSI_Item = codeptr(AngularAccelerationL) : gosub ComboBxItem
      pSI_Item = codeptr(AngularVelocityAngularFrequencyL) : gosub ComboBxItem
      pSI_Item = codeptr(AreaL) : gosub ComboBxItem
      pSI_Item = codeptr(CapacitanceL) : gosub ComboBxItem
      pSI_Item = codeptr(CatalyticActivityL) : gosub ComboBxItem
      pSI_Item = codeptr(CatalyticActivityConcentrationL) : gosub ComboBxItem
      pSI_Item = codeptr(ConcentrationMolecularL) : gosub ComboBxItem
      pSI_Item = codeptr(CurrentDensityL) : gosub ComboBxItem
      pSI_Item = codeptr(DensityL) : gosub ComboBxItem
      pSI_Item = codeptr(DynamicViscosityL) : gosub ComboBxItem
      pSI_Item = codeptr(ElectricChargeL) : gosub ComboBxItem
      pSI_Item = codeptr(ElectricChargeDensityL) : gosub ComboBxItem
      pSI_Item = codeptr(ElectricalConductanceL) : gosub ComboBxItem
      pSI_Item = codeptr(ElectricCurrentL) : gosub ComboBxItem
      pSI_Item = codeptr(ElectricFieldStrengthL) : gosub ComboBxItem
      pSI_Item = codeptr(ElectricPotenialVoltageEMFL) : gosub ComboBxItem
      pSI_Item = codeptr(EnergyDensityL) : gosub ComboBxItem
      pSI_Item = codeptr(EnergyWorkHeatL) : gosub ComboBxItem
      pSI_Item = codeptr(EntropyHeatCapacityL) : gosub ComboBxItem
      pSI_Item = codeptr(ExposureL) : gosub ComboBxItem
      pSI_Item = codeptr(ForceWeightL) : gosub ComboBxItem
      pSI_Item = codeptr(FrequencyL) : gosub ComboBxItem
      pSI_Item = codeptr(HeatFluxDensityIrradianceL) : gosub ComboBxItem
      pSI_Item = codeptr(IlluminanceL) : gosub ComboBxItem
      pSI_Item = codeptr(InductanceL) : gosub ComboBxItem
      pSI_Item = codeptr(LengthL) : gosub ComboBxItem
      pSI_Item = codeptr(LuminanceL) : gosub ComboBxItem
      pSI_Item = codeptr(LuminousFluxL) : gosub ComboBxItem
      pSI_Item = codeptr(LuminousIntensity) : gosub ComboBxItem
      pSI_Item = codeptr(MagneticFieldStrengthL) : gosub ComboBxItem
      pSI_Item = codeptr(MagneticFluxL) : gosub ComboBxItem
      pSI_Item = codeptr(MagneticFluxDensityL) : gosub ComboBxItem
      pSI_Item = codeptr(MassL) : gosub ComboBxItem
      pSI_Item = codeptr(MassConcentrationL) : gosub ComboBxItem
      pSI_Item = codeptr(MolarEnergyL) : gosub ComboBxItem
      pSI_Item = codeptr(MolarEntropyMolarHeatCapacityL) : gosub ComboBxItem
      pSI_Item = codeptr(MomentOfForceL) : gosub ComboBxItem
      pSI_Item = codeptr(PermeabilityL) : gosub ComboBxItem
      pSI_Item = codeptr(PermittivityL) : gosub ComboBxItem
      pSI_Item = codeptr(PlaneAngleL) : gosub ComboBxItem
      pSI_Item = codeptr(PowerRadiantFluxL) : gosub ComboBxItem
      pSI_Item = codeptr(PressureStressL) : gosub ComboBxItem
      pSI_Item = codeptr(RadianceL) : gosub ComboBxItem
      pSI_Item = codeptr(RadiantIntensityL) : gosub ComboBxItem
      pSI_Item = codeptr(RadiationDoseIonisingL) : gosub ComboBxItem
      pSI_Item = codeptr(RadiationEquivalentDoseL) : gosub ComboBxItem
      pSI_Item = codeptr(RadioactiveDecaysPerSecondL) : gosub ComboBxItem
      pSI_Item = codeptr(ResistanceImpedanceReatanceL) : gosub ComboBxItem
      pSI_Item = codeptr(SpecificEnergyL) : gosub ComboBxItem
      pSI_Item = codeptr(SpecificHeatCapacitySpecificEntropyL) : gosub ComboBxItem
      pSI_Item = codeptr(SpecificVolumeL) : gosub ComboBxItem
      pSI_Item = codeptr(SpeedVelocityL) : gosub ComboBxItem
      pSI_Item = codeptr(SolidAngleL) : gosub ComboBxItem
      pSI_Item = codeptr(SurfaceChargeDensityElectricFluxDensityL) : gosub ComboBxItem
      pSI_Item = codeptr(SurfaceDensityL) : gosub ComboBxItem
      pSI_Item = codeptr(SurfaceTensionL) : gosub ComboBxItem
      pSI_Item = codeptr(TemperatureL) : gosub ComboBxItem
      pSI_Item = codeptr(ThermalConductivityL) : gosub ComboBxItem
      pSI_Item = codeptr(ThermodynamicTemperatureL) : gosub ComboBxItem
      pSI_Item = codeptr(TimeL) : gosub ComboBxItem
      pSI_Item = codeptr(VolumeL) : gosub ComboBxItem
      pSI_Item = codeptr(WaveNumberVergenceL) : gosub ComboBxItem
      '
      exit sub 'don't "fall" into subroutine when done  - - - - - - - - - - - -
      ComboBxItem:
        select case as const FromID
          case %FromQuantName
            pItemCharCnt = pSI_Item + 8???
            ItemCharCnt = mak(dword, peek(word, pItemCharCnt), 0??)
            pItemStr = pSI_Item + 10???
          case %FromUnitName
            ItemOffset = peek(dword, pSI_Item)
            pItemCharCnt = ItemOffset + pSI_Item
            ItemCharCnt = mak(dword, peek(word, pItemCharCnt), 0??)
            pItemStr = pItemCharCnt + 2???
          case %FromSymbolName
            ItemOffset = peek(dword, (pSI_Item + 4))
            pItemCharCnt = ItemOffset + pSI_Item
            ItemCharCnt = mak(dword, peek(word, pItemCharCnt), 0??)
            pItemStr = pItemCharCnt + 2???
        end select
        combobox add hMainDlg, %ID_PickCBx, peek$$(pItemStr, ItemCharCnt) to CBIdx
        combobox set user hMainDlg, %ID_PickCBx, CBIdx, pSI_Item
        control set user hMainDlg,%ID_PickCBx, 1, FromID
      return
    end sub
    callback function MainDlgCB() as long
      local FromID, ItemIdx as long
      local pSI_Item, ItemOffset, pSI_ItemStr, ItemCharCnt as dword
      if cb.msg = %wm_command then
        select case as const cb.ctl
          case %ID_FromQuantityOpt
            if cb.ctlmsg = %bn_clicked then
              LoadComboBox cb.hndl, %FromQuantName
              control set text cb.hndl, %ID_ResultALbl, "Unit Name"
              control set text cb.hndl, %ID_ResultBLbl, "Symbol"
            end if
          case %ID_FromUnitOpt
            if cb.ctlmsg = %bn_clicked then
              LoadComboBox cb.hndl, %FromUnitName
              control set text cb.hndl, %ID_ResultALbl, "Quantity Name"
              control set text cb.hndl, %ID_ResultBLbl, "Symbol"
            end if
          case %ID_FromSymbolOpt
            if cb.ctlmsg = %bn_clicked then
              LoadComboBox cb.hndl, %FromSymbolName
              control set text cb.hndl, %ID_ResultALbl, "Quantity Name"
              control set text cb.hndl, %ID_ResultBLbl, "Unit Name"
            end if
          case %ID_PickCBx
            if cb.ctlmsg = %cbn_selchange then
              control get user cb.hndl, %ID_PickCBx, 1 to FromID
              combobox get select cb.hndl, %ID_PickCBx to ItemIdx
              combobox get user cb.hndl, %ID_PickCBx, ItemIdx to pSI_Item
              select case as const FromID
                case %FromQuantName
                  ItemOffset = peek(dword, pSI_Item)
                  pSI_ItemStr = pSI_Item + ItemOffset
                  ItemCharCnt = mak(dword, peek(word, pSI_ItemStr), 0??)
                  pSI_ItemStr += 2
                  control set text cb.hndl, %ID_ResultATxtBx, _
                     peek$$(pSI_ItemStr, ItemCharCnt)
                  ItemOffset = peek(dword, (pSI_Item + 4))
                  pSI_ItemStr = pSI_Item + ItemOffset
                  ItemCharCnt = peek(word, pSI_ItemStr)
                  pSI_ItemStr += 2
                  control set text cb.hndl, %ID_ResultBTxtBx, _
                     peek$$(pSI_ItemStr, ItemCharCnt)
                case %FromUnitName
                  ItemOffset = 8???
                  pSI_ItemStr = pSI_Item + ItemOffset
                  ItemCharCnt = mak(dword, peek(word, pSI_ItemStr), 0??)
                  pSI_ItemStr += 2
                  control set text cb.hndl, %ID_ResultATxtBx, _
                     peek$$(pSI_ItemStr, ItemCharCnt)
                  ItemOffset = peek(dword, (pSI_Item + 4))
                  pSI_ItemStr = pSI_Item + ItemOffset
                  ItemCharCnt = peek(word, pSI_ItemStr)
                  pSI_ItemStr += 2
                  control set text cb.hndl, %ID_ResultBTxtBx, _
                     peek$$(pSI_ItemStr, ItemCharCnt)
                case %FromSymbolName
                  ItemOffset = 8???
                  pSI_ItemStr = pSI_Item + ItemOffset
                  ItemCharCnt = mak(dword, peek(word, pSI_ItemStr), 0??)
                  pSI_ItemStr += 2
                  control set text cb.hndl, %ID_ResultATxtBx, _
                     peek$$(pSI_ItemStr, ItemCharCnt)
                  ItemOffset = peek(dword, pSI_Item )
                  pSI_ItemStr = pSI_Item + ItemOffset
                  ItemCharCnt = peek(word, pSI_ItemStr)
                  pSI_ItemStr += 2
                  control set text cb.hndl, %ID_ResultBTxtBx, _
                     peek$$(pSI_ItemStr, ItemCharCnt)
              end select
            end if
        end select
      end if
    end function
    function pbmain () as long
      local hMainDlg as dword
      dialog default font "Microsoft Sans Serif", 12, 0, 1
      dialog new 0, "SI Unit Names, Quanities And Symbols", , , 188, 120, _
         %ds_3dlook or %ds_modalframe or %ds_nofailcreate or %ds_setfont or _
         %ws_caption or %ws_clipsiblings or %ws_dlgframe or %ws_minimizebox or _
         %ws_popup or %ws_sysmenu, _
         %ws_ex_left or %ws_ex_ltrreading or %ws_ex_rightscrollbar to hMainDlg
      control add option, hMainDlg, %ID_FromQuantityOpt, "From Quantity Name", _
         8, 12, 76, 11, _
         %bs_left or  %bs_vcenter or %ws_group or %ws_tabstop, %ws_ex_left
      control add option, hMainDlg, %ID_FromUnitOpt, "From Unit Name", _
         8, 23, 75, 11
      control add option, hMainDlg, %ID_FromSymbolOpt, "From Symbol", _
         8, 34, 75, 11
      control add frame, hMainDlg, %ID_OptionFrame, "Find Name Or Symbol", _
         5, 3, 82, 45, %bs_left or %ws_group, %ws_ex_left
      control add combobox, hMainDlg, %ID_PickCBx, , 5, 53, 180, 60, _
         %cbs_disablenoscroll or %cbs_dropdown or %cbs_hasstrings or %cbs_sort or _
         %cbs_nointegralheight or %ws_group or %ws_tabstop or %ws_vscroll, _
         %ws_ex_clientedge or %ws_ex_left
      control add label, hMainDlg, %ID_ResultALbl, "", 6, 70, 100, 9
      control add textbox, hMainDlg, %ID_ResultATxtBx, "", 5, 79, 172 , 11
      control add label, hMainDlg, %ID_ResultBLbl, "", 6, 95, 100, 9
      control add textbox, hMainDlg, %ID_ResultBTxtBx, "", 5, 104, 172, 11
      '
      dialog show modal hMainDlg call MainDlgCB
    end function '
    Dale
Working...
X