function ValidAddress( Adr : string) : Boolean;
  function isNum(c : char):boolean;
  begin
    Result := (c in ['0'..'9']) or (c in ['A'..'F'])
  end;
var i : integer;
begin
  Result := true;
  for i := 1 to length(Adr) do
    if not (IsNum(Adr[i])) then
      Result := false;
end;

function DPDisZahlenToAnzeige(s : tDPDisText) : string; //Laenge: 2
  function Zahlen(c : char; Punkt : Boolean) : String;
  var
    b : byte;
  begin
    b := 0;
    case c of
      #0 : b := 0;
      ' ': b := 0;
      '0': b := cDPDis_0;
      '1': b := cDPDis_1;
      '2': b := cDPDis_2;
      '3': b := cDPDis_3;
      '4': b := cDPDis_4;
      '5': b := cDPDis_5;
      '6': b := cDPDis_6;
      '7': b := cDPDis_7;
      '8': b := cDPDis_8;
      '9': b := cDPDis_9;
    end;
    if Punkt then
      b := b + cDPDis_Pkt;
    Result := IntToHex(b,2);
  end;

var
  i : integer;

begin
  result := '';
  for i := 1 to length(s.Zahlen) do begin
    Result := Result + Zahlen(s.Zahlen[i], s.dots[i])
  end;
end;

function DPDotBitmapToAnzeige(gr : tBitmap) : String;
var
  x,y : integer;
  i,i1,i2 : integer;
begin
  Result := '';
{  if not ((gr.width=32) and (gr.height=16)) then
    eExceptions.Create('Grafic not compatible! '
                      + You''ve to have a 32x16 bitmap!')
  else}