Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > сформировать картинку динамически


Автор: zone51 11.5.2008, 23:22
Товарищи помогите решить проблему есть хмл файл к примеру

<confir>
<str>string</str>
<font>font</font>
</config>

как мне динамически сформировать картинку на которой будет отображена строка с текстом string и цветом font
Спасибо большое. Юзаю BCB 6

Автор: Rrader 12.5.2008, 04:46
Можно распарсить через TXMLDocument. Вот, например, я сделал такой файл:
Код

<?xml version="1.0"?>
<config>
<str>MyText</str>
<!--Red Color-->
<font>255</font>
</config>


Тогда код вывода строки на Image:
Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  AnsiString Txt = "Default";
  TColor FontColor = clBlack;
  // Cretae XML Document
  if (OpenDialog1->Execute()) {
    TXMLDocument *XMLDocument = new TXMLDocument(Application);
    __try
       {
          XMLDocument->LoadFromFile(OpenDialog1->FileName);
          // Get Child Nodes
          _di_IXMLNodeList NodeList = XMLDocument->DocumentElement->GetChildNodes();
          // Find Node With String
          _di_IXMLNode Node = NodeList->FindNode(WideString("str"));
          if (Node->IsTextElement) Txt = Node->GetText();
          // Find Node With Font Color
          Node = NodeList->FindNode(WideString("font"));
          if (Node->IsTextElement) FontColor =
            TColor(StrToInt(Node->GetText()));
       }
    __finally
       {
          delete XMLDocument;
       }
    Image1->Canvas->Font->Color = FontColor;
    Image1->Canvas->TextOutA((Image1->Width  - Image1->Canvas->TextWidth(Txt)) / 2,
    Image1->Height / 2, Txt);
  }
}

В хедере:
Код

...
#include <msxmldom.hpp>
#include <XMLDoc.hpp>
#include <xmldom.hpp>
#include <XMLIntf.hpp>
...
 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)