|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.12.2012, 17:19 | #1 |
Пользователь
Регистрация: 18.12.2011
Сообщений: 14
|
запись в файл с формы
Привет. создала на форме 15 кнопок chackBox. в них я долна написать название песен и при нажатие на какой то из них у меня название песни должно записываться в файл. не подскажете как это сделать?
Последний раз редактировалось Ольга790; 22.12.2012 в 17:26. Причина: недописала |
22.12.2012, 20:18 | #2 |
Участник клуба
Регистрация: 14.06.2011
Сообщений: 1,138
|
С++ - это хардкор. На дельфях все примитивно:
Где-то там сперва присваиваются глобальные переменные strSong и strFileName, и пишутся три строчки кода. Удобно! (пусть и быдло-код, но работает, а больше и не надо) procedure TForm1.CheckBox1Click(Sender: TObject); begin Memo1.Clear; Memo1.Lines.Add(strSong); Memo1.Lines.SaveToFile(strFileName) ; end; |
23.12.2012, 09:50 | #3 |
Пользователь
Регистрация: 18.12.2011
Сообщений: 14
|
я к сожалению,не поняла тот код который вы написали, может подскажете как реализовать, то что я написала ниже
Код:
но пока не погу понять куда этот код засунуть Последний раз редактировалось Stilet; 23.12.2012 в 11:20. |
23.12.2012, 11:40 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Предлагаю описать вот такой обработчик:
Код:
Тогда создаваемый файл будет содержать текст кликнутого контрола.
I'm learning to live...
|
24.12.2012, 00:20 | #5 |
Участник клуба
Регистрация: 14.06.2011
Сообщений: 1,138
|
Ольга790
Если Вам программа нужна для дела, то сперва опишите ее логику работы в "псевдо-коде". Все сразу станет яснее. Сумеете сформулировать четкие вопросы, на которые уже здесь получить конкретные работающие ответы. Пока я вижу Вашу программу следующим образом: Есть форма. На ней есть 15 полей текста, рядом с каждым из которых есть чекбокс. Еще внизу есть кнопка "Записать выбранные песни". Итого на форме 31 элемент: 15 +15 + 1. При нажатии на кнопку активируется функция, которая последовательно проверяет состояние чекбоксов, и если true, то пишет название песни в один и тот же файл. По ее завершении получим файл с выбранными песнями. Так? |
24.12.2012, 01:23 | #6 |
Участник клуба
Регистрация: 14.06.2011
Сообщений: 1,138
|
private: System::Void checkBox1_CheckedChanged(System::Ob ject^ sender, System::EventArgs^ e)
private: - модификатор доступа, позволено обращаться всем System:: - пространство имен или исходный класс? Void - возвращаемое значение checkBox1_CheckedChanged - имя функции, нижнее подчеркивание ничего не разделяет, а просто для понятливости. Функцию можно назвать и func1. Дальше идут аргументы: System:: - то же не понимаю, пространство имен или исходный класс? Object - точно родительский класс где-то там в самом начале иерархии наследования. sender - либо указатель, либо скопированный блок данных, что врядли System:: - нипанятна EventArgs - получается тоже родительский класс? е - указатель на объект класса EventArgs, производного от System? System::String^ s= Теперь объявляется указатель на объект класса String, произведенного от System. И этому указателю сразу при создании что-то присваивается. Дальше идет нечто жуткое... ((System::Windows::Forms::CheckBox^ )sender) указатель sender приводится к типу (System::Windows::Forms::CheckBox^)... Неужели каждый раз, чтобы достучаться до объекта, надо прописывать полную иерархию за ради избегания конфликтов имен? Но это ж основные, а не самописные классы.*/ sender)->Text; и лишь после этой всей подготовки указателю s присваивается свойство Text, который сам по себе я вляется указателемна на объект класса System::String StreamWriter^ sw = gcnew StreamWriter("d:\\1\\file.txt"); Ну, это уже понятно. Создается обхект Stream Writer, вызывая конструктор с аргументом "d:\\1\\file.txt". sw->Write(s); Вызывается его метод Write(), который на самом деле не единственен, а выбирается из списка перегруженных Write(), в зависимости от типа данных s. sw->Close(); И уничтожается, вызывая деструктор Close() Так... после пошагового описания что-то прояснилось. Но конструкция System::Object^ sender, все равно смущает. Что это такое, в двух предложениях? |
24.12.2012, 02:52 | #7 | |||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
пространство имен System, класс Void, Object, EventArgs. это С++ CLR, иначе говоря С++ для dotNET, нечто среднее между шарпом и С++. ^ символ ссылки на управляюмую кучу. Цитата:
но Виталий не стал на них расчитывать.(хотя со StreamWriter почему то иначе поступил, там System::IO::StreamWriter) Цитата:
данный же метод закрывает файловый поток, иначе придется ждать сборки мусора, что не комильфо. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|||
24.12.2012, 03:45 | #8 |
Участник клуба
Регистрация: 14.06.2011
Сообщений: 1,138
|
Ага, спасибо.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запись в файл с формы | Red_Garry | Общие вопросы Delphi | 4 | 11.07.2011 09:47 |
запись из формы в php файл | tresh | PHP | 9 | 16.05.2011 21:49 |
Запись данных в БД c формы | insense | БД в Delphi | 6 | 17.06.2010 09:56 |
Запись параметров формы в БД | PSix1_73 | JavaScript, Ajax | 3 | 21.05.2009 17:59 |