|
0 / 0 / 1
Регистрация: 16.03.2015
Сообщений: 46
|
|
Действительно ли сейчас считается нормальным писать код в хидере?16.03.2015, 21:59. Показов 3079. Ответов 20
Метки нет (Все метки)
Пробую сделать простейшую формочку на VS2008.
Основной элемент - PictureBox. Ну и кнопка ещё. Сгенерился скелет прожекта, в котором практически весь код сосредоточен в .h-файле (Form1.h), ну вы наверное представляете. Вопросы в следующем: 1) Действительно ли сейчас считается нормальным писать код в хидере? 2) Если я всё же пытаюсь размещать код в других файлах, то не могу понять, как добраться до элементов формы. Например, в самом Form1.h, точнее, в нэймспэйсе, который там объявляется, я могу объявить Bitmap^ MyImage1; и затем отобразить его: pictureBox1->Image = MyImage1; Но как правильно сделать это из другого места?
0
|
|
| 16.03.2015, 21:59 | |
|
Ответы с готовыми решениями:
20
"Не нашел где писать" освоил с++, сейчас учу java. Какой язык сейчас более востребован? Что сейчас востребованнее: делать сайты или писать программы? |
|
Комп_Оратор)
|
|||||||||||||
| 17.03.2015, 11:33 | |||||||||||||
|
Однако, никто не заставляет это делать. Вы легко можете написать cpp и использовать хедер как перечень директив и объявлений, а реализации разместить в cpp. Тут есть нюансы. Если Вы легко пишете код проекта без шаблона, (а учитывая:
ps проблемы видимости решаются вполне стандартно. Помимо инклуд в cpp должен быть name space проекта и полные имена
0
|
|||||||||||||
|
0 / 0 / 1
Регистрация: 16.03.2015
Сообщений: 46
|
|
| 17.03.2015, 17:01 [ТС] | |
|
Спасибо. Но похоже зря я взялся за этот Forms. Случайно на него наткнулся и подумал, что это теперь вместо MFC :-))))
0
|
|
|
2 / 2 / 0
Регистрация: 18.07.2015
Сообщений: 47
|
|||||||
| 26.07.2015, 21:42 | |||||||
|
IGPIGP, можно поподробней насчет этого:
Кликните здесь для просмотра всего текста
Проект компилируется и форма запускается без единой ошибки, но с комбо ничего не происходит. Поясните, если есть свободная минутка.
0
|
|||||||
|
Комп_Оратор)
|
||||||
| 26.07.2015, 22:12 | ||||||
|
mAKS74, если callBack(...) вызывается из формы то имеет смысл объявить ее в "MyForm.h, а реализацию выполнить в "MyForm.cpp (его надо создать: правая кнопка на решении-> создать -> файл исходного кода->имя)
Поскольку комбобокс - член формы то логично что и callBack(...) (с названием погорячились)) будет членом а не статической функцией. По коду: Объявляйте ссылки: MyForm ^form; инициализируйте: form=gcnew MyForm(/*args if present*/); Вот типичная точка входа:
безымянная ссылка на форму порождаемая оператором gcnew Form1() передаётся методу Application::Run в виде параметра. Ссылка инициализирована заметьте. То есть форма живёт не дольше чем до завершения метода Run.
1
|
||||||
|
2 / 2 / 0
Регистрация: 18.07.2015
Сообщений: 47
|
|||||||
| 26.07.2015, 22:20 | |||||||
|
Спасибо, осмыслю и попробую позже, а callBack это не я придумал, это из стандартного запроса в SQLite,
0
|
|||||||
|
Комп_Оратор)
|
||
| 26.07.2015, 22:36 | ||
|
https://dcravey.wordpress.com/... plication/ это при том, что в мастдаёныше c# всё есть: https://msdn.microsoft.com/ru-... 63243.aspx это одна из многих ссылок по запросу sqllite в c# вот и думайте. Тут выбор платформы - первый вопрос.
0
|
||
|
2 / 2 / 0
Регистрация: 18.07.2015
Сообщений: 47
|
||||||||
| 27.07.2015, 09:08 | ||||||||
|
https://dcravey.wordpress.com/... plication/ Отличная ссылка... вставил код в проект - ни одного подчеркивания в редакторе, запустил - 53 ошибки, руки опустились ![]() Добавлено через 6 минут Причем первая же строка:
ata::SQLite::SQLiteConnection)
0
|
||||||||
|
Комп_Оратор)
|
||||
| 27.07.2015, 09:09 | ||||
0
|
||||
|
2 / 2 / 0
Регистрация: 18.07.2015
Сообщений: 47
|
|||||||
| 27.07.2015, 09:17 | |||||||
0
|
|||||||
|
Комп_Оратор)
|
||
| 27.07.2015, 09:22 | ||
|
0
|
||
|
2 / 2 / 0
Регистрация: 18.07.2015
Сообщений: 47
|
||
| 27.07.2015, 09:40 | ||
|
Гм.. не учеба и не сроки, так - хобби. Ок, будем рыть дальше.
0
|
||
|
Комп_Оратор)
|
|||
| 27.07.2015, 09:49 | |||
|
но если на шаге visual С++ сразу выбрать windows forms то будет то же самое так как windows forms это только управляемый C++ и никак иначе. Впрочем, я вошёл в тему по вопросу о хедэрах, а выяснилось, что Вы еще хелловорд в форме не написали, а сразу решили использовать сторонние библиотеки. Посему не вижу чем ещё могу помочь. Всего хорошего.
0
|
|||
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
|
|
| 27.07.2015, 09:52 | |
|
mAKS74, а вы подключили дополнительные зависимости(ссылки)?
0
|
|
|
2 / 2 / 0
Регистрация: 18.07.2015
Сообщений: 47
|
||
| 27.07.2015, 09:56 | ||
0
|
||
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
|
||
| 27.07.2015, 10:01 | ||
|
Создание графического приложения (Windows Forms) в Visual Studio
0
|
||
|
2 / 2 / 0
Регистрация: 18.07.2015
Сообщений: 47
|
||
| 27.07.2015, 10:14 | ||
|
S_el, я изначально использовал метод с включением sqlite3.c и sqlite3.h из sqlite-amalgamation. Все получилось, есть возможность работы с БД, но там возникают определенные трудности, о которых мельком выше сказал - почему-то невозможно включить функцию callBack (sqlite3_exec(db, callDB, callBack, 0, &zErrMsg); ) в тело класса формы и приходится выносить ее в основной .cpp. Но из основного .cpp не могу получить контроль над элементами формы (combobox, в частности). Даже если я передам значение строки в специально созданный метод в форме, то и оттуда я почему-то не могу передать строку в combobox.
Если речь идет о вот этом методе https://dcravey.wordpress.com/... plication/, то да - в ссылках подключен System.Data.SQLite.dll Добавлено через 7 минут
0
|
||
|
Комп_Оратор)
|
|
| 27.07.2015, 10:49 | |
|
mAKS74, вот наскоро 2 примера. один нарушает инкапсуляцию, так как передаёт контроль над членом на сторону. Лучше всего чтобы контроль оставался в форме так как событийно она и есть владелец всего происходящего. Тестбокс выбран для простоты. Принцип, я думаю, понятен.
1
|
|
|
2 / 2 / 0
Регистрация: 18.07.2015
Сообщений: 47
|
||||||
| 27.07.2015, 20:42 | ||||||
|
Может кому-то будет полезно.
Подключение SQLite к вот этому проекту, вот этим методом (спасибо IGPIGP за наводку). VS Express 2013 для Desktop, Windows 7 x64. 1. Скачиваем и распаковываем путем установки вот эту плюху. 2. В папку проекта бросаем три файла из установленной плюхи (располагаются в - ...место установки\System.Data.SQLite\2012\bin\): System.Data.SQLite.dll, System.Data.SQLite.pdb и System.Data.SQLite.dll.config. 4. В папку проекта DEBUG оттуда же добавляем SQLite.Interop.dll и SQLite.Interop.pdb. 5. В свойствах проекта добавляем ссылку на System.Data.SQLite.dll (ту, которая в папке проекта). 6. Вставляем код, предлагаемый англоязычным коллегой, не забыв про
Важный момент, отнявший у меня 12 часов времени и три огнетушителя - если вы установили System.Data.SQLite x64, то файлы SQLite.Interop.dll и SQLite.Interop.pdb должны быть взяты из x86-версии. Посмотрим насколько такой вариант удобней подключения с использованием sqlite-amalgamation.
1
|
||||||
|
2 / 2 / 0
Регистрация: 18.07.2015
Сообщений: 47
|
||
| 29.07.2015, 12:43 | ||
|
Посмотрел. Прощай кириллица. В топку.
В вышеупомянутую callBack невозможно передать ничего лишнего... Нашел решение с другой стороны. Теперь могу делать все по Вашему совету внутри формы, спасибо
0
|
||
| 29.07.2015, 12:43 | |
|
Помогаю со студенческими работами здесь
20
Мой ноутбук не выключается, не перезагружается, сейчас стал писать, что мало памяти Как сделать данный код нормальным?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|