![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Передача первой подрограммы во 2ю в качестве параметра
Weei © (2011-06-25 20:57:00)Здравствуйте
В универе задали написать простенькую программку по кодированию файлов.
Препод сказал добавить прогресс для визуального отображения хода процесса.
Я предполагал зделать так:
...
Type
TProgressChange = procedure(Progress: Integer; ProgressMax: Integer);
....
procedure ProgressChange (Progress: Integer; ProgressMax: Integer);
Begin
ProgressBar1.Max:=ProgressMax;
ProgressBar1.Position:=Progress;
end;
Function _XorCodeFile(const Password:String; Var Source:TFileStream; var OnProgress:TProgressChange):Boolean;
Begin
...
OnProgress(...);
...
end;
Вызов
procedure TForm1.Button2Click(Sender: TObject);
var
Buffer: Byte;
FileIn: TFileStream;
i, L:Integer;
begin
FileIn := TFileStream.Create('.\1.txt', fmOpenReadWrite);
_XorCodeFile('.0y7k',FileIn, ProgressChange);
FileIn.Free;
end;
Однако ничего не получилось.
Подскажите в какую сторону копать.
icWasya (2011-06-27 12:41:00) [1]_AddRef и _Release - так захотелось Microsoft`у, тяжелое наследие "C".
b z (2011-06-27 12:31:00) [2]
> 1. Какую информативность несет "_" в данном случае?
А какую должна? У нас например все приватные с "_" начинаются, а локальные с двух "_", и ничего. Просто так удобно.
> 2. Почему функции функции _AddRef и _Release так назвали?
Полагаю так захотелось, ошибаюсь?
Dennis I. Komarov (2011-06-27 12:05:00) [3]
> Почему?
1. Какую информативность несет "_" в данном случае?
2. Почему функции функции _AddRef и _Release так назвали?
b z (2011-06-27 11:41:00) [4]
> И так больше не надо делать...
Почему?
Dennis I. Komarov (2011-06-27 11:21:00) [5]
> Function _XorCodeFile
И так больше не надо делать...
Anatoly Podgoretsky (2011-06-27 10:08:00) [6]Смотри демос, там аж три прогресс бара есть
RWolf (2011-06-27 09:56:00) [7]
> [21]
> Неграмотность — бич современного Рунета.
fixed.
Полвторого (2011-06-27 04:01:00) [8]> Ega23 © (26.06.11 11:24) [20]
Снисходительнее надо быть. Добрее.
Грамматический нацизм — бич современного Рунета.
© почти Копир…
Ega23 (2011-06-26 11:24:00) [9]
> Ну я граматей)
Ты не "грам атей", ты неграмотная школота.
Weei (2011-06-26 06:32:00) [10]Ну я граматей)
картман (2011-06-26 01:34:00) [11]
> Weei (25.06.11 22:15) [17]
>
> Спасибо за "правельно", исправлюсь. )
> Weei (25.06.11 20:57)
> Я предполагал зделать так:
мне тоже спасибо гони: " зделать"
Weei (2011-06-25 22:15:00) [12]Спасибо за "прав ельно", исправлюсь. )
Ega23 (2011-06-25 22:12:00) [13]
> Правельно я понял
Я не в курсе, что там ты понял, и что для тебя "прав ельно".
Одно - процедура, другое - метод. Чем они отличаются - писать долго и неохота. Но ты можешь в хелпе посмотреть самостоятельно.
Weei (2011-06-25 22:08:00) [14]Правельно я понял
TProgressChange = procedure(Progress: Integer; ProgressMax: Integer);
...
procedure ProgressChange (Progress: Integer; ProgressMax: Integer);
и
TProgressChange = procedure(Progress: Integer; ProgressMax: Integer) of object;
...
procedure TForm1.ProgressChange (Progress: Integer; ProgressMax: Integer);
???
Ega23 (2011-06-25 21:59:00) [15]
> в чём принципиальная разница ?
В одном случае это процедура, в другой - метод.
Weei (2011-06-25 21:48:00) [16]TProgressChange = procedure(Progress: Integer; ProgressMax: Integer) of object;
Какой смысл "несёт"of object;???
TProgressChange = procedure(Progress: Integer; ProgressMax: Integer);
TProgressChange = procedure(Progress: Integer; ProgressMax: Integer) of object;
в чём принципиальная разница ?
Weei (2011-06-25 21:43:00) [17]Я OnProgress в XorCodeFile забыл вызвать )))))))
Weei (2011-06-25 21:42:00) [18]Всё реализовал )))
Спасибо )
Kerk (2011-06-25 21:42:00) [19]Значит пора вернутся к посту №1 :)
procedure ProgressChange (Progress: Integer; ProgressMax: Integer);
Begin
ProgressBar1.Max:=ProgressMax;
ProgressBar1.Position:=Progress;
Application.ProcessMessages;
end;
Weei (2011-06-25 21:40:00) [20]Теперь компилируется, но прогресс не "бежит"