C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: no parent window  (Прочитано 1400 раз)
SilverFish
Участник


Сказали спасибо: +14/-6
Offline

Сообщений: 786


no parent window
« : 04 Февраль 2014, 16:21:41 »

В IntraWEB приложении, пытаюсь выравнивать метку в окне браузера. Получаю ошибку: Control IWForm has no parent window
Код
//TStringList * MyListTV; инициировано в другом месте
 
void __fastcall TIWFormTV1::IWTimerTVAsyncTimer(TObject *Sender, TStringList *EventParams)
{
if(MyListTV)
{
  if(MyListTV->Count > index)
  {
IWLabelTV->Caption = ""; //метка
IWLabelTV->Left = (IWRegion2->Width - IWButtonReturn->Width)/2 -
Canvas->TextWidth(MyListTV->Strings[index])/2; //проблема
IWLabelTV->Caption = MyListTV->Strings[index];
index++;
  }
  if(MyListTV->Count == index)
index = 0;
}
}
 
Как это исправить? Спасибо.
Записан
SilverFish
Участник


Сказали спасибо: +14/-6
Offline

Сообщений: 786


Re: no parent window
« Ответ #1 : 04 Февраль 2014, 18:24:43 »

Нашла простое решение, для моего случая.
Код
void __fastcall TIWFormTV1::IWTimerTVAsyncTimer(TObject *Sender, TStringList *EventParams)
 
{
if(MyListTV)
{
  if(MyListTV->Count > index)
  {
IWLabelTV->Caption = "";
IWLabelTV->Visible = false;
IWLabelTV->Caption = MyListTV->Strings[index];
IWLabelTV->Left = (IWRegion2->Width - IWButtonReturn->Width)/2 - IWLabelTV->Width/2;
IWLabelTV->Caption = MyListTV->Strings[index];
IWLabelTV->Visible = true;
index++;
  }
  if(MyListTV->Count == index)
index = 0;
}
}
 
Записан
SilverFish
Участник


Сказали спасибо: +14/-6
Offline

Сообщений: 786


Re: no parent window
« Ответ #2 : 04 Февраль 2014, 18:40:39 »

А как это будет на С++?
Код
function CalcTextWidth(const AText: string; AFont: TFont): Integer;
var
 bmp: TBitmap;
begin
 bmp := TBitmap.Create;
 try
   bmp.Canvas.Font.Assign(AFont);
   Result := bmp.Canvas.TextWidth(AText);
 finally
   bmp.Free;
 end;
end;
 
Записан
volvo877
Глобальный модератор


Сказали спасибо: +736/-1
Offline

Сообщений: 891


Re: no parent window
« Ответ #3 : 04 Февраль 2014, 22:07:48 »

Например, так:
Код
int CalcTextWidth(String s, TFont *f)
{
   std::auto_ptrGraphics::TBitmap> bmp(new Graphics::TBitmap);
   bmp->Canvas->Font->Assign(f);
   return bmp->Canvas->TextWidth(s);
}
Записан
SilverFish
Участник


Сказали спасибо: +14/-6
Offline

Сообщений: 786


Re: no parent window
« Ответ #4 : 05 Февраль 2014, 00:37:02 »

Большое спасибо!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.122 секунд. Запросов: 21.