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

Вниз

Пример с книги Delphi 3 не работает на Delphi 6   Найти похожие ветки 

 
syte_ser78 ©   (2005-01-19 11:06) [0]

Переписываю с книги код, запускаю - ошибки в двух строках (для наглядности закоментарены)

Var
  VersionBuffer, Version:String;
  VersionSize:Integer;
  Dummy:Integer;
begin
//   VersionSize:=GetFileVersionInfoSize(PChar(Application.ExeName),Dummy);
  if (VersionSize<>0) then
     begin
     SetLength(VersionBuffer,VersionSize);
     SetLength(Version,VersionSize);
        if (GetFileVersionInfo(PChar(Application.ExeName),
           Dummy,VersionSize,PChar(VersionBuffer))) and
           (VerQueryValue(PChar(VersionBuffer),
           "\StringFileInfo\040904E4\ProductVersion",
//            Pointer(Version),VersionSize)) then
        frm_main.Caption:=Version;
     end;
end;

Как исправить код чтобы работал под Delphi 6?


 
cyborg ©   (2005-01-19 11:13) [1]

Где ошибки?


 
syte_ser78 ©   (2005-01-19 11:15) [2]

в тех строках которыя я закоментировал
//   VersionSize:=GetFileVersionInfoSize(PChar(Application.ExeName),Dummy);

       if (GetFileVersionInfo(PChar(Application.ExeName),
          Dummy,VersionSize,PChar(VersionBuffer))) and
          (VerQueryValue(PChar(VersionBuffer),
          "\StringFileInfo\040904E4\ProductVersion",
//            Pointer(Version),VersionSize)) then


 
syte_ser78 ©   (2005-01-19 11:17) [3]

Types of actual and formal var parameters must be identical
в обоих случаях


 
cyborg ©   (2005-01-19 11:17) [4]

Var
 VersionBuffer, Version:String;
 VersionSize:Cardinal;
 Dummy:Cardinal;


 
Kerk ©   (2005-01-19 11:17) [5]

Dummy: DWORD;


 
syte_ser78 ©   (2005-01-19 11:19) [6]

Ок! Спасибо!


 
syte_ser78 ©   (2005-01-19 11:21) [7]

Но условие

if (GetFileVersionInfo(PChar(Application.ExeName),
          Dummy,VersionSize,PChar(VersionBuffer))) and
          (VerQueryValue(PChar(VersionBuffer),
          "\StringFileInfo\040904E4\ProductVersion",
           Pointer(Version),VersionSize))

всеравно не выполняется.
Version остается пустым


 
cyborg ©   (2005-01-19 11:22) [8]

А оно, версия файла, у тебя есть? В опциях компиляции поставь.


 
syte_ser78 ©   (2005-01-19 11:24) [9]

Project|version|version_info заполнено!


 
syte_ser78 ©   (2005-01-19 11:24) [10]

Project|option|version_info заполнено!


 
cyborg ©   (2005-01-19 11:28) [11]

А это что такое?
"\StringFileInfo\040904E4\ProductVersion"


 
syte_ser78 ©   (2005-01-19 11:30) [12]

Об этом книга умалчивает.


 
cyborg ©   (2005-01-19 11:34) [13]

Видимо версия файла не так определяется.
У меня есть где-то код определения версии, ща гляну.


 
cyborg ©   (2005-01-19 11:36) [14]


function FileVersion(FileName: string): string;
var
Buf: Pointer;
BufSize, Len, dwHandle: Cardinal;
VerInfo: PVSFixedFileInfo;
begin
Result := "";
BufSize := GetFileVersionInfoSize(PChar(FileName), dwHandle);
if BufSize <> 0 then begin
 GetMem(Buf, BufSize);
 try
  GetFileVersionInfo(PChar(FileName), dwHandle, BufSize, Buf);
  VerQueryValue(Buf, "\", Pointer(VerInfo), Len);
  with VerInfo^ do
   Result := Format("%d.%d.%d.%d", [
    dwFileVersionMS shr 16,
    dwFileVersionMS and $FFFF,
    dwFileVersionLS shr 16,
    dwFileVersionLS and $FFFF]);
 finally
  FreeMem(Buf, BufSize);
 end;
end;
end;


 
syte_ser78 ©   (2005-01-19 11:43) [15]

Спасибо!



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

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

Наверх




Память: 0.48 MB
Время: 0.052 c
1-1106410715
sardox
2005-01-22 19:18
2005.02.06
Тулбар...


8-1098638844
aladdin
2004-10-24 21:27
2005.02.06
Видео плеер


14-1105702737
DimaK
2005-01-14 14:38
2005.02.06
BDE и профили пользователей в XP


3-1105169378
Dell3r
2005-01-08 10:29
2005.02.06
Скролинг


8-1098262784
avlan
2004-10-20 12:59
2005.02.06
Параметры видеофайла (DSPack)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский