Вопрос № 65964: Такой вопрос! Рисую я передвигающийся ректангл на Имидже (рисуешь ректангл, инкрименируешь х,
всё закрашиваешь в белый цвет и опять ректангл) - получается эффект перемещения. Но стоит рисовать,
скажем на Панели (DC := GetDC( Panel1.Handle );...Вопрос № 65981: Уважаемые эксперты.
Подскажите как настоить Delphi 7, чтобы по умолчанию новый проект сохранялся не на рабочем столе (как у меня :(( ) а в определенной директории.
Поясняю смысл. Создаю новый проект. Кидаю на форму компаненты не сохраняя комп...Вопрос № 65990: Здравствуйте уважаемые эксперты,научите пожалуйста как отправлять содержимое компонента Memo в Excel,Word....
Вопрос № 65.964
Такой вопрос! Рисую я передвигающийся ректангл на Имидже (рисуешь ректангл, инкрименируешь х,
всё закрашиваешь в белый цвет и опять ректангл) - получается эффект перемещения. Но стоит рисовать,
скажем на Панели (DC := GetDC( Panel1.Handle ); Rectangle( DC, ..., ..., ..., ... ); ... ), то
начинает всё мерцать ( из-за постоянного закрашивания фона ). Как можно это обойти???
Отвечает: Mexes
Здравствуйте, Яковлев Сергей Павлович!
Могу посоветовать сделать пустой обработчик WM_ERASEBKGND.
Для этого либо сделать наследника от панели с пустым соответствующим обработчиком, либо назначить собственный обработчик WinProc панели.
Для этого в классе следует объявить
DefPanelWinProc:TWndMethod;
procedure MyPanelWinProc(var Message: TMessage);
В начале работы сохранить обработчик по умолчанию и назначить свой:
DefPanelWinProc:=Panel1.WindowProc;
Panel1.WindowProc:=MyPanelWinProc;
Ну и в обработчике MyPanelWinProc проигнорировать сообщение WM_ERASEBKGND:
procedure TForm1.MyPanelWinProc(var Message: TMessage);
begin
if Message.Msg<>WM_ERASEBKGND
then DefPanelWinProc(Message);
end;
Не уверен точно, избавит ли это от мерцания, но перекраску фона должно убрать.
Ответ отправил: Mexes (статус: 6-ой класс)
Ответ отправлен: 07.12.2006, 16:02
Вопрос № 65.981
Уважаемые эксперты.
Подскажите как настоить Delphi 7, чтобы по умолчанию новый проект сохранялся не на рабочем столе (как у меня :(( ) а в определенной директории.
Поясняю смысл. Создаю новый проект. Кидаю на форму компаненты не сохраняя компилирую и в итоге исполняемый файл на на рабочем столе. Если честно достало рабочий стол чистить. Сам проект и файлы сохрянять мне не надо. Помогите пожалуста. Уже все пересмотрел. До этого работал с 6 версией - такого не было.
Такое бывает при переходе с нижних версий программы на верхние.
Прежде всего, в некоторых копиях Delphi7 во время установки программы выводится диалоговое окно, где стоят галочки сохранения файлов по умолчанию - их нужно просто снять.Поэтому возможно нужно просто переустановить программу.При переустановке,желательно удалить все существующие файлы вручную, а потом выполнить деинсталяцию.Каталоги с ранее созданными файлами перенесите в другой каталог.
Но вообще-то в Delphi7 в данном случае, зайдите в опции среды,на вкладке инструменты, и в закладке настройка укажите путь хранения файлов по умолчанию и всё станет на свои места.
Удачи!
Ответ отправил: KiberZero (статус: 3-ий класс)
Ответ отправлен: 07.12.2006, 18:05 Оценка за ответ: 5 Комментарий оценки: Идея хорошая, но только не охото переустанавливать Делфи. Уж больно много всего установлено, а что и где брал для установки не помню :(
Отвечает: Mammoth
Здравствуйте, Сидоров Андрей!
Программу переустанавливать не надо.. просто в свойствах ярлыка (запуска Delphi) укажите рабочую директорию. Можно на Ваш вкус. Например "ПУТЬ К КАТАЛОГУ С ВАШИМИ ПРОЕКТАМИ". И будет Вам счастье..
Ответ отправил: Mammoth (статус: 1-ый класс)
Ответ отправлен: 08.12.2006, 03:27 Оценка за ответ: 5 Комментарий оценки: Спасибо помогло! Я догадывался об этом, но думал у самой Делфи есть так называемый путь по умолчанию.
Отвечает: Кулаков Антон Сергеевич /SandroNec
Здравствуйте, Сидоров Андрей!
Создайте где нибудь папку. Например D:Projects в ней создайте папки exe,dcu,debug. Затем запустите Delphi зайдите в меню Project->Options и на вкладке
Directories/Conditionals настройте следующим образом - Output Directory = D:ProjectsExe. Unit Output Directory = D:ProectsDCU. Searsh Path = D:ProjectsDCU. Debug Source Path = D:ProjectsDebug. Поставьте галочку в левом нижнем углу (Default) и нажмите Ok. Удачи
--------- Настоящий программист на вопрос - "можешь ли ты это сделать", всегда ответит - "да", а потом подумает как
Ответ отправил: Кулаков Антон Сергеевич /SandroNec (статус: 4-ый класс)
Ответ отправлен: 08.12.2006, 04:32 Оценка за ответ: 5 Комментарий оценки: Тоже хорошая идея.
Отвечает: Sarymian
Здравствуйте, Сидоров Андрей!
Извините мня за наивность, но просто с такой проблемой я не сталкивался и на мой взгляд проблема в том что вы запускаете Делфи с рабочего стала а в свойствах ярлыка "Рабочая Папка" прописана как путь к рабочему столу поэтому при компиляции используется путь для временного сохранения на стол.
Изначально папка выглядит так BorlandDelphi7Projects т.е. пропишите путь к этой папке и на рабочем столе вам не будут мозолить глаза файлы проекта.
Ответ отправил: Sarymian (статус: 3-ий класс)
Ответ отправлен: 08.12.2006, 05:31 Оценка за ответ: 5 Комментарий оценки: Спасибо
Вопрос № 65.990
Здравствуйте уважаемые эксперты,научите пожалуйста как отправлять содержимое компонента Memo в Excel,Word.
Отправлен: 07.12.2006, 18:40
Вопрос задал: Delphi-n (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Кулаков Антон Сергеевич /SandroNec
Здравствуйте, Delphi-n!
Описывать все это довольно долго, поэтому ловите ссылки:
http://www.delphisources.ru/pages/sources/raznoe/word_excel.html
http://www.softok.org/coding/delphi/4764dload.html
http://www.softsklad.ru/codings/delphis/3programs1.html
А также посоветовал бы Вам книгу Василия Корнякова "Программирование документов и приложений MS Office в Delphi". Удачи
--------- Настоящий программист на вопрос - "можешь ли ты это сделать", всегда ответит - "да", а потом подумает как
пример работы с екселем
Используем TExcelApplication (xl).
xl.Visible[lcid(0)]:=false; //устанавливаем Excel в невидимый режим
xl.Workbooks.Add(FileName или null,lcid(0)); //открываем файл или создаем новый
xl.Range['A1',emptyparam].Value:=memo1.lines.text; //записываем содержимое Memo в ячейку 'A1'
xl.Quit; //закрываем Excel
xl.Disconnect; //отключаемся от сервера
Используем TWordApplication (wa)
--------- Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: 8-ой класс)
Ответ отправлен: 08.12.2006, 09:17