Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / показать номер сборки проекта (build) Delphi 2010 / 9 сообщений из 9, страница 1 из 1
14.06.2017, 12:31:45
    #39471445
SDA_H
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
показать номер сборки проекта (build) Delphi 2010
Добрый день! Как из программы вывести № сборки текущего проекта в группе проектов?
...
Рейтинг: 0 / 0
14.06.2017, 12:41:22
    #39471454
SDA_H
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
показать номер сборки проекта (build) Delphi 2010
нашел:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
function GetMyVersion:string;
type
  TVerInfo=packed record
    Nevazhno: array[0..47] of byte; // ненужные нам 48 байт
    Minor,Major,Build,Release: word; // а тут версия
  end;
var
  s:TResourceStream;
  v:TVerInfo;
begin
  result:='';
  try
    s:=TResourceStream.Create(HInstance,'#1',RT_VERSION); // достаём ресурс
    if s.Size>0 then begin
      s.Read(v,SizeOf(v)); // читаем нужные нам байты
      result:=IntToStr(v.Major)+'.'+IntToStr(v.Minor)+'.'+ // вот и версия...
              IntToStr(v.Release)+'.'+IntToStr(v.Build);
    end;
  s.Free;
  except; end;
end;
...
Рейтинг: 0 / 0
14.06.2017, 13:05:23
    #39471467
schi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
показать номер сборки проекта (build) Delphi 2010
SDA_Hнашел:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
function GetMyVersion:string;
type
  TVerInfo=packed record
    Nevazhno: array[0..47] of byte; // ненужные нам 48 байт
    Minor,Major,Build,Release: word; // а тут версия
  end;
var
  s:TResourceStream;
  v:TVerInfo;
begin
  result:='';
  try
...
  except; end;
end;



Закопай обратно
...
Рейтинг: 0 / 0
14.06.2017, 19:38:54
    #39471723
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
показать номер сборки проекта (build) Delphi 2010
SDA_H,

можно так

зы. в Лазаре все намного проще
...
Рейтинг: 0 / 0
15.06.2017, 12:18:12
    #39472138
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
показать номер сборки проекта (build) Delphi 2010
14.06.2017 19:38, Док пишет:
> можно так < https://stackoverflow.com/questions/6557778/get-fileversion-with-build>

не нужно ТАК.
ТАК получают версию любого СТОРОННЕГО файла.
можно конечно и "самого себя", но это будет "чешежопица".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.06.2017, 12:41:43
    #39472180
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
показать номер сборки проекта (build) Delphi 2010
Мимопроходящий,

так ты покажи, как надо. ТС не прочтет, другие найдут :)
...
Рейтинг: 0 / 0
15.06.2017, 12:50:32
    #39472196
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
показать номер сборки проекта (build) Delphi 2010
15.06.2017 12:41, Док пишет:
> так ты покажи, как надо. ТС не прочтет, другие найдут :)

все интернеты завалены бесплатными советами "как надо" (С)
версия сидит в ресурсе, читать нужно ресурс и разбирать его.
примерно так (схематически):
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
  m := TMemoryStream.Create;
  try
    try
      rs := TResourceStream.CreateFromID(HInstance, 1, RT_VERSION);
      try
        m.CopyFrom(rs, rs.Size);
      finally
        rs.Free;
      end;

      m.Position := 0;

      if VerQueryValue(m.Memory, '\', pointer(VerInfo), InfoSize) then
        begin
          Major1 := VerInfo.dwFileVersionMS shr 16;
          Major2 := VerInfo.dwFileVersionMS and $FFFF;
          Minor1 := VerInfo.dwFileVersionLS shr 16;
          Minor2 := VerInfo.dwFileVersionLS and $FFFF;
          Result := true;
        end;
    except
      Result := false;
      Major1 := 0;
      Major2 := 0;
      Minor1 := 0;
      Minor2 := 0;
    end;
  finally
    m.Free;
  end;



Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.06.2017, 13:56:05
    #39472271
schi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
показать номер сборки проекта (build) Delphi 2010
Мимопроходящий15.06.2017 12:41, Док пишет:
> так ты покажи, как надо. ТС не прочтет, другие найдут :)

все интернеты завалены бесплатными советами "как надо" (С)
версия сидит в ресурсе, читать нужно ресурс и разбирать его.
примерно так (схематически):
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
  m := TMemoryStream.Create;
  try
    try
      rs := TResourceStream.CreateFromID(HInstance, 1, RT_VERSION);
      try
        m.CopyFrom(rs, rs.Size);
      finally
        rs.Free;
      end;

      m.Position := 0;

      if VerQueryValue(m.Memory, '\', pointer(VerInfo), InfoSize) then
        begin
          Major1 := VerInfo.dwFileVersionMS shr 16;
          Major2 := VerInfo.dwFileVersionMS and $FFFF;
          Minor1 := VerInfo.dwFileVersionLS shr 16;
          Minor2 := VerInfo.dwFileVersionLS and $FFFF;
          Result := true;
        end;
    except
      Result := false;
      Major1 := 0;
      Major2 := 0;
      Minor1 := 0;
      Minor2 := 0;
    end;
  finally
    m.Free;
  end;





Ты завалил еще одним "схематическим советом". А если нет версии, что в твоем "схематическом" варианте вернется ?
...
Рейтинг: 0 / 0
15.06.2017, 14:02:11
    #39472276
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
показать номер сборки проекта (build) Delphi 2010
15.06.2017 13:56, schi пишет:
> А если нет версии, что в твоем "схематическом" варианте вернется ?

Идите, идите. Я подаю только по субботам, нечего тут заливать. (С)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / показать номер сборки проекта (build) Delphi 2010 / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]