Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как в Delphi генерировать GUID / 10 сообщений из 10, страница 1 из 1
17.05.2004, 13:44:01
    #32520286
Gasanov2003
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Delphi генерировать GUID
Кто-нибудь знает какой функцией (программно) сгенерировать GUID?
Подскажите пожалуйста!
...
Рейтинг: 0 / 0
17.05.2004, 13:44:47
    #32520288
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Delphi генерировать GUID
/topic/61224&hl=guid
...
Рейтинг: 0 / 0
17.05.2004, 13:45:25
    #32520291
mir
mir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Delphi генерировать GUID
Народ оборзел, поиском пользоваться не хотят
...
Рейтинг: 0 / 0
17.05.2004, 14:06:11
    #32520361
mv
mv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Delphi генерировать GUID
Код: plaintext
1.
2.
3.
4.
5.
6.
...
var MyGUID : TGUID;
begin
...
 CreateGUID(MyGUID);
 ShowMessage(GUIDToString(MyGUID));
...
...
Рейтинг: 0 / 0
17.05.2004, 14:13:26
    #32520388
Gasanov2003
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Delphi генерировать GUID
Большое спасибо!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
11.08.2017, 13:09:00
    #39504003
Nashev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Delphi генерировать GUID
Сегодня пришлось искать, заходил сюда - и пришлось искать дальше. Пусть другим не придётся, если что.

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

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

всегда было в винде CoCreateGuid (в модулях ActiveX или Ole2), которую вызывают обертки типа CreateGUID
...
Рейтинг: 0 / 0
14.08.2017, 10:29:42
    #39504810
SimplTsar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Delphi генерировать GUID
Код из проекта на 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
14.08.2017, 12:13:49
    #39504888
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в Delphi генерировать GUID
NashevВ старых дельфи, например в Delphi 5, CreateGUID в SysUtils ещё не было

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


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