//--------------------------------------------------------------------------- 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); }
void AbstractTarget::Build(void) { Sizer(); Descriptor(); Allocator(); Vector(); VectorX(); Printer(); ShiftDipolesAndX(); PrepareIaniso(); PreparePyzd(); }
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(); }
// 压入待解析数据 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; } } } }
void MainWnd::WMSize() { Sizer(); }