Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Атомы: Запись, чтение и удаление информации


Автор: Poseidon 22.5.2005, 20:09
Код
{Act: 0 - Очистка атомов, 1 - чтение атомов, 2 - запись атомов} 
{Uniq - Уникальный идентификатор} 
{AtomNfo - Информация для записи} 
Function AtomDo(Act:integer;Uniq,AtomNfo:string); 

 Procedure CleanAtoms; 
 var P:PChar; 
  i:Word; 
 begin 
  GetMem(p, 256); 
    For i:=0 to $FFFF do 
    begin 
      GlobalGetAtomName(i, p, 255); 
     if StrPos(p, PChar(Uniq))<>nil then GlobalDeleteAtom(i); 
    end; 
   FreeMem(p); 
 end; 

 Function ReadAtom:string; 
 var P:PChar; 
  i:Word; 
  begin 
    GetMem(p, 256); 
    For i:=0 to $FFFF do 
   begin 
    GlobalGetAtomName(i, p, 255); 
    if StrPos(p, PChar(Uniq))<>nil then break; 
   end; 
      result:=StrPas(p+length(Uniq)); 
      FreeMem(p); 
  end; 

begin 

  case Act of 
  0 : CleanAtoms; 
  1 : Result:=ReadAtom; 
  2 : begin 
      CleanAtoms; 
      GlobalAddAtom(PChar(Uniq+AtomNfo)); 
      end; 
end; 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)