DeleteKey Example for Delphi

var
   x: Integer;
begin


   LEADDicom1.ResetDS ();
   LEADDicom1.InitDS (DICOM_CLASS_UNKNOWN, 0);

   //insert some keys
   LEADDicom1.InsertKey ('PATIENT', True); //insert PATIENT level key
   LEADDicom1.InsertKey ('STUDY', True); //insert STUDY level key

   //insert 5 SERIES level keys and some data
  for x:= 1 To 5 do
   begin
     LEADDicom1.StringValueCount:= 1;
     LEADDicom1.InsertKey ('SERIES', True);
     LEADDicom1.MoveChildElement ();
     LEADDicom1.FindFirstElement (TAG_REFERENCED_FILE_ID, True);
     LEADDicom1.StringValues [0]:= IntToStr(x);
     LEADDicom1.SetStringValue (1);
     LEADDicom1.MoveParentElement ();
     LEADDicom1.MoveParentKey (); //move back up one level
   end;

   //move to root key
   LEADDicom1.MoveRootKey ();//PATIENT level
   ShowMessage (String (LEADDicom1.GetKeyValue));

   //move to SERIES level
   LEADDicom1.MoveChildKey ();//STUDY
   LEADDicom1.MoveChildKey ();//SERIES

   //find first SERIES
   LEADDicom1.FindFirstKey ('SERIES', True);
   LEADDicom1.MoveChildElement ();
   LEADDicom1.FindFirstElement (TAG_REFERENCED_FILE_ID, True ) ;
   LEADDicom1.GetStringValue (0, 1);
   ShowMessage (LEADDicom1.StringValues [0]);

   //find next series
   LEADDicom1.FindNextKey (True);
   LEADDicom1.MoveChildElement ();
   LEADDicom1.FindFirstElement (TAG_REFERENCED_FILE_ID, True);
   LEADDicom1.GetStringValue (0, 1);
   ShowMessage (LEADDicom1.StringValues [0]);

   //find last SERIES
   LEADDicom1.FindLastKey ('SERIES', True);
   LEADDicom1.MoveChildElement ();
   LEADDicom1.FindFirstElement (TAG_REFERENCED_FILE_ID, True);
   LEADDicom1.GetStringValue (0, 1);
   ShowMessage (LEADDicom1.StringValues [0]);

   //find previous SERIES
   LEADDicom1.FindPrevKey (True);
   LEADDicom1.MoveChildElement ();
   LEADDicom1.FindFirstElement (TAG_REFERENCED_FILE_ID, True);
   LEADDicom1.GetStringValue (0, 1);
   ShowMessage (LEADDicom1.StringValues [0]);

   //find last SERIES and delete it
   LEADDicom1.FindLastKey ('SERIES', True);
   LEADDicom1.DeleteKey ();

   //move to root key
   LEADDicom1.MoveFirstKey (False);
   ShowMessage (String (LEADDicom1.GetKeyValue ()));

   //move to SERIES level
   LEADDicom1.MoveChildKey (); //STUDY
   LEADDicom1.MoveChildKey (); //SERIES

   //move to first SERIES
   LEADDicom1.MoveFirstKey (True);
   LEADDicom1.MoveChildElement ();
   LEADDicom1.FindFirstElement (TAG_REFERENCED_FILE_ID, True);
   LEADDicom1.GetStringValue (0, 1);
   ShowMessage (LEADDicom1.StringValues [0]);

   //move to next series
   LEADDicom1.MoveNextKey (True);
   LEADDicom1.MoveChildElement ();
   LEADDicom1.FindFirstElement (TAG_REFERENCED_FILE_ID, True);
   LEADDicom1.GetStringValue (0, 1);
   ShowMessage (LEADDicom1.StringValues [0]);

   //move to last SERIES
   LEADDicom1.MoveLastKey (True);
   LEADDicom1.MoveChildElement ();
   LEADDicom1.FindFirstElement (TAG_REFERENCED_FILE_ID, True);
   LEADDicom1.GetStringValue (0, 1);
   ShowMessage (LEADDicom1.StringValues [0]);

   //move to previous SERIES
   LEADDicom1.MovePrevKey (True);
   LEADDicom1.MoveChildElement ();
   LEADDicom1.FindFirstElement (TAG_REFERENCED_FILE_ID, True);
   LEADDicom1.GetStringValue (0, 1);
   ShowMessage (LEADDicom1.StringValues [0]);
end;