Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Передача первой подрограммы во 2ю в качестве параметра


Страницы:   1 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]

Теперь компилируется, но прогресс не "бежит"


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо