powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как в Delphi генерировать GUID
10 сообщений из 10, страница 1 из 1
Как в Delphi генерировать GUID
    #32520286
Gasanov2003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто-нибудь знает какой функцией (программно) сгенерировать GUID?
Подскажите пожалуйста!
...
Рейтинг: 0 / 0
Как в Delphi генерировать GUID
    #32520288
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
/topic/61224&hl=guid
...
Рейтинг: 0 / 0
Как в Delphi генерировать GUID
    #32520291
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ оборзел, поиском пользоваться не хотят
...
Рейтинг: 0 / 0
Как в Delphi генерировать GUID
    #32520361
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
...
var MyGUID : TGUID;
begin
...
 CreateGUID(MyGUID);
 ShowMessage(GUIDToString(MyGUID));
...
...
Рейтинг: 0 / 0
Как в Delphi генерировать GUID
    #32520388
Gasanov2003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как в Delphi генерировать GUID
    #39504003
Nashev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сегодня пришлось искать, заходил сюда - и пришлось искать дальше. Пусть другим не придётся, если что.

В старых дельфи, например в Delphi 5, CreateGUID в SysUtils ещё не было, а вот было такое:

Код: pascal
1.
2.
3.
unit ComObj;
...
function CreateClassID: string;
...
Рейтинг: 0 / 0
Как в Delphi генерировать GUID
    #39504010
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nashev,

всегда было в винде CoCreateGuid (в модулях ActiveX или Ole2), которую вызывают обертки типа CreateGUID
...
Рейтинг: 0 / 0
Как в Delphi генерировать GUID
    #39504810
SimplTsar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код из проекта на Delphi 5
Код: 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.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
unit U_GUID;

interface
uses SysUtils;

type
  EGUIDerror = class(Exception)
  private
    FErrorCode: HRESULT;
  public
    constructor Create(const AErrorCode: HRESULT);
    property ErrorCode: HRESULT read FErrorCode write FErrorCode;
  end;

function Get_GUID: string;

implementation
uses
  Windows;

type
  TCLSID = TGUID;

{$EXTERNALSYM CoCreateGuid}
function CoCreateGuid(var guid: TGUID): HResult; stdcall; forward;
{$EXTERNALSYM CoTaskMemFree}
procedure CoTaskMemFree(pv: Pointer); stdcall; forward;
{$EXTERNALSYM StringFromCLSID}
function StringFromCLSID(const clsid: TCLSID; var psz: PWideChar): HResult; stdcall; forward;

function CoCreateGuid;    external 'ole32.dll' name 'CoCreateGuid';
procedure CoTaskMemFree;  external 'ole32.dll' name 'CoTaskMemFree';
function StringFromCLSID; external 'ole32.dll' name 'StringFromCLSID';

ResourceString
  SError = 'GUID error %.8x';
  
constructor EGUIDError.Create(const AErrorCode: HRESULT);
var
  S: string;
begin
  S := SysErrorMessage(AErrorCode);
  if S = '' then FmtStr(S, SError, [AErrorCode]);
  inherited Create(S);
  FErrorCode := AErrorCode;
end;

function GUIDToString(const ClassID: TGUID): string;
var
  P: PWideChar;
  Res: HResult
begin
  Res := StringFromCLSID(ClassID, P);
  if not Succeeded(Res) then begin
    raise EGUIDError.Create(Res);
  end;
  Result := P;
  CoTaskMemFree(P);
end;


function Get_GUID: string;
var
  MyGUID: TGUID;
begin
  if CoCreateGUID(MyGUID) = s_Ok then begin
    Result := GUIDToString(MyGUID);
    if copy(Result, 1, 1) = '{' then begin
      Delete(Result, Length(Result), 1);
      Delete(Result, 1, 1);
    end;
  end
  else Result := 'Error';
end;

end.

...
Рейтинг: 0 / 0
Как в Delphi генерировать GUID
    #39504888
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NashevВ старых дельфи, например в Delphi 5, CreateGUID в SysUtils ещё не было

Взять функию Win32 API и написать ей заголовок на Delphi не хочется?
Тогда J.E.D.I. Windows API and Security Library, только придется поисктаь последнюю версию, учитывавшую D5
...
Рейтинг: 0 / 0
Как в Delphi генерировать GUID
    #39553178
Nashev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я ж говорю, готовое в пятой Delphi всё равно уже было!
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как в Delphi генерировать GUID
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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