D1P

|
Posted: Fri Dec 12, 2008 13:03 Post subject: |
|
|
Quote: | К сожалению, такое сделать вряд ли получится |
Гм, не вижу больших трудностей. Может мы друг друга недопоняли.
Код примерно такой, за неимением времени до компилируемого состояния не расписываю:
Code: |
function ContentGetValue(FileName:pchar;FieldIndex,UnitIndex:integer;FieldValue:pbyte;maxlen,flags:integer):integer; stdcall;
Begin
if Flags=CONTENT_DELAYIFSLOW then
begin
GetDirSizeBackground (FileName,DirSize);
Result:=ft_ondemand;
end else
begin
if DirSizeCounted (FileName) then Move(DirSize, FieldValue^, sizeof(DirSize)) else {тут можно подождать, или посчитать, или ещё что-то}
Result:=ft_numeric_32;
end;
End;
|
DirSize - глобальная переменная, будем считать, что GetDirSizeBackground отрабатывает в фоне. Прекрасно знаю, что вызов должен быть совсем другой, и надо будет заботиться о куче вещей: успела ли отработать функция получения размера, не был ли подсчитан размер раньше, и т.д. Но это всё решаемо.
Другое дело, что для текущей задачи я бы заморачиваться не стал. _________________ База знаний о Total Commander
Блог |
|