Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.26;
Скачать: CL | DM;

Вниз

Propose small change to _Tobj to the Dacha man ;)   Найти похожие ветки 

 
Thaddy   (2005-08-05 01:47) [0]

This is an architectural matter.

What are your thoughts about this possible change to _Tobj (The basic object for Tobj and therefore Tcontrol):
I propose to make the *first* field an untyped pointer, so that you can assign other objects or data to it, just like CustomObj and CustomData.
The advantage is, that you can typecast a full Tobj descendant to the type that holds the pointer:

type
 PPMyObject = ^PMyObject;
 PMyObject = ^TMyObject;
 TMyObject = object(Tobj)
 ....
 end;

Now if the *first* field in _Tobj were a pointer, we could assign a structure to it, say, PWaveFormatEx and we could typecast the whole object as PPWaveFormatEx. Actually simulating interfaces and /or "friend" in C++
You can already do this with simple objects, but you loose the power of the destructor/free. (Add2Autofree, etc)
Right Now the first field is FRefCount. Ithink my proposal would not break the code, only Frefcount and fTag need to be switched?
Or am I missing something?


 
Thaddy   (2005-08-05 02:01) [1]

And the typecast would be:


var

 WaveFormat:TWaveFormatEx; // or any other record or object

 MyObject:PMyobject;
begin
 MyObject:=NewMyObject;
 MyObject.Tag:=Cardinal(@WaveFormat);// Assumes the above!
 PPWaveFormatEx(MyObject).nSamplesPerSec:=44100;
end;



Страницы: 1 вся ветка

Текущий архив: 2006.03.26;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.046 c
2-1142249487
dera
2006-03-13 14:31
2006.03.26
как рисовать на рисунке (bmp) , который загружен в Image?


2-1142341927
kilop
2006-03-14 16:12
2006.03.26
Есть процедура приостановления работы программы, но ...


15-1141497250
ArtemESC
2006-03-04 21:34
2006.03.26
Получить текущую дату JavaScript?


2-1141710863
dimm86
2006-03-07 08:54
2006.03.26
designEditors


3-1138801962
DelphiFan
2006-02-01 16:52
2006.03.26
Фильтрация в TTable по полю ftDateTime