Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2010, 14:42   #1
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию При второй синхронизации программа зависает

Делается первая синхронизация, поток останавливается и при команде продолжается, но когда доходит синхронизация второго потока программа полностью зависает
Код:

type
  TForm2 = class(TForm)
    Image1: TImage;
    Image2: TImage;
    Edit1: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    class function GetCapcha(png: TPNGObject): string;
class function TForm9.GetCapa(jpg: TJpegImage): string;
  end;

implementation

{$R *.dfm}

{ TForm2 }

procedure TForm2.Button1Click(Sender: TObject);
begin
  ModalResult := mrOk;
end;

class function TForm2.GetCapcha(png: TPNGObject): string;
var
  form: TForm2;
begin
  form := TForm2.Create(nil);
  try
    form.Image1.Picture.Assign(png);
    form.ShowModal; // когда закроется будет продолжено
    Result := form.Edit1.Text;
  finally
    form.Free;
  end;
end;

class function TForm2.GetCapa(jpg: TJpegImage): string;
var
  form: TForm2;
begin
  form := TForm2.Create(nil);
  try
    form.Image2.Picture.Assign(png);
    form.ShowModal; // когда закроется будет продолжено
    Result := form.Edit1.Text;
  finally
    form.Free;
  end;
end;
код потока

Код:
        
uses
pngimage, jpeg;

procedure BOT.Execute;
var
  img: TMemoryStream;
  png: TPNGObject;
  img1: TMemoryStream;
  jpg: TJPEGImage;
  code: string;
    code1: string;
cis: TStringList;
  inf: TStringList;
begin
inf := TStringList.Create;
cis   := TStringList.Create;
begin
          img := TMemoryStream.Create;
          png := TPNGObject.Create;
          try
            HTTP_BOT.get(сайт + 'image.php?', img);
            img.Position := 0;
            png.LoadFromStream(img);
            code := '';
            Synchronize(capcha);
            if code <> '' then
              inf.Add('code=' + code);
          finally
            png.Free;
            png := nil;
            img.Free;
          end;
    begin
      cis := TStringList.Create;
      img1 := TMemoryStream.Create;
      jpg := TJPEGImage.Create;
      HTTP_BOT.get('http://' + Сайт + g2, img1);
      img1.Position := 0;
      jpg.LoadFromStream(img1);
      Form2.Image1.Picture.Assign(jpg);
      code := '';
      Synchronize(go);
      cis.Add('code=' + code);
      HTTP_BOT.Post('http://' + Сайт + g1, cis);
      jpg.Free;
      img1.Free;
      end;
end;
  
procedure BUX.go;
begin
code := TForm2.GetCapa(jpg);
end;

procedure BUX.capcha;
begin
  code := TForm2.GetCapcha(png);
end;

end.
От чего такое может быть?

Последний раз редактировалось bulldog5293; 27.11.2010 в 14:44.
bulldog5293 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зависает программа DimOn4Ik Общие вопросы Delphi 4 29.05.2010 21:05
Изза потока зависает программа RNT Общие вопросы Delphi 9 10.07.2009 19:15
Теряются данные при синхронизации реплик - чего делать? batasha Microsoft Office Access 0 14.05.2009 14:34
VB6. Программа зависает при выполнении. Artinka Помощь студентам 2 03.04.2008 00:06