void TABLE::tCut() { if(TABLE_ATTRIBUTES::AutoFill()) return; DestroyAllEditControls(); Copy(); RUNTIMEINFO* rtime = (RUNTIMEINFO*)AObjGetRuntimeInfo(theObject); ROW* row = rtime->GetRow(); row->DeleteSelectedRows(); PostObjectChanged(CHANGED_NUMROWS); }
void TABLE::tPaste() { if(TABLE_ATTRIBUTES::AutoFill()) return; BOOL available = IsClipboardFormatAvailable(CF_TEXT); if(!available) return; DestroyAllEditControls(); OpenClipboard(hParentWnd); HGLOBAL hClipboard = GetClipboardData(CF_TEXT); if(!hClipboard) { CloseClipboard(); return; } HGLOBAL hCopy = GlobalAlloc(GHND, GlobalSize(hClipboard)); if(!hCopy) { CloseClipboard(); return; } char* copy = (char*)GlobalLock(hCopy); char* clip = (char*)GlobalLock(hClipboard); hmemcpy(copy, clip, GlobalSize(hClipboard)); GlobalUnlock(hClipboard); CloseClipboard(); RUNTIMEINFO* rtime = (RUNTIMEINFO*)AObjGetRuntimeInfo(theObject); ROW* row = rtime->GetRow(); long first = row->FirstSelection(); char* token = (char*)myStrtok((char huge*)copy); while(token) { row->AddRow(first, token, TABLE_ATTRIBUTES::NumColumns(), FALSE); token = (char*)myStrtok(NULL); first++; } GlobalUnlock(hCopy); GlobalFree(hCopy); row->DeleteSelectedRows(); PostObjectChanged(CHANGED_NUMROWS); }