И не среда, а коды, скажем...
Лично мне больше нравится Case-Sensitive вариант (как в Fasm, к примеру), но не я же это придумывал.
В этом случае еще проще - выкидываем лишнее напрочь (это я про после своих упрощений).
function ForceGVar(const Name:string):PData;
var i:integer;
begin
Result := nil;
if Name=' then exit;
i := NList.IndexOf(Name);
if i>=0 then
Result := PData(NList.Objects[i])
else begin
new(Result);
dtNull(Result^);
NList.AddObject(Name,cardinal(Result));
end;
end;