Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Копирование групп ячеек столбца в буфер обмена [D7, MS Access 2003]


krobs ©   (2006-05-14 18:37:00) 

Скачал из Инета библиотеку EhLib и заменил DBGrid1 на DBGridEh1 - появилось больше возможностей - классно!
Выставил свойство: Options.dgMultiSelect
А вот как теперь сделать копирование групп ячеек столбца, в буфер обмена данными (как в Excel), что бы при этом я мог эти данные копировать обратно в Грид?
Товарищи, плиз, подскажите!!!!!!!!

Проще говоря мне нужно повторяемые в базе группы записей (в столбцах), дабы не переписывать их - копировать!

Заранее благодарю за ответ!


MsGuns   (2006-05-16 09:09:00) [1]

>Проще говоря мне нужно повторяемые в базе группы записей (в столбцах), дабы не переписывать их - копировать!

Проще говоря, для таких целей база не нужна - вполне сгодится Excel


alexeis   (2006-05-16 07:47:00) [2]

demos находится в каталоге {твой путь куда ты установил ehLib}\Demos


unknown   (2006-05-15 23:04:00) [3]

Все гораздо проще -
uses DBGridEhImpExp;
...
{ Второй параметр true - копировать всю таблицу, false - выделенное }
DBGridEh_DoCopyAction(DBGridEh1,True);
...


krobs   (2006-05-15 22:45:00) [4]


> тама есть demos. посмотри в нем.


Спасибо за ответ, но можно,пожалуйста уточнить что за demos. и где он находиться?


alexeis   (2006-05-15 08:48:00) [5]

Блин, выдрал со своей проги. Небольшое изменение:
тама есть demos. посмотри в нем.
вообще все работает через bookmarks.
Навскидку:
var     BStart,BEnd : TBookmarkStr;
....
    BStart := dbgDisProv.Selection.Rect.TopRow;
    BEnd := dbgDisProv.Selection.Rect.BottomRow;
    dm.TableSource.GotoBookmark(Tbookmark(BStart));
    while True do
    begin
      dm.TableDest.Edit;
      dm.TableDest.FieldByName('field1').AsFloat := dm.TableSource.FieldByName('field1').AsFloat
      end;
      dm.TableDest.Post;
      BStart:=PChar(dm.TableSource.GetBookmark);
      if TDataSet(dm.TableSource).CompareBookmarks(Pointer(BEnd),Pointer(BStart))  = 0 then
        break;
      dm.TableSource.Next;
    end;

Вобщем, разберешься :-)


alexeis   (2006-05-15 08:31:00) [6]

тама есть demos. посмотри в нем.
вообще все работает через bookmarks.
Навскидку:
var     BStart,BEnd : TBookmarkStr;
....
     BEnd := dbgDisProv.Selection.Rect.BottomRow;
     dm.TableSource.GotoBookmark(Tbookmark(BStart));
     while True do
     begin
       dm.TableDest.Edit;
       dm.TableDest.FieldByName('field1').AsFloat := dm.TableSource.FieldByName('field1').AsFloat
       end;
       dm.TableDest.Post;
       BStart:=PChar(dm.TableSource.GetBookmark);
       if TIBCustomDataSet(dm.TableSource).CompareBookmarks(Pointer(BEnd),Pointer(BStart))  = 0 then
         break;
       dm.dsDisProv.Next;
     end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо