![]() |
САМЫЕ ПРИКОЛЬНЫЕ ФОРУМЫ В РУНЕТЕ |
Помощь
Поиск
Участники
Репутация
Журналы
Статистика
Финансы
Игры Зверинец
Фотогалерея
Армейская система
|
| Здравствуйте Гость ( Вход | Регистрация ) | Выслать повторно письмо для активации |
| ЧАТ | |
| ЛАЙФ-ЧАТ | АРХИВ ЧАТА | |
| Последнее сообщение: MERcURY - Всем привет! |
|
![]() ![]() ![]() |
| Snaker |
Отправлено: Mar 17 2006, 11:40 AM
|
![]() Прикольный программёр Группа: Администратор Сообщений: 1499 Пользователь №: 12 Регистрация: 15-September 04 Награды: 10 Репутация: 37 Флудо: 6390 Зверинец: 2 Инвентарь: Посмотреть Статус: ![]() |
В общем всё вот так. Только не пугайтесь я не собирался писать какую-то товарную прогу, просто отвечаю на заданный вопрос и поэтому минут за 5-10 накидал этот код. Ещё просьба не пишите мне на РМ, лучше создавайте топик и я постараюсь ответить на все возникшие вопросы, по мере сил, способностей и свободного времени.
Итак приступим: Открываем в Дельфях новый проект. В свойствах формы прописываете: Caption (что хотите, я например написал Супер-пупер,а можете и ничего не писать, и так будет работать по умолчанию среда сама пропишет там Form1) Position – poScreenCenter (это чтоб ваша прога отображалась при запуску в центре экрана, это тоже можно не делать, но есть в программировании «Правила хорошего тона» Так что к таким вещам желательно привыкать с самого начала. Сохраняем проект на всякий пожарный случай, кто его знает мож вы чё там начудили и ваша доблесная ось этого не переживёт, так что хоть не потерять то что уже сделано после вынужденного ресета, лучше сохраниться. Далее кидаем на форму три компонента с закладки Dialogs OpenDialog – в коде он получает имя OpenDialog1; SaveDialog – SaveDialog1 и PrintDialog – PrintDialog1 Далее с закладки Win32 кидаем на форму RichEdit, можно любой другой типа Memo, но этот для наших целей на мой взгляд более удобен. С закладки Standart кидаем четыре бутона они получают имена Button1, Button2 и т.д. В свойствсах Caption у первого пишем «Открыть» у второго «Сохранить» у третьего «Печать» ну и последнего «Выход». Размещаете всё это на форме как Вам вздумается или можете например как это сделал я. В событии onClick Button4 пишем procedure TForm1.Button4Click(Sender: TObject); begin Form1.Close; end; Это будет кнопка закрытия приложения У кнопки «Открыть» procedure TForm1.Button1Click(Sender: TObject); begin if OpenDialog1.Execute then RichEdit1.Lines.LoadFromFile(OpenDialog1.FileName); end; Это будет кнопка Открытия файла и загрузки его содержимого в RichEdit, где его можно редактировать, изменять изи делать всё что вам вздумается. У кнопки «Сохранить» procedure TForm1.Button2Click(Sender: TObject); begin if SaveDialog1.Execute then RichEdit1.Lines.SaveToFile(SaveDialog1.FileName); end; Это будет кнопка сохранения содержимого RichEdit, в текстовой файл. У кнопки «Печать» procedure TForm1.Button3Click(Sender: TObject); begin if PrintDialog1.Execute then RichEdit1.Print(RichEdit1.Text); end; Ну и кнопка вывода на печать соответственно. Так на с буттонами вроде бы закончили переходим к диалогам, в принципе этого можно и не делать, но Вы ж помните про «хороший тон»? Ась? Не помните… Хм… Ну и ладно я всё равно напишу авось кому-то пригодиться… Выделяем на форме OpenDialog и в открывшихся в инспекторе обектов его свойствах пишем: DefaulEx – txt Title – Открытие файла Счёлкаем по позиции Filter и в открывшемся окне редактирования отпределяем условия фильтрации при выборе файла, чтоб под ногами не болталось что не попадя, а лишь те текстовые файлы которые мы с Вами и собираемся открывать. FilterName - Tекстовые файлы Filter - *.txt С SaveDialog поступаем точно так же с разницей лишь в том что в его Title пишем "Cохранение файла". Ну и венцом творения пропишем в свойствах RichEdit ScrollBars – onBoth Это для того чтобы скролинги прокрутки появлялись по мере необходимости если загруженное содержание файла превышает размер RichEdit по строкам. Если этого не прописать то скролинги сами не появяться. Ну вот и всё сохраняемся, компилируем проект и смело жмём СТАРТ на панели Дельфей, а если в ломы просто нажимаем F9 И получаем требуемый результат.. Ну вот в принципе и всё что я могу сказать по этому вопросу. Авторские права на эту ахинею я регистрировать не собираюсь так что ломайте, улудшайте переделывайте как вам вздумается… Вдруг у Вас из этого всего получиться офигительная прога,. Желаю удачи и всего самого-самого! -------------------- ...Программист - это уже не совсем человек, это уже на половину комп...
|
| Изобретатель |
Отправлено: Mar 17 2006, 01:21 PM
|
|
иЗЮБРИК ![]() ![]() ![]() ![]() ![]() Группа: Продвинутый пользователь Сообщений: 426 Пользователь №: 616 Регистрация: 3-August 05 Награды: 0 Репутация: 6 Флудо: 31554 Зверинец: 0 Инвентарь: Посмотреть Армия: 103 Статус: ![]() |
Ой огромное пасибо! Ничего если я буду тут коекакие вопросики задавать????(нечасто)
|
| Изобретатель |
Отправлено: Mar 17 2006, 02:17 PM
|
|
иЗЮБРИК ![]() ![]() ![]() ![]() ![]() Группа: Продвинутый пользователь Сообщений: 426 Пользователь №: 616 Регистрация: 3-August 05 Награды: 0 Репутация: 6 Флудо: 31554 Зверинец: 0 Инвентарь: Посмотреть Армия: 103 Статус: ![]() |
все получилось токо вот такая проблемс- после того как я напишу if PrintDialog1.Execute then Memo1.Print(Memo1.Text);
(я редактор использовал мемо) он выдает снизу: Unit.pas(54):Undeclared identifier:'Print' и ставит палочку печати вот так: Memo1.Print|(Memo1.Text); что за байда? |
| Snaker |
Отправлено: Mar 17 2006, 06:28 PM
|
![]() Прикольный программёр Группа: Администратор Сообщений: 1499 Пользователь №: 12 Регистрация: 15-September 04 Награды: 10 Репутация: 37 Флудо: 6390 Зверинец: 2 Инвентарь: Посмотреть Статус: ![]() |
Задавай любые вопросы, чем смогу, тем помогу... Ну эт просто... Я специально и взял для этой цели компонет RichEdit так как у него есть метод Print позволяющий выводить на печать у Memo такого метода нет... от туда и ошибка... если выводить на печать что-то из Memo то надо самому писать процедуру вывода на печать. Если надо то я могу написать примерный код для реализации этого процесса. То есть в этом случае программеру приходиться самому ломать голову как это сделать, не пользуясь заложеными в среду функциями и методами. Вот ты уже и столкнулся с недоработанностью Дельфей..
-------------------- ...Программист - это уже не совсем человек, это уже на половину комп...
|
| Изобретатель |
Отправлено: Mar 17 2006, 06:37 PM
|
|
иЗЮБРИК ![]() ![]() ![]() ![]() ![]() Группа: Продвинутый пользователь Сообщений: 426 Пользователь №: 616 Регистрация: 3-August 05 Награды: 0 Репутация: 6 Флудо: 31554 Зверинец: 0 Инвентарь: Посмотреть Армия: 103 Статус: ![]() |
нда...понятно!
|
| Изобретатель |
Отправлено: Mar 17 2006, 06:38 PM
|
|
иЗЮБРИК ![]() ![]() ![]() ![]() ![]() Группа: Продвинутый пользователь Сообщений: 426 Пользователь №: 616 Регистрация: 3-August 05 Награды: 0 Репутация: 6 Флудо: 31554 Зверинец: 0 Инвентарь: Посмотреть Армия: 103 Статус: ![]() |
а в чём разница тогда мемо и рич-едит??? тогда нафиг этот мемо??
|
| Изобретатель |
Отправлено: Mar 17 2006, 06:42 PM
|
|
иЗЮБРИК ![]() ![]() ![]() ![]() ![]() Группа: Продвинутый пользователь Сообщений: 426 Пользователь №: 616 Регистрация: 3-August 05 Награды: 0 Репутация: 6 Флудо: 31554 Зверинец: 0 Инвентарь: Посмотреть Армия: 103 Статус: ![]() |
биг спасибо! всё работает
если ещё нетрудно напиши текст для FontDialog я чёт пытался сделать по прошлым примерам ничерта... |
| Snaker |
Отправлено: Mar 21 2006, 04:41 AM
|
||
![]() Прикольный программёр Группа: Администратор Сообщений: 1499 Пользователь №: 12 Регистрация: 15-September 04 Награды: 10 Репутация: 37 Флудо: 6390 Зверинец: 2 Инвентарь: Посмотреть Статус: ![]() |
Разница вобщем-то большая. Memo это типа обыкновенной строки ввода Edit, но с возможностью загружать в него текст длинной более 256 знаков, редактироваль его и выгружать/загружать во внешний файл. Это если по большому счёту. Так как на самом деле у Memo и Edit намного больше различий и методов. RichEdit - это готовая заготовка для полноценного текстового редактора. Если сохранить из его текст по внешний текстовой файл и потом открыть этот текстовик например стандартным блокнотом, то можно увидеть что в тексте не только то что ты сохранил, а ещё есть кое-что. Это теги форматирования текста. То есть перенос сторок и т.д. и т.п. Как например в документах RTF или DOC. По этому если тебе надо писать прогу умеющую работать с текстом то надо использовать RichEdit, так как многие функции текстового редактора в нём уже заложены. А если просто нужно текстовое поле с указаными мною выше возможностями, то лучше использовать Memo. Вот и все дела. По большому счёту. -------------------- ...Программист - это уже не совсем человек, это уже на половину комп...
|
||
| Snaker |
Отправлено: Mar 21 2006, 05:45 AM
|
||
![]() Прикольный программёр Группа: Администратор Сообщений: 1499 Пользователь №: 12 Регистрация: 15-September 04 Награды: 10 Репутация: 37 Флудо: 6390 Зверинец: 2 Инвентарь: Посмотреть Статус: ![]() |
Добавляем на форму ещё один Баттон, то есть Button5, даём ему имя "Шрифт" и в его обработчике пишем, чтоб всё выглядело примерно этак вот: procedure TForm1.Button5Click(Sender: TObject); begin if FontDialog1.Execute then begin RichEdit1.Font.Name:=FontDialog1.Font.Name; RichEdit1.Font.Size:=FontDialog1.Font.Size; RichEdit1.Font.Style:=FontDialog1.Font.Style; RichEdit1.Font.Color:=FontDialog1.Font.Color; end; RichEdit1.Repaint; end; С закладки VCL Dialog сбрасываем на форму компонент FontDialog, он в коде получает имя FontDialog1 Так4же можно добавить ещё одну кнопку Button6 "Очистить", для того чтобы можно было одним нажатием очищать RichEdit от текста в обработчике пишем: procedure TForm1.Button6Click(Sender: TObject); begin RichEdit1.Clear; RichEdit1.Repaint; end; Предупреждаю! Это будет работать ДЛЯ ВСЕГО текста находящегося в RichEdit Для того чтобы изменять параметры отдельного фрагмента текста (выделенного) не задевая оставшийся текст надо работать с другими методами. То есть проверить не выделен ли некий фрагмент текста если нет, то применять параметры глобально. Как я уже показал. А если есть выделение, то применять параметры только к выделенному фрагменту. -------------------- ...Программист - это уже не совсем человек, это уже на половину комп...
|
||
| SN@IPER |
Отправлено: Apr 6 2007, 03:28 PM
|
|
Unregistered |
как сделать загрузку DBF файла и выполнить проверку на правельность заполненых полей |
|
|
![]() |
![]() ![]() ![]() |