Атомы: запись, чтение и удаление информации
01.01.2007
{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;
Взято с Vingrad.ru https://forum.vingrad.ru