コード例 #1
0
//---------------------------------------------------------------------------
void __fastcall TPrintList::UpdateMemo()
{
//  ShowCursor(false);
  Memo1->Clear();
  Main->ZTable->First();
  AnsiString mess="";
  int chrsize=-DBGrid1->Font->Height * 72 / DBGrid1->Font->PixelsPerInch;
  int line=0;
  int len;
  for(int c=0;c<DBGrid1->Columns->Count-1;c++)
  { // put everything in a big long string
    AnsiString temp=DBGrid1->Columns->Items[c]->FieldName;
    int chr=DBGrid1->Columns->Items[c]->Width/chrsize;
    mess=mess+Sizer(temp,chr);
  }
  Memo1->Lines->Add(mess);

  while (!Main->ZTable->Eof)
  {
    mess="";
    for(int c=0;c<DBGrid1->Columns->Count-1;c++)
    { // put everything in a big long string
      AnsiString temp=Main->ZTable->FieldByName(DBGrid1->Columns->Items[c]->FieldName)->AsString;
      int chr=DBGrid1->Columns->Items[c]->Width/chrsize;
      mess=mess+Sizer(temp,chr);
    }
    if(filter)
    {
       mess=FilterMess(mess);
    }
    Main->ZTable->Next();
    if(mess.Length()>1)
    {
      Memo1->Lines->Add(mess);
      if(Lined1->Checked)
      {
        line++;
        if(line==3)
        {
          line=0;
          mess="";
          for(int t=0;t<10;t++)
          {
            mess=mess+"--------------------";
          }
          Memo1->Lines->Add(mess);
        }
      }
    }
  }
  Main->ZTable->First();
//  ShowCursor(true);
}
コード例 #2
0
ファイル: AbstractTarget.cpp プロジェクト: jstotero/ddscatcpp
void AbstractTarget::Build(void)
{
	Sizer();
	Descriptor();
	Allocator();
	Vector();
	VectorX();
	Printer();
	ShiftDipolesAndX();
	PrepareIaniso();
	PreparePyzd();
}
コード例 #3
0
ファイル: labeltest.cpp プロジェクト: morpheby/wincpp
MainWnd::MainWnd(void) :
		Window(L"Test", WS_OVERLAPPEDWINDOW, 50_scaled, 50_scaled,
				700_scaled, 500_scaled, 0, 0, 0),
		label(L"", 0, 0, *this) {

	label.setForcedWidth(true);

	label.setText(L"1. This line shall be automatically word-wrapped to the next "
			"line in case it doesn't fill the size of the window.\n"
			"2. Try resizing window -- word-wrapping shall occur right while you "
			"are changing size\n"
			"3. If everything happens right as described -- close the window and confirm test");

	Sizer();
}
コード例 #4
0
ファイル: packet_parser.hpp プロジェクト: coldzhang/Bex
        // 压入待解析数据
        void parse(char const* data, std::size_t size)
        {
            char const* buf = data;
            std::size_t len = size;

            while (len)
            {
                if (0 == pos_)
                {
                    // 缓冲区中无数据, 直接在上层缓冲区中尝试组包.
                    if (len < head_size)
                    {
                        // 不足一个封包头, 写入缓冲区即可
                        write_buffer(buf, len);
                        return ;
                    }
                    else
                    {
                        // 有完整的封包头, 进一步检测是否有完整的封包.
                        std::size_t packet_len = Sizer()(packethead(buf)) + head_size;
                        if (packet_len > size_)
                        {
                            // 封包长错误
                            invoke_callback(generate_error(bee::parse_error), 0, 0, 0);
                            return ;
                        }

                        if (len < packet_len)
                        {
                            // 不足一个封包, 放入缓冲区中, 等待后续数据.
                            write_buffer(buf, len);
                            return ;
                        }
                        else
                        {
                            // 有完整的封包, 直接处理.
                            invoke_callback(error_code(), &packethead(buf), buf + head_size, packet_len - head_size);
                            buf += packet_len;
                            len -= packet_len;
                            continue;
                        }
                    }
                }
                else if (pos_ < head_size)
                {
                    // 缓冲区中有数据, 但不足一个封包头, 尝试拼足一个封包头
                    std::size_t delta = head_size - pos_;
                    std::size_t cpy_size = (std::min)(delta, len);
                    write_buffer(buf, cpy_size);
                    buf += cpy_size;
                    len -= cpy_size;
                    continue;
                }
                else
                {
                    // 缓冲区中有完整的封包头
                    std::size_t packet_len = Sizer()(packethead(buf_)) + head_size;
                    if (packet_len > size_)
                    {
                        // 封包长错误
                        invoke_callback(generate_error(bee::parse_error), 0, 0, 0);
                        return ;
                    }

                    std::size_t delta = packet_len - pos_;
                    if (delta > len)
                    {
                        // 无法拼出一个完整的封包
                        write_buffer(buf, len);
                        return ;
                    }
                    else
                    {
                        // 可以拼出一个完整的封包
                        write_buffer(buf, delta);
                        invoke_callback(error_code(), &packethead(buf_), buf_ + head_size, pos_ - head_size);
                        pos_ = 0;
                        buf += delta;
                        len -= delta;
                        continue;
                    }
                }
            }
        }
コード例 #5
0
ファイル: labeltest.cpp プロジェクト: morpheby/wincpp
void MainWnd::WMSize() {
	Sizer();
}