Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.07.23;
Скачать: [xml.tar.bz2];

Вниз

Как перевести на WinAPI?   Найти похожие ветки 

 
_HAWK_   (2006-06-07 07:03) [0]

Привет всем! Вопрос к тем, кто знает 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?


 
tButton ©   (2006-06-07 07:28) [1]


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

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


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

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


 
evvcom ©   (2006-06-07 08:52) [3]


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

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


 
tButton ©   (2006-06-07 08:56) [4]


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

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


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


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

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


 
evvcom ©   (2006-06-07 09:03) [6]


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

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


 
han_malign ©   (2006-06-07 10:54) [7]


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

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


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

CreateFile
GetFileSize
SetFilePointer
ReadFile
WriteFile
...
CloseHandle


 
evvcom ©   (2006-06-07 11:11) [8]


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

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


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

CopyFileEx



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2006.07.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.012 c
2-1151919058
SDF
2006-07-03 13:30
2006.07.23
Сообщение Onмауспокинулконтрол


2-1151670132
Ivolg
2006-06-30 16:22
2006.07.23
Edit


2-1151950047
Muha89
2006-07-03 22:07
2006.07.23
help


3-1147858011
BorisMor
2006-05-17 13:26
2006.07.23
Процедуры в InterBase


2-1151873123
Deny20
2006-07-03 00:45
2006.07.23
помогите чем могите разобраться с печатью Курсак горит!!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский