Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
полная шпора по ПП в ТС.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
458 Кб
Скачать
☆

8.Ввод и отображение текстовой информации в Builder и Visual Studio. Сравнение возможностей (на примере).

VS: TextBox, Label,MaskedTextbox,RichTextBox;

Builder: Label, StaticText, memo, richedit, edit, maskededit, labelededit.

9: Преобразование в символ и обратно

VS: (char)X и convert.tochar(X);

Builder: IntToChar, CharToInt;

10.Компоненты Builder вкладки “Standart”: tCheckBox, tRadioButton, tRadioGroup и их аналоги в vs.

Компонент TCheckBox предоставляет пользователю возможность включить/отключить какую-либо опцию. Является VCL-оберткой стандартного элемента управления check box ("флажок") WIndows.

(аналог CheckBox)

Используйте TRadioButton для представления посредством радиокнопок набора взаимоисключающих опций, то есть, такого набора, где одновременно может быть выбрано только одно значение. Для этого разместите TGroupBox на форме и уже потом в него поместите необходимые вам радиокнопки.

(аналог RadioButton)

Компонент TRadioGroup представляет собой группу радиокнопок, функционирующих совместно.

Когда пользователь выбирает одну из радиокнопок компонента, выбор других кнопок снимается. Таким образом, в любой момент времени может быть выбрана лишь одна радиокнопка.

(аналог checkedListBox1)

11. Компоненты вкладки “Standart”: tListBox, tComboBox и их аналоги в vs.

TListBox, TComboBox. VCL-обертки стандартных элементов управления Windows. Просты настолько, что, кажется, проще них может быть только TLabel и TButton. И это, в общем-то, так, но вам никогда не приходило в голову, что эти два компонента списков можно сделать существенно более удобными для использования? Если не приходило, то сейчас я вам покажу то, на что вы, вероятно, не обращали внимания. А именно: о крайней неудобности использования стандартных списков при работе с длинными строками, которые не помещаются в элементы управления. Откройте C++Builder, разместите на форме компоненты TListBox и TComboBox и занесите в Инспекторе объектов в свойства Items этих компонентов следующие строки:

Строка нормальной длины

Строка нормальной длины

Строка нормальной длины

Это очень-очень-очень непропорционально длинная строка для тестирования

TListBox–>ListBox

TComboBox–>ComboBox

12. Cравнение компонентов builder tStringGrid и vs DataGridView

Компоненты: StringGrid в Builder

Закрашивание отдельной ячейки

Очистка ячеек в StringGrid (вариант 1)

Очистка ячеек в StringGrid (вариант 2)

1.)Закрашивание отдельной ячейки // для закрашивания отдельной ячейки в StringGrid напишите // следующий обработчик события OnDrawCell StringGrid // (Form1 - форма, на которой размещен StringGrid1, // StringGrid1 - экземпляр TStringGrid, ячейка которого // закрашивается): void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State) { if (ACol == 2 && ARow == 2) // определяем конкретную ячейку { StringGrid1->Canvas->Brush->Color = clRed; StringGrid1->Canvas->FillRect(Rect); } }

2.)Очистка ячеек в StringGrid (вариант 1) // Для очистки содержимого ячеек в StringGrid (TStringGrid) // напишите следующий обработчик (StringGrid1 - сетка, // в которой очищаем ячейки, Button1 - кнопка на форме): void __fastcall TForm1::Button1Click(TObject *Sender) { for(int i = 0; i < StringGrid1->ColCount; i++) for(int j = 0; j < StringGrid1->RowCount; j++) StringGrid1->Cells[i][j] = ""; }

3.)Очистка ячеек в StringGrid (вариант 2) // Для очистки содержимого ячеек в StringGrid (TStringGrid) // напишите следующий обработчик (StringGrid1 - сетка, // в которой очищаем ячейки, Button1 - кнопка на форме): void __fastcall TForm1::Button1Click(TObject *Sender) { for(int i = 0; i < StringGrid1->RowCount; i++) StringGrid1->Rows[i]->Clear(); }

DataGridView в Visual Studio

DataGridView - стандартный GUI компонент для отображения и редактирования таблиц. Здесь коротко рассмотрены основные моменты работы с этим классом. 

Источник данных при создании можно не указывать, так как DataGridView позволяет хранить данные внутри себя и добавлять/удалять их на лету, во время выполнения (runtime). После этого редактором свойств настройте поведение по умолчанию нового экземпляра DataGridView. Я обычно меняю свойства AllowUserToAddRows на false, AllowUserToDeleteRows на false,ReadOnly на true. Можно также переименовать экземпляр из dataGridView1 в что-нибудь более осмысленное, подходящее для Вашей программы.

2. Столбцы и строки можно добавлять во время выполнения программы (см. [1]). Однако если назначение и структура таблицы (количество и наименование столбцов) известны заранее, то можно редактором свойств добавить столбцы. Для этого редактируют свойство Columns.

3. Обращение к ячейкам DataGridView довольно простое. Индексация столбцов (Columns) и строк (Rows) идет относительно нуля. Столбец с индексом 0 самый левый, и строка с индексом 0 самая верхняя. Количество строк можно получить через свойство RowCount. Добавляются строки методом Удаляются строки методом Rows->Add(), удаляются методом Rows->RemoveAt(номер строки). Пример добавления и удаления строк: 

//добавим в dataGridView1 4 строки dataGridView1->Rows->Add(); dataGridView1->Rows->Add(); dataGridView1->Rows->Add(); dataGridView1->Rows->Add(); //удалим все строки из dataGridView1 while (0 != dataGridView1->RowCount)   dataGridView1->Rows->RemoveAt(0);