Показать сообщение отдельно

  #10  
Старый 12.05.2010, 16:38
Jingo Bo
Познающий
Регистрация: 25.10.2009
Сообщений: 97
С нами: 8707843

Репутация: 15
По умолчанию

Цитата:
однако меня этот uses Forms; не улыбает вовсе
Раз не нравится сделай панель в памяти по данным dfm файла твоего диалога(всё ручками), потом с winapi создавай обычное окно без заголовка и через Windows.SetParent на то окно лепи панельку.

P.S. Если уж делаешь компонент, то делай универсальнее и более гибкий код. Кстати вышеуказаный код должен быть в таким
Код:
// ---- Вывод диалога ввода кода капчи ----
procedure TidVKClient.ShowCaptchaDialog(const captcha_sid: string; const notice : String = 'Enter Code');
var
  MS  : TMemoryStream;
  Jpg : TJpegImage;
begin
   Ms  := TMemoryStream.Create;
   Jpg := TJpegImage.Create;
   try
     Get('http://vkontakte.ru/captcha.php?s=1&sid=' + captcha_sid, Ms);
     Ms.Position := 0;
     Jpg.LoadFromStream(ms); {при не правльных данных здесь может вылезть эксцепшн}
     //DlgForm.imgKey.Picture.Graphic := Jpg; {не верно, нужно делать через Assign, ибо будет утечка памяти и при хз что будет когда Jpg сделают Free}
     DlgForm.imgKey.Picture.Assign(Jpg); {Делфи под боком нет, так что не помню, на Graphic или сразу на Picture Assign делать)}
   finally  
     Jpg.Free;
     Ms.Free;
   end;
   DlgForm.Caption := notice;
   DlgForm.ShowModal;
end;
 
Ответить с цитированием