Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пара вопросов по DBGrid, получение данных СТОЛБЦА и скроллинг 
V
    Опции темы
Mpak
Дата 23.4.2007, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 12.11.2006

Репутация: 4
Всего: 7



Как получить данные из определенного столбца. Могу получить только значение из полю в фокусе. Но не знаю как перерать.
Например:

У меня есть такие столбцы:
Код

+----------+-----+--------+
| Название | Тип | Размер |
+----------+-----+--------+
|          |     |        |
|          |     |        |
|          |     |        |


И мне надо вывести в файл (f.e. *.txt) список названий. И взять их из DBGrid, а не из самой БД smile

Второй вопрос скроллинг.
Как сделать так, чтобы фокус не бегал от колесика мыши, а прокручивался весь список? smile


--------------------
В любой откомпилированной программе есть, по крайней мере, одна ошибка...
P.S. А у меня их минимум две...
PM MAIL ICQ   Вверх
Grom
Дата 24.4.2007, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 17.8.2006
Где: Москва

Репутация: 1
Всего: 1



Цитата

И мне надо вывести в файл (f.e. *.txt) список названий. И взять их из DBGrid, а не из самой БД 


ну если коротко

Код

DBGrid1->DataSource->DataSet->Next(); //делаем следующюю запись активной (в фокусе) так же есть функции Last,Prev
Form_Main->DBGrid2->Fields[0]->AsString //читаем тест в первой калонке текущей записи


ну вот. ставишь это байду в цикл и прогоняешь по всем строкам и записываешь в массив и в файл. короче смысл понял ;)

PS не понял что значит из самого дбгрид а не из бд. ну помоему мой вариант тебе подойдет.
--------------------
Хостинг, Vds, Dedicated serve, регистрация доменов (RU,com,net,org) - обращаться в icq.
PM MAIL   Вверх
Rodman
Дата 24.4.2007, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 7
Всего: 122



Цитата(Mpak @  23.4.2007,  19:14 Найти цитируемый пост)
Как сделать так, чтобы фокус не бегал от колесика мыши, а прокручивался весь список? 

Код

Form_Main->DBGrid2->DataSet->First;
while (!Form_Main->DBGrid2->DataSet->EOF)
{
   st->Add(Form_Main->DBGrid2->Fields[0]->AsString);  //st - типа TStringList
   DBGrid1->DataSource->DataSet->Next(); 
}
 st->SaveToFile('1.txt');


кажется так...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Mpak
Дата 25.4.2007, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 12.11.2006

Репутация: 4
Всего: 7



Grom, Спасибо smile Все понял
Rodman, А вот с вопросом про прокрутку не совсем разобрался... По-моему, Вы на первый же вопрос и ответили ))
А не по прокрутке smile
Или я вопрос не правильно поставил...


--------------------
В любой откомпилированной программе есть, по крайней мере, одна ошибка...
P.S. А у меня их минимум две...
PM MAIL ICQ   Вверх
Rodman
Дата 26.4.2007, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 7
Всего: 122



Mpak, как я это понял, тебе нужно видеть что записи по порядку обрабатываются!!!
Вот как я написал:
- первую запись делаем текущей;
- и перебираем все поочереди пока не закончатся, курсор в это всемя будет перемещаться на текущую запись...

Вот так я поня...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
SkyHawk
Дата 26.4.2007, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 17.8.2006
Где: г. Новосибирск

Репутация: 1
Всего: 2



Не понятен вопрос про скроллинг.
--------------------
Быть может все, что может быть, И даже то, что быть не может.
PM MAIL WWW   Вверх
IgorDV
Дата 26.4.2007, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 14.4.2007

Репутация: нет
Всего: нет



Есть еще такая проблемма с DBGrid-ом, когда колесиком мышки прокручиваю, выделение гуляет по гриду, а запись текущей не становиться! Какие есть предложенияя по решению данной проблеммы!?
PM MAIL ICQ   Вверх
fish9370
Дата 27.4.2007, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 1
Всего: 1



Цитата(Mpak @ 23.4.2007,  20:14)
Второй вопрос скроллинг.
Как сделать так, чтобы фокус не бегал от колесика мыши, а прокручивался весь список? smile

для решения данной проблемы проще всего перейти на BDS 2006, там скроллинг в DBGrid уже реализован.. если ты пишешь в более ранних версиях, например Borland C++ Builder 6, то решить проблему можно следующим образом:

на форму кидается компонент нечто вроде TScrollbar (только он должен поддерживать событие OnMouseWheel).. дальше создается обработчик того самого OnMouseWheel, например:

Код

void __fastcall TForm1::LMDScrollBar1MouseWheel(TObject *Sender,
      TShiftState Shift, int WheelDelta, TPoint &MousePos, bool &Handled)
{
  if(WheelDelta<0) DataSource1->DataSet->Next();
  else DataSource1->DataSet->Prior();
  LMDScrollBar1->Position=DataSource1->DataSet->RecNo;
}


и взаключении, любой щелчек по DBGrid должен передавать фокус твоему скроллбару..

Код

void __fastcall TForm1::DBGrid1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
  if(LMDScrollBar1->Visible)
    Form1->FocusControl(LMDScrollBar1);
}


в примере был использован компонент LMDScrollbar
http://www.lmdtools.com/


--------------------
undefined
PM MAIL WWW ICQ   Вверх
Mpak
Дата 30.4.2007, 01:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 12.11.2006

Репутация: 4
Всего: 7



fish9370, Вы меня правильно поняли. Вот только без компонента LMDScrollBar никак нельзя?


--------------------
В любой откомпилированной программе есть, по крайней мере, одна ошибка...
P.S. А у меня их минимум две...
PM MAIL ICQ   Вверх
fish9370
Дата 30.4.2007, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 1
Всего: 1



Цитата(Mpak @ 30.4.2007,  01:23)
Вот только без компонента LMDScrollBar никак нельзя?

думаю это возможно, но тогда придется создать наследника TScrollbar, в котором нужно реализовать обработку события OnMouseWheel.. без обработки этого события уж точно никак нельзя.. я подсказал легкий способ..


--------------------
undefined
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.1343 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.