ViktorSila
экземпляр класса?
test = ttest.create(self)
пойдет?
экземпляр класса?
test = ttest.create(self)
пойдет?
Для проверки работы можно использовать все тот же небольшой проект, включив в Uses модуль DataSet3 вместо DataSet0, а также модуль MyData, и добавив подключение к нашему экземпляру TMyDataSet определенных в модуле MyData обработчиков событий. Для этого, конечно, потребуется создать экземпляр TMyData.
главное здесь чтобы эти обработчики были реализованы в классе, ибо указатели на методы - это не просто обычные указатели - это два указателя, одни из которых используется для идентификации неявной переменной Self
TMethod = record
Code, Data: Pointer;
end;
блин, еще один...
нули вылезают на этапе создания секций загрузчиком PE.- это второй вопрос (потестировал примерчики, скорее всего так и есть, интересно было бы это почитать, ссылка не завалялась?). так в чем проблема-то, сам же писал:
генерит код для этого действа
спецмально сделал маленький пример и дизассемблировал его. (компилятор D7, дизассемблер Ida).
Могу заявить: Явного кода обнуления глобальных переменных нет!.
a dd ?
плюс еще доп код, т.е, не просто обнуление, а правильнее (извини за грубый псевдокод)
в классе TMyData определяешь обрабочики событий (методы объекта), создаешь экземпляр этого класса. Ну и там где тебе нужно их прицепить к событиям - просто идет присваивание методов из экземпляра класса TMyData (который ты создал)
program Dataset;
uses
Forms,
DB,
DBGrids,
DBCtrls,
Controls,
DataSet3, // первый модуль
MyData; // второй модуль
var
F: TForm;
DS: TDataSource;
MyDataSet: TMyDataSet;
MyDataEx: TMyData;
begin
Application.Initialize;
Application.CreateForm(TForm, F);
F.Width := 300;
F.Height := 300;
F.Position := poDesktopCenter;
MyDataEx := TMyData.Create;
MyDataSet := TMyDataSet.Create(F);
MyDataSet.Open;
DS := TDataSource.Create(F);
DS.DataSet := MyDataSet;
with TDBNavigator.Create(F) do
begin
Parent := F;
Align := alTop;
DataSource := DS
end;
with TDBGrid.Create(F) do
begin
Parent := F;
Align := alClient;
DataSource := DS
end;
Application.Run;
end.
ну, на самом деле, там происходит так:
Pointer(S) := nil;
На самом деле это именно конструктор
P.S. Если найду свои старые исходники (помнится я еще и эмулятор мыши для SVGA режимов писал), могу поделится
Circular unit reference to 'DataSet3'
Подскажите, как можно (и можно ли вообще) в стандартной компоненте PopupMenu выделить один Caption жирным шрифтом?
Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
Предыдущая тема: Вероятность одинакового CRC32