Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++ Builder

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.68
NIKO666
11 / 11 / 0
Регистрация: 22.10.2010
Сообщений: 134
#1

ListView. Вопрос по фокусу - C++ Builder

02.06.2011, 00:18. Просмотров 3310. Ответов 27
Метки нет (Все метки)

Народ. У меня на форме есть компонент ListView. В нем, естественно, есть какие-то строки. Так вот, как узнать, выбрано ли что-то в ListView или фокус стоит на каком-то другом объекте? Может есть событие какое? Или только через таймер можно определить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2011, 00:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ListView. Вопрос по фокусу (C++ Builder):

Вопрос по компоненту ListView - C++ Builder
При нажатии кнопки, открывается диалог, где пользователь выбирает папку и в ListView заносятс все файлы, находящиеся в той папке. Как...

Выполнить запрос к БД при нажатии на элемент в ListView и заполнить данными другой ListView - C++ Builder БД
Подскажите пожалуйста как сделать в RadStudio, что бы при нажатии на одну строку выполнялся запрос в БД, и результат записывался в чистый...

ListView вопрос - C#
Здрасьте еще раз) Вот делаю пошаговое представление сортировки, решил цифры выводить в ListView, вот хочу спросить нормально там это...

Вопрос по listview - C#
Всем привет. Извините за схожесть существующих тем, но возник такой вопрос. Если у меня на форме есть кнопка С к примеру. При нажимании...

Вопрос по ToolTipText в ListView - Visual Basic
Привет всем. В ListView имеется 4 столбца. Данные в ListView вношу следующим образом Set itm = .lvw_1.ListItems.Add(...) ...

Вопрос про ListView and Checkbox - Delphi
у мя есть база, которая отображаеться через Листвью, как мне зделать что бы если чекбокс чекнут то например в столбец 3 LIstView,...

27
gorin
207 / 14 / 2
Регистрация: 18.08.2009
Сообщений: 571
15.10.2011, 22:15 #16
Мне нужно считать с файла в какой я сохранил!

Добавлено через 2 минуты
Этот код для сохранения
C++
1
2
3
4
5
6
7
8
9
10
11
12
        TxBuf->Clear();
        TxBuf->Add("№ Назва Шифр");
        AnsiString s=" ", s1;
        int col = ListView2->Items->Count;
        for(int i = 0; i<col; i++)
        {
                s1 = ListView2 -> Items -> Item[i] -> Caption + " ";
                for(int j = 0; j < 2; j++)
                        s = s + ListView2 -> Items -> Item[i] ->SubItems->operator [](j) + " ";
                TxBuf->Add(s1+s);
        }
        TxBuf->SaveToFile("report.txt");
А тепер вот это что я сохранил report.txt, с его нужно считать (открить) изагрузить обратно в ListView
0
LK
Заблокирован
15.10.2011, 23:57 #17
разделитель у вас в файле что ? считывайте по расделителю в СтрингЛист, по умолчанию для стринглиста это запятая, заполняете:
Свойство CommaText

Получает или устанавливает список в виде большой строки. Эта строка будет иметь список строк разделенных запятыми. Это полезно для загрузки из экспорта текстовой электронной таблицы. Если при получении строка содержит вложенные пространства, то она будет заключена в двойные кавычки.

Cвойство DelimitedText

