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

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

Как перевести на WinAPI? [D7, WinXP]


_HAWK_ ©   (2006-06-07 07:03:00) 

Привет всем! Вопрос к тем, кто знает WinAPI. У меня вопрос такого характера: имеется процедура:
var
 D: Byte;
 I: Integer;
 F, K: TStream;
begin
 if OpenF.Execute then
  begin
    F := TFileStream.Create(OpenF.FileName,fmOpenRead);
    K := TFileStream.Create('Decode.dat',fmCreate);
    ProgressBar.MaxValue := F.Size;
    for I := 0 to F.Size - 1 do
     begin
       F.Position := I;
       K.Position := I;
       F.Read(D,1);
       D := D-((I*85)-I+12345+28*I+(2*I+5-I-1));
       K.Write(D,1);
       ProgressBar.Progress := I;
       Application.ProcessMessages;
       if Application.Terminated then Break;
     end;
    ProgressBar.Progress := I;
    K.Free;
    F.Free;
    ProgressBar.Progress:= 0;
    ListBox.Items.LoadFromFile('Decode.dat');
    if FileExists('Decode.dat') then
     DeleteFile('Decode.dat');
  end;
 ListBox.ItemIndex := 0;
 ListBoxClick(nil);

Можно ли перевести ее на чисты WinAPI?


Игорь Шевченко   (2006-06-07 15:15:00) [1]

CopyFileEx


evvcom   (2006-06-07 11:11:00) [2]


> han_malign ©   (07.06.06 10:54) [7]

Угу. А еще он использует TApplication, TProgressBar, TListBox и наверняка TForm.


han_malign   (2006-06-07 10:54:00) [3]


> первую строчку можно убрать, ибо этого никто не увидит, потому что перерисовки между первой и последней строчкой нет.

- посмотри реализацию ProgressBar и удивись...


> помоги пожалуйста, буду весьма признателен...

CreateFile
GetFileSize
SetFilePointer
ReadFile
WriteFile
...
CloseHandle


evvcom   (2006-06-07 09:03:00) [4]


> Если знаешь как, помоги пожалуйста, буду весьма признателен...

Ты думаешь, я мазохист? Или мне делать от скуки нечего? Дядька Борланд кучу классов-надстроек над WinAPI написал, чтобы нам жить легче было, а ты хочешь rollback сделать? Без меня...


tButton   (2006-06-07 08:56:00) [5]


> А вообще можно перевести этот код без потери работоспособности?

а что тут переводить?
заменить вызов одних функций другими?
а оно нужно?


_HAWK_   (2006-06-07 08:56:00) [6]


> Можно. Но мучительно долго...

Если знаешь как, помоги пожалуйста, буду весьма признателен...


evvcom   (2006-06-07 08:52:00) [7]


> А вообще можно перевести этот код без потери работоспособности?

Можно. Но мучительно долго...
Можно и Windows на чистом ассемблере переписать. :-) Рискнешь?


_HAWK_   (2006-06-07 08:11:00) [8]

А вообще можно перевести этот код без потери работоспособности?


tButton   (2006-06-07 07:28:00) [9]


>     ProgressBar.Progress := I;
>     K.Free;
>     F.Free;
>     ProgressBar.Progress:= 0;

первую строчку можно убрать, ибо этого никто не увидит, потому что перерисовки между первой и последней строчкой нет.


Наверх

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