-Метка 'До окончания осталось ....' в вашем приложении. -Как отсортировать последовательный список в базе данных / Как вставить запись в середину списка. -Размещение данных в EXE. -Как узнать IP адрес. -Как отображать ComboBox в текущей позиции курсора TMemo. -Нужно написать прогу для электронной бегущей строки. -Преобразование ICO в BMP. -Работа с массивами в Delphi. -Работа с Excel. -Как узнать имя объекта, вызвавшего событие ? Нередко один и тот же обработчик применяется для реакции на события различных компонентов. -Как при завершении работы приложения вернуть код. Иными словами - код возврата из функции WinMain. -Выделение строки в DbGrid при нажатии Shift. -Как загрузить в StringGrid графический файл? -О вреде глобальных переменных сказано много, одна из распространнех проблем, из за которой часто возникают ошибки, это переменные форм. -Текстовая печать из программы на Delphi (копия TMemo). -Как найти далее при помощи pos? (аналог найти далее в блокноте windows-а)? -Подсветка синтаксиса. -Подсветить HTML теги в RichEdit. -Как в Excel из Delphi записать макрос. -Как использовать TAPI для голосового звонка? -Как поместить курсор в определенную позицию editа и подобных ему элементов управления? -Как найти все компьютеры в рабочей группе? -Сканирование доменов. -Получить список пользователей, подключенных к сети. -Преобразование IPAddres(LongInt) в привычное xxx.xxx.xxx.xxx. -Как получить список файлов со всеми подкаталогами. -Получаем характеристики экрана через объект Screen. -Алгоритм распознования кодировки. -Эти программы создают горизонтальную полосу прокрутки в ListBox так, что бы все строки компонента умещались. -Включение и выключение устройств ввода/вывода из программы на Delphi. -DBGrid и Memo-поля. -Как вставить содержимое файла в текущую позицию курсора в компонете TMemo? -Любую кодировку выяснить так просто нельзя.
-Принцип смены кодировок (Ansi<>OEM). А как можно определить кодировку у текста? (программно). -что мне не нравится в Richedit - это то, что он сам меняет язык при перемещении по тексту, не смотря, что вы включили нужный язык, при переходе на участок текста, набраный другим языком. -Как распечатать Word'овский файлик не открывая Word? -Необходимо подсчитать кол-во карточек для каждого департамента. Как это сделать пошустрее. -Поиск подстроки в строке с помощью хеш-функции. -Помогите с функцией определения даты начала недели. -Меня интересует возможность подсчета суммы по таблицам, которые уже находятся на форме. -А как сохранить изображение в файле весте с лэйблами? -INI-файлы (чтение/запись). -Добавление строки к файлу. -Работа с кодовыми страницами. -Автоопределение кодировки ANSI/OEM. -Корректно определить версию Windows. -Определить, над какой буквой стоит указатель мыши в TRichEdit. -Позиция курсора в TMemo, TRichedit. -Перекодировка текста из Win кодировки в КОИ-8 и обратно. -Сохранение текста RichEdit в базе данных. -Можно-ли получить номер верхней видимой строки в TMemo? -Как сделать окошко подсказки в редакторе как дельфи по CTRL-J? -функция замены символов в строке. -Исправление загрузки текста RTF через поток Delphi 3. -Чтение текста RichEdit из базы данных. -На уровне формы клавиша tab обычно обрабатывается Windows. -Работа с Word через OLE Я думаю, пример красноречивее пяти листов словоблудия.
Delphi и ресурсы компьютера.
-Исключение неправильных адресов E-Mail. -Работа с принтером. -Можно-ли получить номер верхней видимой строки в TMemo? -Как узнать, какой из стилей оформления используется на машине? -Получение списка окон. -Получение списка процессов. -Как можно удалить все подкаталоги (с файлами) внутри заданного каталога. -Не могу понять как юзать TThread. -SQL. Можно ли в запросе вычислить сумму значений в столбце. -Затенить кнопку закрыть в заголовке формы. -Переход к концу TRichEdit. -Как получить доступ к иконкам десктопа? -Можно ли динамически менять какая форма считается главной в приложении во время работы программы? -Посчитать строку с формулой. -Как узнать автора документа word ? -Как опеделить состояние списка ComboBox, выпал/скрыт? -Привести к верхнему регистру некоторые поля строчного типа встроенными средствами самого Акцесса. -Быстрый способ поиска строки в текстовом файле. -Как получить информацию о БИОСе? -как вытащить или изменить дату и время создания, изменения, открытия файла.
-Как узнать IP адрес. -Как скопировать директорию. -Перевести DBgrid в реим редактирования и установить курсор в окошке редактирования в требуемую позицию? -Как вывести список файлов с иконками. -Как сохранить результат запроса в DBF. -Как получить серийный номер жесткого диска. -Как вывести список файлов, как в Проводнике. -Как считать сигнал с микрофона. -Как сделать DLL и потом из него каpтинки гpузить. -Дескриптор окна. -Как на форме отобразить array[1..10,1..10]. -Как в консольном приложении можно задать цвет текста, вывести текст. -Как можно сделать ссылку на почтовый адрес? -Как хранить настройки для программы?
-Подcкажите где взять компонент Grid с возможностью объединять несколько ячеек в одну, как в Exel. -Когда я добавляю обьект в список TStrings как мне его потом уничтожить? -Добавление программы в автозапуск. -Как создать отдельную подсказку (hint) для каждой ячейки StringGrid? -Доступ объекту Oracle: -Электронное письмо или запустить Интернет-Браузер по 'клику' на определенном 'контроле' информации. -Как использовать свои курсоры в программе? -Как получить строку сообщения об ошибке Windows код которой получен функцией GetLastError? -Как получить координаты указателя мыши относительно формы в Дельфи? -Удалить каталог со всем содержимым. -Копирование файлов * *. -Как скопировать все файлы вместе с подкаталогами * * -Как написать очень маленький инсталлятор ? -Создать ярлык можно при помощи данной функции: -Оповещение приложения (или всей системы) о изменении WIN.INI. -Как удалить самого себя ? -Добавление программы в автозапуск. -Удаление файла в корзину. -Добавление ссылки на файл в меню Пуск|Документы. -Установка своего WallPaper для рабочего стола Windows. -Как передать при создании нити (Tthread) ей некоторое значение?
-Как сохранять и загружать file of? Напишите PLZ пример. -Есть бинарное дерево в узлах информация, очень большое дерево порядка 1000 узлов. -Вы не могли бы подсказать, ф-цию, которая имитирует нажатие клавиши с клавиатуры. -Как сохранить и прочитать RTF в/из TBlobField. -Записать в BLOB поле большой текст (более 255). -Узнать размер BLOB-поля. -Запись потока в BLOB-поле. -Определение IP-адреса по домену в Delphi. -Файловые операции с использованием стандартного диалога с анимацией. -Как узнать информацию о системе в Delphi. -Ошибка Token not found. Token :dbo. line number:1. -Файловые операции с использованием стандартного диалога с анимацией. -Подпрограммы управления файлами. -В системе помощи Delphi существует понятие - подпрограммы управления файлами (category File management routines). -Объект Screen создается автоматически и доступен любой вашей программе. -Registry - системный реестр, существующий в Windows. -Удаление пробелов в строке. -Необходимо из определенной директории удалить файлы определенных типов. Т.е., например, из c: emp надо удалить все файлы с расширением *.txt. -Устанавливаем свой WallPaper для Windows. -Отображение полных строк списка при перемещении мыши по списку. -Как получить активный URL из браузера. -Стоит задача импорта данных из одного mdb файла в другой. -Нужно в зависимости от длины поля в таблице, которая копируется в Excel, менять column.width в Excel. -Как узнать местонахождение курсора в TMemo или RichEdit. -Жизнь и смерть копмонентов в RunTime. -Сохранение динамического массива в файл.. [D7, WinXP]. -Перенос данных из Excel в Table [D6, Paradox]. -Как скачать любой URL используя стандартные настройки сети. -Помогите с установкой 'fibplus4702'. -несколько полезных функций, для работы с текстом. -Как вставить в StatusPanel свои компоненты, например ProgressBar? -Как зная логин пользователя получить его имя ? -Работаем со строками. -Как запустить компонент панели управления и как открывать некоторые стандартные системные окна. -Поля печати в ReachEdit. -Как установить соединение с интернетом средствами делфи. -Драйвера баз данных (ADO 2.7).
-Нахождение всех компьютеров в рабочей группе. -Кодировка DB. -Подключение сетевого диска. -Возможно ли сжать базу данных MSAccess, как это делает сам MSAcce [D5]. -Можно ли написать триггер, при записи в таблицу записывались бы данные в таблицу Paradox, и еще как записать в таблицу файл? -Спрятать главную форму. -Мне нужна функция перевода цифр в прописные буквы. Пример 123(Сто двадцать три). -Вставка формул через OLE в Excel из Delphi. -Отправка по Socket-у. -Это специально для незарегистрированных DELPHI_UPDATE. -Вызов диалога открытия файла (API). -Сумма Прописью по Владимиру Яркову. -Русские буквы в Database Desktop 7.0 [D6, Paradox]. -ADOConnection.ConnectionString при переносе проги. [D7, Win95/98, WinXP]. -Требуется, что бы при прокрутке DBGrid по горизонтали первый стобец оставался на месте. -Проблема с определением имени драйвера ODBC [D7, dBase, FoxPro]. -Помогите с Socket. -В примере описывается как программно в Internet Explorer нажать кнопку 'Clear cache'. -Смена обоев рабочего стола. WinXP. -Рассмотрим основные свойства и методы класса TString. -Как добавить горизонтальную полосу прокрутки в TListBox? -Иногда всплывающее меню моего приложения system tray не исчезает когда оно теряет фокус. Как закрыть его? -Подскажите, как можно из Delphi вставить в Excel картинку. -Как скопировать директорию. -Как сохранить в текстовый файл все столбцы TListView используя SaveDialog? -Процедура добавляет строку в TStrings, исключяя добавление уже имеющейся строки. -Получение списка запущенных приложений... -Добавление графических файлов в 'тело' программы... -Как экспортировать таблицу базы данных в ASCII-файл...
-Прога ведёт лог. При запуске прога должна найти последнюю строку. -Подскажите как можно рализовать визуальный (что бы отображался отсчет времени) таймер. -Работа с базами данных с помощью DAO. -Обновить DBLookUpComboBox при скролинге таблицы [D5, Paradox]. -Ячейки DBGrid Как сделать чтобы необходимая ячейка получила фокус ввода ? -Форма, демонстрирующая различные методы создания массива с динамически изменяемым размером. -Управление устройствами через порты. -Установка Interbase. -Как могу я получить Дескриптор Процесса с помощью WinAPI, если известно его название? -Работа с треем. -Как могу я получить Дескриптор Процесса с помощью WinAPI, если известно его название? -Работа с реестром в Delphi. -Привлечение внимания к окну (new).
Перехват нажатия клавиши PrintSreen в Windows, или просто говоря чтобы по нажатии PrintSreen срабатывала некая подпрограмма
мне надо сделаь перехват нажатия клавиши PrintSreen в Windows, или просто говоря чтобы по нажатии PrintSreen срабатывала некая подпрогра, нужно чтобы подпрогра выполнялась один раз при каждом нажатии на клавишу даже если зажать кнопку. Тут небольшой пример. В нем регистрируется HotKey И если будет нажата, то выведется GotIt
Code
type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private declarations } procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY; public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.DFM}
const id_SnapShot = 101;
procedure TForm1.WMHotKey (var Msg : TWMHotKey); begin if Msg.HotKey = id_SnapShot then ShowMessage('GotIt'); end;
procedure TForm1.FormCreate(Sender: TObject); begin RegisterHotKey(Form1.Handle, id_SnapShot, 0, VK_SNAPSHOT); end;
procedure TForm1.FormDestroy(Sender: TObject); begin UnRegisterHotKey (Form1.Handle, id_SnapShot); end;
Мне необходима задержка (по типу Delay'я в Паскале). Может надо использовать Timer?
Code
sleep(count:miliseconds); или таймер Timer1.Interval:=задержка; Timer1.Enabled:=true; Событие OnTimer произойдёт после прохождения интервала. Оно будет происходить, пока Timer1.Enabled:=false
{ Эта процедура составляет и отправляет Email } procedure TMapiControl.Sendmail; var MapiMessage: TMapiMessage; MError: Cardinal; Sender: TMapiRecipDesc; PRecip, Recipients: PMapiRecipDesc; PFiles, Attachments: PMapiFileDesc; i: Integer; AppHandle: THandle; begin { Перво-наперво сохраняем Handle приложения, if not the Component might fail to send the Email or your calling Program gets locked up. } AppHandle := Application.Handle;
{ Нам нужно зарезервировать память для всех получателей } MapiMessage.nRecipCount := FTOAdr.Count + FCCAdr.Count + FBCCAdr.Count; GetMem(Recipients, MapiMessage.nRecipCount * sizeof(TMapiRecipDesc)); try with MapiMessage do begin ulReserved := 0; { Устанавливаем поле Subject: } lpszSubject := PChar(Self.FSubject);
{ У нас много получателей письма: (MAPI_TO) установим для каждого: } if nRecipCount > 0 then begin for i := 1 to FTOAdr.Count do begin PRecip^.ulReserved := 0; PRecip^.ulRecipClass := MAPI_TO; { lpszName should carry the Name like in the contacts or the adress book, I will take the email adress to keep it short: } PRecip^.lpszName := PChar(FTOAdr.Strings[i - 1]); { Если Вы используете этот компонент совместно с Outlook97 или 2000 (не Express версии) , то Вам прийдётся добавить 'SMTP:' в начало каждого (email-) адреса. } PRecip^.lpszAddress := PChar('SMTP:' + FTOAdr.Strings[i - 1]); PRecip^.ulEIDSize := 0; PRecip^.lpEntryID := nil; Inc(PRecip); end;
{ То же самое проделываем с получателями копии письма: (CC, MAPI_CC) } for i := 1 to FCCAdr.Count do begin PRecip^.ulReserved := 0; PRecip^.ulRecipClass := MAPI_CC; PRecip^.lpszName := PChar(FCCAdr.Strings[i - 1]); PRecip^.lpszAddress := PChar('SMTP:' + FCCAdr.Strings[i - 1]); PRecip^.ulEIDSize := 0; PRecip^.lpEntryID := nil; Inc(PRecip); end;
{ ... тоже самое для Bcc: (BCC, MAPI_BCC) } for i := 1 to FBCCAdr.Count do begin PRecip^.ulReserved := 0; PRecip^.ulRecipClass := MAPI_BCC; PRecip^.lpszName := PChar(FBCCAdr.Strings[i - 1]); PRecip^.lpszAddress := PChar('SMTP:' + FBCCAdr.Strings[i - 1]); PRecip^.ulEIDSize := 0; PRecip^.lpEntryID := nil; Inc(PRecip); end; end; lpRecips := Recipients;
{ Теперь обработаем прикреплённые к письму файлы: }
if FAttachedFileName.Count > 0 then begin nFileCount := FAttachedFileName.Count; GetMem(Attachments, MapiMessage.nFileCount * sizeof(TMapiFileDesc));
PFiles := Attachments;
{ Во первых установим отображаемые на экране имена файлов (без пути): } FDisplayFileName.Clear; for i := 0 to FAttachedFileName.Count - 1 do FDisplayFileName.Add(ExtractFileName(FAttachedFileName[i]));
if nFileCount > 0 then begin { Теперь составим структурку для прикреплённого файла: } for i := 1 to FAttachedFileName.Count do begin { Устанавливаем полный путь } Attachments^.lpszPathName := PChar(FAttachedFileName.Strings[i - 1]); { ... и имя, отображаемое на дисплее: } Attachments^.lpszFileName := PChar(FDisplayFileName.Strings[i - 1]); Attachments^.ulReserved := 0; Attachments^.flFlags := 0; { Положение должно быть -1, за разьяснениями обращайтесь в WinApi Help. } Attachments^.nPosition := Cardinal(-1); Attachments^.lpFileType := nil; Inc(Attachments); end; end; lpFiles := PFiles; end else begin nFileCount := 0; lpFiles := nil; end; end;
if FShowDialog then MError := MapiSendMail(0, AppHandle, MapiMessage, MAPI_DIALOG or MAPI_LOGON_UI or MAPI_NEW_SESSION, 0) else MError := MapiSendMail(0, AppHandle, MapiMessage, 0, 0);
case MError of MAPI_E_USER_ABORT: begin if Assigned(FOnUserAbort) then FOnUserAbort(Self); end; SUCCESS_SUCCESS: begin if Assigned(FOnSuccess) then FOnSuccess(Self); end else begin if Assigned(FOnMapiError) then FOnMapiError(Self, MError); end;
end; finally { В заключение освобождаем память } FreeMem(Recipients, MapiMessage.nRecipCount * sizeof(TMapiRecipDesc)); end; end;
Можно ли динамически менять какая форма считается главной в приложении во время работы программы?
Можно, но только во время загрузки приложения. Чтобы сделать это выберите " View-> Project Source" и измените код инициализации приложения, так что порядок создания форм зависил от какого-то условия. Примечание: Вам придется редактировать этот код, если Вы добавите в приложение новые формы.
Code
begin Application.Initialize; if < какое-то условие> then begin Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); end else begin Application.CreateForm(TForm2, Form2); Application.CreateForm(TForm1,Form1); end; end. Application.Run;
Как определить установлен ли на компьютере Word, запустить его и загрузить в него текст из программы?
Пример:
Code
var MsWord: Variant; ... try // Если Word уже запущен MsWord := GetActiveOleObject('Word.Application'); // Взять ссылку на запущенный OLE объект except try // Word не запущен, запустить MsWord := CreateOleObject('Word.Application'); // Создать ссылку на зарегистрированный OLE объект MsWord.Visible := True; except ShowMessage('Не могу запустить Microsoft Word'); Exit; end; end; end; ...
MSWord.Documents.Add; // Создать новый документ MsWord.Selection.Font.Bold := True; // Установить жирный шрифт MsWord.Selection.Font.Size := 12; // установить 12 кегль MsWord.Selection.TypeText('Текст');