Получает или устанавливает список через большую строку. Эта строка содержит список строк разделенных значением Delimiter (по умолчанию - запятая). Строки, содержащие вложенные пробелы должны быть заключены в QuoteChar (по умолчанию - ").
, т.е., как записывали, так и читаете.
0
gorin
207 / 14 / 2
Регистрация: 18.08.2009
Сообщений: 571
16.10.2011, 00:40 #18
LK, Можно пример чтения и сохранения
вот я сделал сохранение:
C++
1
2
3
4
5
6
7
8
    TxBuf->Clear();
    int col = ListView2->Items->Count;
    for (int i=0;i<col;i++)
    {
        TxBuf -> Add("\" " + ListView2 -> Items -> Item[i] -> Caption
        +"\" ,"+ ListView2 -> Items -> Item[i] -> SubItems -> CommaText);
    }
    TxBuf->SaveToFile("report.txt");
Добавлено через 15 секунд
А как будет Чтение?
0
LK
Заблокирован
16.10.2011, 00:49 #19
вот такой пример был в запасниках
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//---------------------------------------------------------------------------
#include <iostream>
#include <fstream>
//---------------------------------------------------------------------------
void __fastcall TForm1::BtnSaveClick(TObject *Sender)
{
  std::ofstream out("scan.txt",std::ios_base::out|std::ios_base::trunc);
  for(size_t i=0;i<(size_t)LVScan->Items->Count;++i){
    if(i) out<<std::endl;
    out<<"\""<<LVScan->Items->Item[i]->Caption.c_str()<<"\""<<std::endl;
    for(size_t j=0;j<(size_t)LVScan->Items->Item[i]->SubItems->Count;++j)
      out<<"\""<<LVScan->Items->Item[i]->SubItems->Strings[j].c_str()<<"\""<<std::endl;
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BtnOpenClick(TObject *Sender)
{
  LVScan->Items->Clear();
  std::ifstream in("scan.txt");
  std::string x;
  TListItem * item=0;
  bool flag=false;
  while(!std::getline(in,x).fail()){
    if(!x.size()) {item=0;flag=false;continue;}
    if(x.size()&&'"'==x[x.size()-1]) x.resize(x.size()-1);
    if(x.size()&&'"'==x[0]) x.erase(0,1);
    if(!item) item=LVScan->Items->Add();
    if(!flag){ item->Caption=x.c_str(); flag=true; }
    else item->SubItems->Add(x.c_str());
  }
}
//-------------------------------------------------------------------------
0
gorin
207 / 14 / 2
Регистрация: 18.08.2009
Сообщений: 571
16.10.2011, 01:09 #20
LK, в этой строке while(!std::getline(in,x).fail()){
ошыбка
[BCC32 Error] Unit1.cpp(143): E2316 'getline' is not a member of 'std'
Full parser context
Unit1.cpp(137): parsing: void _fastcall TForm1::Button3Click(TObject *)
0
LK
Заблокирован
16.10.2011, 01:58 #21
убрать не пробовали?
C++
1
while(!getline(in,x).fail()){
0
gorin
207 / 14 / 2
Регистрация: 18.08.2009
Сообщений: 571
16.10.2011, 10:49 #22
LK, Убрал ту строку цикла, прога скомпилилась но не работает! Может как то решить задачу можно, та как сохраняется?
0
LK
Заблокирован
16.10.2011, 14:09 #23
цикл, наверное, надо было оставить
0
gorin
207 / 14 / 2
Регистрация: 18.08.2009
Сообщений: 571
16.10.2011, 14:44 #24
LK, С цыклом ошибка
0
LK
Заблокирован
16.10.2011, 14:46 #25
gorin, прикрепите кусок проекта, чтобы заново не воссоздавать ситуацию.
0
gorin
207 / 14 / 2
Регистрация: 18.08.2009
Сообщений: 571
16.10.2011, 17:40 #26
Сечас!

Добавлено через 21 секунду
Я работаю в C++ Builder XE

Добавлено через 1 час 15 минут
исходник C++Builder Xe
0
LK
Заблокирован
16.10.2011, 21:10 #27
как бы работает
0
Вложения
Тип файла: zip gorin.zip (725.4 Кб, 17 просмотров)
gorin
207 / 14 / 2
Регистрация: 18.08.2009
Сообщений: 571
16.10.2011, 21:28 #28
LK, большое спасибо работает!!!
1
16.10.2011, 21:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2011, 21:28
Привет! Вот еще темы с ответами:

Переход по фокусу с помощью Enter - Visual Basic
Как заставить ходить по полям формы нажимая enter, но чтобы фокус переходил как по Tab? Заранее благодарен. Олег

Запретить фокусу произвольно переходить на другие поля - MS Access
Здравствуйте! В приложении БД. Задумка в том, чтобы при получении полями &quot;Текст 1&quot; и &quot;Текст 2&quot; отображались для каждого из них свои...

ComboBox раскрытие списка по клику и фокусу. Странное поведение - C++
C++ Builder 5, форма заведения данных - пользователь выбирает данные в нескольких комбобоксах. Пытаюсь сделать так, чтобы облегчить...

ListView. После добавления кнопки перестал быть доступен сам ListView - Программирование Android
Кастомизировал ListView с помощью нескольких TextView. Но после того, как добавил ImageButton сам список стал недоступен для клика, а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru