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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2013, 16:24   #1
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
Сообщение чем заменить TPath.GetTempFileName() в Delphi7

подскажите пожалуйста, чем заменить TPath.GetTempFileName() в Delphi7
XE-XE5 понимает, а Delphi7 не знает TPath.GetTempFileName(), чем заменить можно?

Код:
const
     FImageFileName: String;
procedure TMainForm.FormCreate(Sender: TObject);
begin
  Caption := 'ICQ-Checker';
  FImageFileName := TPath.GetTempFileName() + '.gif'; // Delphi7 don't know TPath.GetTempFileName
end;

Последний раз редактировалось beegl; 09.12.2013 в 16:26. Причина: добавил текст
beegl вне форума Ответить с цитированием
Старый 09.12.2013, 16:43   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Залезь в исходник этого метода - что там внутри?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.12.2013, 16:44   #3
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

Код:
function GetTempFileName(lpPathName, lpPrefixString: PChar;
  uUnique: UINT; lpTempFileName: PChar): UINT; stdcall;
не получается сформулировать пример

все заменил, а эту строчку на знает
Код:
unit uApp.Main.Form;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
  Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls;

type
  TMainForm = class(TForm)
    ButtonCheck: TButton;
    ButtonReset: TButton;
    EditUIN: TEdit;
    ImagePanel: TPanel;
    Inputs: TGroupBox;
    StateImage: TImage;
    procedure ButtonCheckClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure ButtonResetClick(Sender: TObject);
  private
    FImageFileName: string;
  public
    { Public-Deklarationen }
  end;

var
  MainForm: TMainForm;

implementation

{$R *.dfm}

uses
  System.IOUtils,
  System.Win.ComObj,
  Vcl.Imaging.GIFImg,
  Winapi.Urlmon;

{ TMainForm }

procedure TMainForm.ButtonCheckClick(Sender: TObject);
const
  CUrlString = 'http://status.icq.com/online.gif?uin=%s&img=5';
var
  UIN: string;
  URL: string;
begin
  UIN := Trim(EditUIN.Text);
  if (UIN = String.Empty) then
    Exit;

  StateImage.Picture := nil;

  URL := Format(CUrlString, [UIN]);
  OleCheck(URLDownloadToFile(nil, PChar(URL), PChar(FImageFileName), 0, nil));

  StateImage.Picture.LoadFromFile(FImageFileName);
end;

procedure TMainForm.ButtonResetClick(Sender: TObject);
begin
  EditUIN.Clear();
  EditUIN.SetFocus();
  StateImage.Picture := nil;
end;

procedure TMainForm.FormCreate(Sender: TObject);
begin
  Caption := 'ICQ-Checker';
  FImageFileName := TPath.GetTempFileName() + '.gif'; // это не понимает Delphi7 чем это заменить?
end;

procedure TMainForm.FormDestroy(Sender: TObject);
begin
  DeleteFile(FImageFileName);
end;

end.

Последний раз редактировалось beegl; 09.12.2013 в 16:48.
beegl вне форума Ответить с цитированием
Старый 09.12.2013, 16:45   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

GetTempFileName из юнита Windows в Д7 чем не подходит?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.12.2013, 16:52   #5
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

жду ответ, напишите, как верно подкоректировать строчку?)
beegl вне форума Ответить с цитированием
Старый 09.12.2013, 16:56   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
не получается сформулировать пример
Это оебртка на функу WinAPI. Там что-то еще должно быть
Код:
var buf:array[1..255] of char;
GetTempFileName('d:\1\','pref',1,buf);
FImageFileName :=buf;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.12.2013, 16:59   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

В Delphi7 просто GetTempFileName
В uses должен быть Windows
Читайте #4 и этот пост до прояснения
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.12.2013, 17:02   #8
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

написал:
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
   buf:array[1..255] of char;
begin
  Caption := 'ICQ Checker';
  GetTempFileName('d:\','pref',1,buf);
  FImageFileName := buf;
end;
ошибка

Код:
[Error] ICQCheckerUnit.pas(66): Incompatible types: 'Array' and 'PAnsiChar'
[Fatal Error] ICQChecker.dpr(5): Could not compile used unit 'ICQCheckerUnit.pas'[Error] ICQCheckerUnit.pas(66): Incompatible types: 'Array' and 'PAnsiChar'
[Fatal Error] ICQChecker.dpr(5): Could not compile used unit 'ICQCheckerUnit.pas'
beegl вне форума Ответить с цитированием
Старый 09.12.2013, 17:15   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
var Buf: String;

SetLength(Buf,MAX_PATH+1);
GetTempFileName('d:\','pref',1,PAnsiChar(Buf));
FImageFileName:=Buf;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.12.2013, 17:28   #10
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

такая ошибка, что может быть?

beegl вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чем заменить функцию? kity Помощь студентам 8 29.06.2010 16:08
нужно заменить круг на треугольник(delphi7) Dimitrius_92 Помощь студентам 0 27.05.2010 18:23
чем заменить goto? Agronom Общие вопросы C/C++ 3 19.12.2009 19:43
Чем заменить GetFreeSystemResources? rocky7 Компоненты Delphi 0 23.08.2009 20:20