Which will give you a field name. You then need to iterate through the fields in the recordset looking for a field name which matches the above value. When you hit a match, get the displayname of that field.
Which one works will vary depending on your developers. In the Delphi app I'm working on, I have to use a mixture of both as it's not consistent. So I check the grid display label first. If it's blank, I drop into a secondary routine which looks for a match with the field name.