5
Czy jest coś takiego w tytule? Staram się robić to w ramach konwersji an API structure i biegać w czymś nie spotkałem wcześniej:Deklaracje w przód dla typów rekordów
PFNReaderTranslatedDispatch = function(var msg: TMsg): BOOL; stdcall;
PFNReaderScroll = function(var prmi: TReaderModeInfo; dx, dy: integer): BOOL; stdcall;
TReaderModeInfo = record
cbSize: DWord;
hWnd: THandle;
fFlags: DWord;
prc: PRect;
pfnScroll: PFNReaderScroll;
fFlags2: PFNReaderTranslatedDispatch;
lParam: DWord;
end;
PReaderModeInfo = ^TReaderModeInfo;
Ci, którzy znają Delphi ujrzy oczywisty problem. Jak byś to obejrzał?
Dzięki! Teraz przejdź do wdrożenia! – Glenn1234
To jedyny sposób, szukałem rozwiązania jeszcze raz w tym dokładnym scenariuszu. I dotyczy to tylko jeśli zamierzasz używać wersji wskaźnika. –
Po prostu należy pamiętać, że powinno być możliwe, aby 'prmi' był niepoprawnym parametrem' var', jeśli ważne jest wywoływanie funkcji bez jawnego wskaźnika. Oczywiście tracisz bezpieczeństwo typu, dlatego nie zrobiłbym tego sam, ale inni mogą, więc upewnijcie się, że jest tu mowa. – hvd