Семь чудес и два фокуса на Дельфи
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: текст для изложения, оформление доклада титульный лист
| Добавил(а) на сайт: Бурдаков.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата
Figure 11.
Как вы уже наверное догадались FControl опять окажется не TControl. Найдите в модуле System процедуру _IsClass. Хоть она и написана на ассемблере, нетрудно понять, что в ней происходит - в цикле просматриваются ссылки на классы (сначала собственная - обьекта, а потом - всех предков) и среди них ищется равная правому операнду. Давайте изменим немного процедуру:
procedure TfrmAllMiracles.btnIsMrcl2Click(Sender: TObject);
var
p1, p2: pointer;
begin
FControl := TControl.Create(nil);
try
p1 := pointer(FControl.ClassType);
p2 := pointer(TControl);
if not IsControlLib(FControl) then
ShowMessage('Not a Control');
finally
FreeAndNil(FControl);
end;
end;
Figure 12.
Посмотрите под отладчиком значения p1 и p2 - они равны. Теперь изменим и функцию IsControlLib:
function IsControlLib(const anObj: TObject): boolean;
var
p3,p4: pointer;
begin
p3 := pointer(anObj.ClassType);
p4 := pointer(TControl);
Result := anObj is TControl;
Рекомендуем скачать другие рефераты по теме: реферат по философии, реферат безопасность.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата