• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Помощь в коде Помощь по генераций GUID

  • Автор темы Автор темы 7.UP
  • Дата начала Дата начала

7.UP

Проверянный
Принятый Кодер
Регистрация
23 Ноя 2015
Сообщения
22
Баллы
30
всем приветик, может кто сталкивался или делал
вообщем-то хочу сделать генератор GUID, через поток, делаю так
Код:
procedure FThread.SetGUID;
begin
  CriticalSection.Enter;
  try
  if CoCreateGuid(MyGUID) = s_OK then
  begin
    S := GUIDToString(MyGUID);
    S := Copy(s, 2, length(s) -2); // это удаление {}
  end;
  finally
    CriticalSection.Leave;
  end;
end;
потом всё это вызываю из пока
Код:
Synchronize(SetGUID);
записываю в memo
Код:
Form1.sMemo1.Lines.Add(S); // из Synchronize
ну когда кол-во, наделает, выдает кучу ошибок, помогите пожалуйста, кто прошаренный) давно в delphi не кодел
 
Последнее редактирование:
Попробуй поставить проверку на ошибку
if CreateGUID(MyGuid1) <> 0 then
Memo1.Lines.Add('Creating GUID failed!')
else
Memo1.Lines.Add('The generated guid is: ' + GUIDToString(MyGuid1));
 
Попробуй поставить проверку на ошибку
if CreateGUID(MyGuid1) <> 0 then
Memo1.Lines.Add('Creating GUID failed!')
else
Memo1.Lines.Add('The generated guid is: ' + GUIDToString(MyGuid1));
CoCreateGuid и CreateGUID, это две разные штуки
я же через procedure делаю вызываю через Synchronize(SetGUID); то есть через поток делаю, мне как бы сказать нужно на подобии как через TStringList, сделать и проходить, пока какое-то количество не закончится. на подобие брута короче)
 
Код:
uses
 System.Threading,ActiveX, ComObj
....
procedure TForm1.Button1Click(Sender: TObject);
begin
TtASK.Run(
 PROCEDURE
 BEGIN
 TThread.Synchronize(TThread.CurrentThread,
 PROCEDURE
   VAR
 ID: TGUID;
  begin
   if CoCreateGuid(ID) = S_OK then
   Form1.Memo1.Lines.Add( AnsiLowerCase(Copy((GUIDToString(ID)), 2, Length(GUIDToString(ID)) - 2))); // вывод С  удалением {}
 end);
 end);
END;
end.
 
Вверх Снизу