Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Интернет: Образование, Работа и Бизнес" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
← Октябрь 2007 → | ||||||
1
|
2
|
3
|
4
|
5
|
6
|
7
|
---|---|---|---|---|---|---|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
30
|
31
|
Статистика
-1 за неделю
Программирование на Delphi (выпуск 76)
Программирование на DELPHI
Выпуск #76 (29 октября 2007 г.)
Если Вы хотите где-либо разместить материалы, представленные на www.delphi.int.ru или в данной рассылке, свяжитесь, пожалуйста, с их автором или ведущим рассылки.
Delphi.int.ru Expert Последние новости
Архив: вопросы и ответы В архив попадают вопросы, срок действия которых истёк. Каждый заданный вопрос действителен в течение одной недели, т.е. ответы на него принимаются именно в этот период. В сегодняшнем выпуске опубликованы вопросы # 296 - 310. Вопросы, на которые не было дано ни одного ответа, не публикуются. Статистика по выпуску: Кол-во вопросов: 15 Вопрос # 296 Раздел: Delphi » Взаимодействие с Windows Уважаемые эксперты, битый месяц пытаюсь глобально объявить в программе горячие клавиши, но, как только окно программы теряет фокус, клавиши перестают работать... Вопрос задал: Noname (статус: Посетитель) 1. Отвечает эксперт: Вадим К нужно регистрировать глобальные горячие клавиши. Ответ отправил: Вадим К (статус: Магистр) Вопрос # 297 Здраствуйте эксперты. У меня полный проблем. Мне необходим халявный сайт где я смогу скачать дипломную работу выполненную в Delphi. На преддипломной практике оказалось, что по моей теме работают еще несколько студентов. (это нихт гут). Времени у меня вообще не осталось. Помогите плиз... Вопрос задал: BLOOD_OMEN (статус: Посетитель) 1. Отвечает эксперт: Вадим К Обычно такие сайты платные, так как такие работы делаются "под ключ", тобыш персонально. И каким образом это касается этого сайта? Работать надо, а то привыкле к халяве Ответ отправил: Вадим К (статус: Магистр) Вопрос # 299 Раздел: Delphi » Работа с компонентами и библиотеками Здравсствуйте, специалисты. Есть 2 MEMO. Нужно, чтобы они вместе прокручивались Scrollbars по горизонтали. И как привязать scrollbar к memo? Вопрос задала: Тамара (статус: Посетитель) 1. Отвечает эксперт: Geron Здравствуйте, Тамара! Есть у мемо такое свойства как ScrollBars, если конечно это вам поможет Ответ отправил: Geron (статус: 1-ый класс) 2. Отвечает эксперт: Роман Здравствуйте, Тамара!У компонента Memo есть свойство ScrollBars которое может принимать значения ssNone,ssVertical,ssHorizontal,ssBoth:соответственно без полос порокрутки,вертикальная,горизонтальная и обе.По поводу одновременной прокрутки возможно вам поможет функция GetScrollPos: Приложение:
Ответ отправил: Роман (статус: 5-ый класс) Вопрос # 300 Раздел: Delphi » Работа с устройствами и "железом" Уважаемые! Вопрос задал: ASHA (статус: Посетитель) 1. Отвечает эксперт: Вадим К Если у вас есть админ права не него, то тогда надо удалённо подключить реестр и считать с него список устройст. А там уже будет видно. Ответ отправил: Вадим К (статус: Магистр) Вопрос # 301 Раздел: Delphi » COM, ActiveX и взаимодействие с другими приложениями работа с Office в Delphi Вопрос задала: Титова Нина Владимировна (статус: Посетитель) 1. Отвечает эксперт: Сергей Устинов Здравствуйте, Титова Нина Владимировна! Приложение:
Ответ отправил: Сергей Устинов (статус: 2-ой класс) 2. Отвечает эксперт: Роман Здравствуйте, Титова Нина Владимировна!Попробуйте http://www.delphikingdom.com/ там есть статьи по работе с Excel'ем,Word'ом в Delphi. Ответ отправил: Роман (статус: 5-ый класс) 3. Отвечает эксперт: Knjazev Здравствуйте, Титова Нина Владимировна! Ответ отправил: Knjazev (статус: 3-ий класс) Вопрос # 302 Раздел: Delphi » Программирование баз данных (БД) Здравствуйте, во первых спасибо тем кто мне ответил: Я прочитал в аксесе справку, многое что понял, я использую таблицу парадокс7(это хорошо?), как лучше связать таблицы между собой с пом. Утил. ДатабейзДекстоп или в Дельфи и как это сделать…? Мне один посоветовал использовать АДО чем БДЕ. Когда задаешь драйвер для источника данных, какой выбрать: Driver do Microsoft Paradox или Microsoft Paradox Driver? Но вот про БДЕ много документаций, а вот про АДО мало… И как потом распространять свои проги…? Еще один вопрос: у меня будет прога с БД одна и та же, но в разных компах и разными данными, и как слить данные с других на один, там же индексы будут одинаковыми хотя данные разные??? Пожалуйста ответьте мне, для повышения моего уровня знаний. P.S. как можно поменять здесь(Delphi.int.ru) свой логин? Вопрос профессионалам: За какое время Вы стали профессионалами? Вопрос задал: Сагынов Байсак Найсабекович
a> (статус: Посетитель) 1. Отвечает эксперт: Knjazev Здравствуйте, Сагынов Байсак Найсабекович! Ответ отправил: Knjazev (статус: 3-ий класс) 2. Отвечает эксперт: Вадим К Итак, начнём по порядку. Лучше использовать ADO. Причин тому очень много Ответ отправил: Вадим К (статус: Магистр) Вопрос # 303 Раздел: Delphi » Программирование баз данных (БД) Здравствуйте уважаемые эксперты! Вопрос задал: Кисель Вадим (статус: Посетитель) 1. Отвечает эксперт: Alex Van Glukhman Здравствуйте, Кисель Вадим! Ответ отправил: Alex Van Glukhman (статус: 7-ой класс) Вопрос # 304 Раздел: Delphi » Работа с компонентами и библиотеками Я хочу задать такой вопрос? Вопрос задал: Толков Геннадий Викторович (статус: Посетитель) 1. Отвечает эксперт: Роман Здравствуйте, Толков Геннадий Викторович!По поводу прозрачности:как вариант можно сделать так-помастить на форму компонент Shape,установить Align:=alClient,Color-любой неиспользуеиый в программе,например clMaroon.У формы установить TransparentColor:=true,TransparentColorValue такой-же как и у Shape,BorderStyle:=bsNone.Компилируем - все компоненты на форме будут непрозрачными,а форма будет невидна.Также привожу код (автор Григорьев Антон)адресс сайта не помню:( ,там все откоментировано,форма
будет полупрозрачной с заданым Alpha и цветом. Приложение:
Ответ отправил: Роман (статус: 5-ый класс) Вопрос # 305 Раздел: Delphi » Программирование баз данных (БД) Всем доброго времени суток. Вопрос задал: Илья Бабаков (статус: Посетитель) 1. Отвечает эксперт: Вадим К А как таблица представлена у вас? если это с базы данных(или Excel) - тогда нет проблем. А вот если это в виде текста, тогда надо писать парсер текста и вытягивать данные. Так как у вас даже нет намёка на формат данных, я не могу вам набросать код. Ответ отправил: Вадим К (статус: Магистр) Вопрос # 306 Раздел: Delphi » Взаимодействие с Windows Доброго времени суток. Вопрос задал: Илья Бабаков (статус: Посетитель) 1. Отвечает эксперт: Роман Здравствуйте, Илья Бабаков!Чтобы справка была доступна в программе, нужно указать программе на файл .hlp. Самый простой способ размещения файла справки - в той же папке, где находится исполняемый файл. Определить для приложения файл справки можно так: открыв проект (приложения) в Delphi и выбрав меню "Project" -> "Options" -> "Application", вписать название файла справки в поле ввода "Help file". При этом нужно указать название файла без пути. Когда
WinHelp пытается найти справочный файл, одна из просматриваемых директорий - та, где расположен исполняемый файл программы. Другой способ - в обработчик события OnCreate главной формы программы вставить строку: Ответ отправил: Роман (статус: 5-ый класс) 2. Отвечает эксперт: min@y™ В приложении - компонент для работы с СНМ-файлами. Нарыл где-то в интернете, давно. Приложение:
Ответ отправил: min@y™ (статус: Студент) Вопрос # 307 Раздел: Delphi » Работа с файловой системой Как загрузить в приложение часть HTML документа, ограниченную определёнными тегами? Вопрос задал: Иван (статус: Посетитель) 1. Отвечает эксперт: min@y™ А что тут такого? Надо пропарсить HTML-код, скопировать нужный кусок и отобразить. Могу написать пример под конкретные условия задачи. Ответ отправил: min@y™ (статус: Студент) Вопрос # 308 Раздел: Delphi » Работа с компонентами и библиотеками Здравствуйте.Мой вопрос под номером 304.Мне не сильно понятно как мне на форму положить свою(допустим круглую)кнопку.Я нарисовал её в PhotoShop с расширением *.png.Как мне кинуть её на форму.Если можно поподробнее.Заранее благодарен. Вопрос задал: Толков Геннадий Викторович (статус: Посетитель) 1. Отвечает эксперт: min@y™ Сохрани свой рисунок в формате bmp или jpeg. Ответ отправил: min@y™ (статус: Студент) 2. Отвечает эксперт: Роман Здравствуйте, Толков Геннадий Викторович!Если вы используете такой подход то по этому адрессу http://www.delphi.int.ru/?name=components&grp=buttons есть кмпонент ButtonComps - 5 симпатичных кнопочек с возможностью полного изменения внешнего вида.Одна из них - ImageButton - какраз и позволяет использовать использовать свои изображения,но в формате bmp.Правда передать на неё фокус нельзя...Или как педлогает min@y™. Ответ отправил: Роман (статус: 5-ый класс) Вопрос # 309 Добрый день,уважаемые экперты! Если не затруднит,не могли бы вы мне подсказать где можно откопать исходник программы (соответственно на Delphi) типа CLCL или Memorizer - менеджера буфера обмена. Хочу разобраться как это делается и своять свою. Заранее спасибо и извините, что занимаю ваше драгоценное время такой ерундой. Вопрос задал: Нахушев Азамат Владимирович (статус: 1-ый
класс) 1. Отвечает эксперт: Вадим К А что же здесь искать? для начала стоит усвоить следующее - подключаем модуль ClpBrd (кажеться так) и у нас появляется переменная Clipboard(обявлять её не надо). Так как у буфере может храниться и текст и изображение и что угодно, то буфер ещё хранит указание на формат. Они (форматы) обявлены с префиксом CF_. Например CF_TEXT - обычный текст. Буфер умеет преобразовывать некоторые форматы (например HTML в RTF). Запросить/установить текст можно с помощью свойства AsText. Для других типов есть свои
методы. Ответ отправил: Вадим К (статус: Магистр) 2. Отвечает эксперт: Роман Здравствуйте, Нахушев Азамат Владимирович!Есть книжка М.Фленова "Программирование в Delphi глазама хакера",там всё хорошо описано.Точно есть по этой ссылке-проверял(!) http://www.programmersclub.ru/files/book_delphi_haker.rar Ответ отправил: Роман (статус: 5-ый класс) Вопрос # 310 Раздел: Delphi » Работа с компонентами и библиотеками TDBEdit и есть таблица типа paradox подскажиет как мне сделать так, чтобы через определенный интервал времени значение в поле TDBEdit добавлялось в указанную мною колонку...соответствующей таблицы. Зараннее благодарен Алексей Вопрос задал: Шуваев Алексей Сергеевич (статус: Посетитель) 1. Отвечает эксперт: Вадим К А как по кнопке добавлятьзнаем? Ответ отправил: Вадим К (статус: Магистр) » Найти все предыдущие уроки можно на www.delphi.int.ru в разделе "Статьи". Последние 3 урока: Подводим промежуточный итог
Прежде чем продолжить изучение языка Pascal, следует подвести итог и вспомнить всё, что было сказано ранее. Всё, что сказано ниже, является кратким сборником всех предыдущих уроков. Переменные Переменная - это ячейка памяти, которой присвоено некоторое имя и это имя используется для доступа к данным, расположенным в данной ячейке. Для каждой переменной задаётся тип данных - диапазон всех возможных значений для данной переменной. Примеры типов данных - Integer (целое число), Real (вещественное число), Boolean (логическое значение), String (строка, последовательность символов), Char (один символ) и др. Значения переменным присваиваются непосредственно в процессе выполнения программы. Делается это с помощью знака присвоения - ":=" ("переменная := значение"). Каждая переменная перед использованием должна быть описана в разделе описания с помощью ключевого слова VAR ("VAR переменная : тип данных"). Частным случаем переменных являются константы. К онстанты - это переменные, значения которых не меняются в процессе выполнения программы. Константы описываются словом CONST ("CONST имя константы = значение"). Тип данных при описании констант простых типов данных можно опускать (например, запись "CONST g: Real = 9.8" эквивалентна записи "CONST g = 9.8"). Одной из встроенных констант является число "пи" - PI. Базовые конструкции Раздел описаний - это то место в программе, где описываются все используемые переменные, константы (а также метки, подпрограммы, типы данных и пр.).
Блок BEGIN .. END служит для группировки нескольких команд. Особенно хорошо это будет проиллюстрировано при записи условного оператора (см. далее). Условный оператор Условный оператор служит для создания ветвлений в программе, т.е. когда в зависимости от какого-либо условия выполняется та или иная последовательность команд. Условный оператор записывается с помощью ключевых слов IF .. THEN, между которыми указывается некоторое условие, логическое выражение, которое может быть либо истиной (True), либо ложью (False). Команды, следующие за условным оператором, выполняются только в том случае, когда логическое выражение является истиной. if {условие} then
В случае, если требуется выполнить несколько команд в зависимости от выполнения условия, следует заключить эти команды в BEGIN .. END: if {условие} then
В приведённом примере команды будут выполнены только в том случае, если условие истинно. Условный оператор позволяет указать команды и для того случая, когда условие не выполнилось: if {условие} then
Обратите внимание, что перед ключевым словом ELSE разделитель команд ";" не ставится. Не всегда использование конструкции IF .. THEN .. ELSE удобно. Иногда требуется выполнить различные команды в зависимости от значения переменной, причём значений может быть много. В этом случае можно применить оператор выбора, именуемый CASE. Оператору выбора сообщается переменная-селектор (тип данных должен быть обязательно перечислимый - число, символ и т.п.), а затем перечисляются значения, которые может принимать переменная и для каждого из них указывается соответствующий набор команд. В случае, если значение переменной не совпало ни с одной из указанных, выполняется набор команд, указанных после слова ELSE (хотя этот блок не является обязательным). case {переменная-селектор} of
Логические выражения Логические выражения - выражения, которые могут быть либо истинными, либо ложными. Соответствующий тип данных (логический) - Boolean (значения True и False). Логические выражения, к примеру, указываются при записи условного оператора IF. Над логическими выражения можно проводить некоторые операции: При записи сложных логических выражений простые условия следует заключать в скобки, так как они имеют более низкий приоритет. Функции Функции - заранее определённые наборы команд, направленные на получение какого-либо значения. Функция может иметь входные параметры - аргументы, которые используются при вычислении результирующего выражения. Входных параметров у функции может и не быть. Функцию можно вызывать по её имени. Значение, возвращённое функцией, можно присвоить какой-либо переменной, тип данных которой совпадает с типом данных результата функции, либо использовать в каком-либо выражении или даже в качестве входного параметра другой функции. В Delphi встроено огромное количество функций. Дополнительные функции для математических расчётов содержатся в модуле Math. Чтобы подключить этот модуль, нужно добавить в раздел uses его имя. Случайные числа Случайные числа полезно применять при моделировании каких-либо процессов, которые могут протекать при различных условиях. Также случайные числа часто применяются в играх для создания случайного варианта игры (например, расклад карточного пасьянса). Ввод и вывод Чтобы связать программную часть приложения и его визуальную составляющую, необходим механизм взаимодействия визуальных объектов внутренней структуры программы. Для того, чтобы получить какие-либо данные от визуальных элементов (например, полей ввода), необходимо обратиться к соответствующим свойствам этих компонентов. При этом необходимо следить за тем, чтобы типы переносимых данных совпадали. Для конвертирования чисел в текстовые строки и обратно используются следующие функции: Например, если требуется получить значение, введённое в текстовое поле Edit1 и записать его в переменную A типа Integer, следует написать так: A:=StrToInt(Edit1.Text); Для ввода чисел можно использовать текстовое поле TEdit (страница Standard), бегунок TTrackBar (страница Win32), поле с кнопками-стрелками TSpinEdit (Samples) и др. Для ввода текстовых строк небольшой длины обычно используется TEdit, для ввода больших текстов - TMemo (Standard) или TRichEdit (Win32). Также удобен ввод с помощью диалогового окна, создаваемого функцией InputBox(). Для вывода данных можно использовать любые из компонент - например текстовую метку TLabel или то же текстовое поле TEdit. Очень часто удобно выводить данные в виде диалоговых окон - с помощью функций ShowMessage() и MessageDlg(). Заключение В данном уроке были кратко изложены темы, затронутые в предыдущих уроках - объявление переменных и присвоение им значений, использование констант, базовые конструкции языка Pascal, условный оператор и оператор выбора, формирование логических выражений, использование готовых функций, применение генератора случайных чисел и способы ввода и вывода данных. Всё это является базой для дальнейшего изучения языка Pascal и объектно-ориентированной среды Delphi. Оцените данный урок (1 - плохо, ..., 5 - отлично):
-1- -2- -3- -4- -5-. Комментарии в тексте письма приветствуются.
Самые популярные статьи на сайте: ∙ Создание непрямоугольных форм в Delphi Сохранение данных приложения и пользователя
Статья-оригинал: delphi.about.com Получение специальных каталогов, используя DelphiКогда ваше Delphi-приложение нуждается в том, чтобы сохранить некоторую информацию на жёсткий диск пользователя, Вы должны быть осторожны, и должны разделять сохранение пользовательских данных, настроек для пользователя и настроек для компьютера. Например, в Windows для сохранения специфических для приложения файлов, таких как INI-файлы, файлы состояния программы, временные файлы и т.п., должен быть использован каталог "Application Data". Крайне нежелательно использовать жёстко прописанные пути вроде "C:\Program Files". При сохранении файлов в этом каталоге, приложение вряд ли будет корректно работать в других версиях Windows, потому что этот путь может быть изменён в следующих версиях Windows, либо пользователь может установить ОС на другой диск. К тому же, Windows Vista может не дать доступ ко многим каталогам. Даже пользователю с правами администратора. WinAPI-функция SHGetFolderPathФункция SHGetFolderPath определенна в модуле SHFolder. SHGetFolderPath возвращает полный путь к указанному специальному каталогу по его идентификатору. Ниже приведена функция-обёртка для SHGetFolderPath, чтобы было проще получить стандартные каталоги (для всех пользователей или только для текущего пользователя). uses SHFolder; ... function GetSpecialFolderPath(folder : integer) : string; const SHGFP_TYPE_CURRENT = 0; var path: array [0..MAX_PATH] of char; begin if SUCCEEDED(SHGetFolderPath(0,folder,0,SHGFP_TYPE_CURRENT,@path[0])) then Result := path else Result := ''; end; Теперь создадим приложение для использования функции SHGetFolderPath:
//RadioGroup1 OnClick procedure TForm1.RadioGroup1Click(Sender: TObject); var index : integer; specialFolder : integer; begin if RadioGroup1.ItemIndex = -1 then Exit; index := RadioGroup1.ItemIndex; case index of //[Current User]My Documents 0: specialFolder := CSIDL_PERSONAL; //All UsersApplication Data 1: specialFolder := CSIDL_COMMON_APPDATA; //[User Specific]Application Data 2: specialFolder := CSIDL_LOCAL_APPDATA; //Program Files 3: specialFolder := CSIDL_PROGRAM_FILES; //All UsersDocuments 4: specialFolder := CSIDL_COMMON_DOCUMENTS; end; Label1.Caption := GetSpecialFolderPath(specialFolder) ; end; Примечание: "[Текущий пользователь]" - это имя пользователя, сеанс которого в данный момент активен в Windows. Функция SHGetFolderPath является более расширенным вариантом функции SHGetSpecialFolderPath. Программа не должна сохранять свою информацию (временные файлы, пользовательские настройки, файлы конфигурации приложения, и т.д.) в каталоге My Documents (Мои документы), либо в каталоге самого приложения (т.е. в одном из подкаталогов Program Files). Следует использовать специальный каталог в Application Data, отведённый именно для Вашего приложения. Как правило, его имя совпадает с именем каталога программы в Program Files). Всегда создавайте подкаталог только в тех путях, которые возвращает функция SHGetFolderPath! Как правило, каталог создаётся такой: "\Application Data\Название компании\Название продукта\Версия продукта". Пример программы с использованием функции, описанной в статье, можно загрузить здесь. Разделы: Статьи | Компоненты | Plug-in's | Документация | Исходники | Программы | Игры | Изображения Уважаемые читатели! Отправляйте полезные компоненты/модули, исходники, собственные программы/игры, документацию - книги, учебники и они будут размещены на сайте.
Ведущий раздела: Bruder Не будите в программисте зверя - Давай, Васек, стремянку, щас здесь долбить будем. (Долбят стену, создавая ужасный грохот. Кажется, что все здание вот-вот развалится. В дыре неожиданно раздается взрыв, вспышка, гаснет свет) В темноте: - Даааа, Вася, накаркал ты! В темноте коридора раздаются неуверенные шаги и уверенный, многоэтажный мат тонким голоском. Строители настораживаются. Дверь вылетает от удара ноги, на пороге стоит что-то такое очкастое, волосатое и щуплое, вооруженное фанариком. От злости свет все время дергается. - Уроды! - ругается очкарик. Вася, держась за ухо: - Ни за что! Ни за какие коврижки! :)) Присылайте компьютерные анекдоты, рассказы и истории по этой ссылке и они будут опубликованы в ближайших выпусках рассылки. WWW: http://www.delphi.int.ru/ E-mail: admin@delphi.int.ru; support@delphi.int.ru
Архив рассылки: http://subscribe.ru/archive/comp.soft.prog.delphifaq Ведущий рассылки: Ерёмин Андрей
|
В избранное | ||