Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2022, 20:18   #1
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
Счастье Как исправить ошибку?: Incompatible types: 'Int64' and 'Integer'

Здравствуйте!
Скачал исходник программы для скачивания файлов. Но не знаю как адаптировать для RAD Studio 10.4. Выходи ошибка: [dcc32 Error] Unit1.pas(70): E2010 Incompatible types: 'Int64' and 'Integer'

Код
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdHTTP, XPMan;
const
MY_MESS = WM_USER + 100;
type
  TForm1 = class(TForm)
    ProgressBar1: TProgressBar;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    SaveDialog1: TSaveDialog;
    Button2: TButton;
    IdHTTP1: TIdHTTP;
    XPManifest1: TXPManifest;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure thrTerminate(Sender:TObject);
    procedure MyProgress(var msg:TMessage);message MY_MESS;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
type
  TDownLoader = class(TThread)
  private
    FToFolder: string;
    FURL: string;
    protected
      procedure Execute;override;
    public
      property URL:string read FURL write FURL;
      property ToFolder:string read FToFolder write FToFolder;
      procedure IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
      AWorkCount: Integer);
      procedure IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
      AWorkCountMax: Integer);
    procedure IdHTTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
  end;
procedure TForm1.Button1Click(Sender: TObject);
begin
  SaveDialog1.FileName:=copy(Edit1.Text,LastDelimiter('\/',Edit1.Text)+1,maxint);
  if SaveDialog1.Execute then
     Edit2.Text:=SaveDialog1.FileName;
end;

{ TDownLoader }

procedure TDownLoader.Execute;
  var http:TIdHTTP;
      str:TFileStream;
begin
  //Создим класс для закачки
  http:=TIdHTTP.Create(nil);
  http.OnWork:=IdHTTP1Work;
  http.OnWorkBegin:=IdHTTP1WorkBegin;
  http.OnWorkEnd:=IdHTTP1WorkEnd;
  //каталог, куда файл положить
  ForceDirectories(ExtractFileDir(ToFolder));
  //Поток для сохранения
  str:=TFileStream.Create(ToFolder, fmCreate);
  try
    //Качаем
    http.Get(url,str);
  finally
    //Нас учили чистить за собой
    http.Free;
    str.Free;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
   var d:TDownLoader;
begin
  //Создадим класс потока.
  //Поток для начала будет остановлен
  d:=TDownLoader.Create(true);
  //Передадим параметры потоку
  d.URL:=Edit1.Text;
  d.ToFolder:=Edit2.Text;
  //Поток должен удалить себя по завершению своей работы
  d.FreeOnTerminate:=true;
  d.OnTerminate:=thrTerminate;
  //И запустим его на закачку.
  d.Resume;
  //Теперь с процедуры мы выйдем, но поток работает
  //и живёт своей жизней
end;

procedure TForm1.MyProgress(var msg: TMessage);
begin
  case msg.WParam of
  0:begin ProgressBar1.Max:=msg.LParam;ProgressBar1.Position:=0; end;
  1:ProgressBar1.Position:=msg.LParam;
  end;
end;

procedure TForm1.thrTerminate(Sender: TObject);
begin
  ShowMessage('Готово');
end;

procedure TDownLoader.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Integer);
begin
  PostMessage(Application.MainForm.Handle,MY_MESS,1,AWorkCount);
end;

procedure TDownLoader.IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCountMax: Integer);
begin
  PostMessage(Application.MainForm.Handle,MY_MESS,0,AWorkCountMax);
end;

procedure TDownLoader.IdHTTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
begin
//
end;

end.
Женя32 вне форума Ответить с цитированием
Старый 04.01.2022, 21:05   #2
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Код:
    procedure HTTPWork(ASender: TObject; AWorkMode: TWorkMode;
      AWorkCount: Int64);
    procedure HTTPWorkBegin(ASender: TObject; AWorkMode: TWorkMode;
      AWorkCountMax: Int64);

procedure TDownloadUpdate_Thread.HTTPWork(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Int64);
begin
  //
end;

procedure TDownloadUpdate_Thread.HTTPWorkBegin(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCountMax: Int64);
begin
  //
end;
Shouldercannon на форуме Ответить с цитированием
Старый 04.01.2022, 21:39   #3
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
По умолчанию

Спасибо!
Программа скомпилировалась, но, почему-то, файл не скачивается, как обещали здесь: https://www.interface.ru/home.asp?artId=22170
Может быть я что-то ни так делаю....
Что можно сделать?
Женя32 вне форума Ответить с цитированием
Старый 05.01.2022, 05:24   #4
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Файл по ссылке доступен?
Shouldercannon на форуме Ответить с цитированием
Старый 05.01.2022, 15:00   #5
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
По умолчанию

Цитата:
Сообщение от Shouldercannon Посмотреть сообщение
Файл по ссылке доступен?
Да, доступен.
Я тестил на "Яндекс картинки", беру любую картинку, копирую прямую ссылку, вставляю ее в соответствующее поле.. Но, создается файл 0 байт.
Попробовал скачать файл.mp3, программа замечательно отработала(!), файл полностью был скачен.
Почему так? Не знаю...
Женя32 вне форума Ответить с цитированием
Старый 05.01.2022, 21:24   #6
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Пример
Вложения
Тип файла: zip Download.zip (1.14 Мб, 3 просмотров)
Shouldercannon на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Error] Unit1.pas(40): Incompatible types: 'Integer' and 'Extended BETONOMESHALKA Общие вопросы Delphi 9 15.03.2014 17:26
Incompatible types: 'Integer' and 'Extended' flouwjke Общие вопросы Delphi 2 21.04.2012 01:07
Incompatible types: 'Integer' and 'Extended'.. zak_87 Общие вопросы Delphi 3 06.10.2010 15:25
Incompatible types: 'Integer' and 'Extended' evgenext Общие вопросы Delphi 9 05.07.2010 08:03