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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2010, 19:17   #1
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию Трабл с jpeg капчей

Бьюсь уже второй день, хотел капчу jpeg получить по аналогии как png капчу получаю, но пастоянно ссылается на одну и туже строку
Код:
  

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

implementation

{$R *.dfm}

{ TForm2 }

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

class function TForm2.GetCapcha(jpg: TJpegImage): 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;

uses
jpeg;

type
  BOT = class(TThread)
    Url_Pay: String;
    private
    HTTP_BOT: TIdHTTP;
   jpg: TJPEGImage;
    code1: string;
    { Private declarations }
  protected
    procedure Execute; override;
    procedure capa;
  public
  end;

procedure BUX.Execute;
var
  img1: TMemoryStream;
  jpg: TJPEGImage;
cis: TStringList;
    begin
      cis := TStringList.Create;
      img1 := TMemoryStream.Create;
      jpg := TJPEGImage.Create;
      HTTP_BUX.get('http://' + FUrl + 'captch.php', img1);
      img1.Position := 0;
      jpg.LoadFromStream(img1);
      Form2.Image2.Picture.Assign(jpg);//ошибку кидает сюда
      code := '';
      Synchronize(go);
      cis.Add('code=' + code);
      HTTP_BUX.Post('http://' + FUrl + 'ptcp.php?viewp=sdafse&ds=oiifjvfnld', cis);
      jpg.Free;
      img1.Free;
      end;
end;

procedure BOT.go;
begin
  code := TForm2.GetCapa(jpg);;
end;

Последний раз редактировалось mihali4; 29.11.2010 в 01:35.
bulldog5293 вне форума Ответить с цитированием
Старый 28.11.2010, 19:38   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А вы трассировать пробовали ?
У меня подозрение, что ошибка возникает строкой раньше...
mihali4 вне форума Ответить с цитированием
Старый 28.11.2010, 20:12   #3
Bad-XxX
Пользователь
 
Регистрация: 27.09.2010
Сообщений: 18
По умолчанию

Бмпшку от одного к другому присваивайте и будет вам счастье. (или picture к jpg)

Последний раз редактировалось Bad-XxX; 28.11.2010 в 20:17.
Bad-XxX вне форума Ответить с цитированием
Старый 28.11.2010, 20:27   #4
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Цитата:
А вы трассировать пробовали ?
У меня подозрение, что ошибка возникает строкой раньше...
Трассировал, без трасировки вобще не показывает где.
Цитата:
Бмпшку от одного к другому присваивайте и будет вам счастье. (или picture к jpg)
А это как?
bulldog5293 вне форума Ответить с цитированием
Старый 28.11.2010, 20:32   #5
Bad-XxX
Пользователь
 
Регистрация: 27.09.2010
Сообщений: 18
По умолчанию

Form2.Image2.Picture:=jpg; //по-моему так
ещё у каждого из них есть свой TBitMap, можно через него. Ошибка в том, что ты пытаешься связать 2 совершенно разных объекта методом Assign.
И да, на всякий, проверь jpg через SaveToFile, может ошибка где-то до этого.

Последний раз редактировалось Bad-XxX; 28.11.2010 в 20:36.
Bad-XxX вне форума Ответить с цитированием
Старый 28.11.2010, 20:59   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Bad-XxX Посмотреть сообщение
Form2.Image2.Picture:=jpg; //по-моему так
ещё у каждого из них есть свой TBitMap, можно через него. Ошибка в том, что ты пытаешься связать 2 совершенно разных объекта методом Assign.
И да, на всякий, проверь jpg через SaveToFile, может ошибка где-то до этого.
Ахинею постыдились бы писать...
Что ни фраза, то "перл".

То bulldog5293
Цитата:
Трассировал, без трасировки вобще не показывает где
То есть при пошаговом выполнении сбой происходит именно при выполнении строки
Form2.Image2.Picture.Assign(jpg) ???
А наведите мышку на переменную JPG перед выполнением этой строки - не равно ли ее значение NIL ?
mihali4 вне форума Ответить с цитированием
Старый 28.11.2010, 21:05   #7
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Цитата:
И да, на всякий, проверь jpg через SaveToFile, может ошибка где-то до этого.
тоже самое
Цитата:
А наведите мышку на переменную JPG перед выполнением этой строки - не равно ли ее значение NIL ?
Да равно NIL
bulldog5293 вне форума Ответить с цитированием
Старый 28.11.2010, 21:15   #8
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от bulldog5293 Посмотреть сообщение
Да равно NIL
Ну вот видите...
Что сие означает ?
На мой взляд - что у вас не срабатывает строка
Код:
HTTP_BUX.get('http://' + FUrl + 'captch.php', img1);
Кстати, может быть, все-таки 'captchа.php' ?
А какое значение у FUrl ? Может, там просто слэша не хватает ?
Пройдитесь еще раз по шагам и просмотрите значения всех переменных...

Последний раз редактировалось mihali4; 28.11.2010 в 21:20.
mihali4 вне форума Ответить с цитированием
Старый 28.11.2010, 21:39   #9
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Цитата:
На мой взляд - что у вас не срабатывает строка
Код:
HTTP_BUX.get('http://' + FUrl + 'captch.php', img1);
Я сниферам смотрел, работает
Цитата:
Кстати, может быть, все-таки 'captchа.php' ?
Нет именно captch.php
Цитата:
А какое значение у FUrl ? Может, там просто слэша не хватает ?
Хватает всё
Цитата:
Пройдитесь еще раз по шагам и просмотрите значения всех переменных...
Но всё равно сомненя на
Код:
 Form2.Image2.Picture.Assign(jpg);
т.к. в самом начале jpg:=nil
Создал новый проект и вывод на форму работает, может ли это быть связанно с тем что в моём проекте на одну и туже модальную форму, но в разный image картинка выводится?

Последний раз редактировалось bulldog5293; 28.11.2010 в 21:58.
bulldog5293 вне форума Ответить с цитированием
Старый 29.11.2010, 00:17   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

у вас две переменные с именем jpg в одной области видимости(одна как поле класса, другая как локальная переменная).
попробуйте поставить Image1.PICTURE.bitmap.assign(jpg)
и вообще, где текст ошибки?
у вас поток всего один или много?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Авторизация с капчей и без bulldog5293 Работа с сетью в Delphi 11 25.08.2010 01:17
трабл БД cyber_NINJA Помощь студентам 0 20.05.2010 17:42
трабл Informer Общие вопросы C/C++ 0 02.06.2009 15:21
НУЖЕН ПРОГРАММИСТ для написания ПО по распознованию капчей pro_ccx Фриланс 1 31.05.2008 11:37