Можно если типы PRectTextButton и PRectImgButton имеют общего предка и функционал предостовляемый этим предком достаточен для выполнения процедуры. получится чтото типа
overload не обязателен. Работать будет. Параметры процедуры являются таким же идентификатором как и само название. Т.ч. разные параметры - это разные процедуры.
>>Записи вроде не наследуются, а в классы переделывать не хочется. Перегрузка процедуры не будет глючить? Записи не наследутся, но возможен "хак" - третий тип записи имеющий минимальное важное общее начало записей первого и второго типа - т.е. "скопипастить" наследование - некрасиво, требует приведения типов, но сработает если возможно выделить это "общее" достаточное для выполнения процедуры. В данном случае общего только Rect: zglTRect и OnClick: TOnClick; этого хватит? OnClick придется перекинуть вторым параметром
з.ы. Вам не кажется что вы пытаетесь натянуть ООП принципы на не ООП данные? Вообще делать ГУЙ не используя ООП - ненужная морока. и классы тут подойдут лучше обжектов, т.к. скорость и минимальность неважна
Если передается все равно указатель, то вариант с "абстрактной" записью с общими параметрами сработает и без приведения типов. Однако, как раз для таких случаев и придумали дженерики.