Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 387
от 16.02.2006, 08:30

Администратор:Калашников О.А.
В рассылке:Подписчиков: 251, Экспертов: 55
В номере:Вопросов: 4, Ответов: 11


Вопрос № 35166: Здравствуйте уважаемые товарищи эксперты! У меня к вам такой вопрос. Есть таблица в которой находятся результаты запроса. В ней имеются три поля, два из которых целочисленные и одно символьное, при чем одно из целочисленных скрытое. Внизу под таблице...
Вопрос № 35176: Здраствуйте!!! Как "вкалбасить"(Хе-хе)/вставить свою панельку в експлорер/explorer и/или Internet explorer ! Как узнать какой открыт адресс в експлорере! Тоесть указан в Адрессной строке! Тоесть сделать кнопку на панели эксплоре...
Вопрос № 35178: Как перехватить и обнулить, тоесть запретить нажатия системных комбинаций клавиш! Таких как Alt+Tab,Ctrl+Esc, Alt+F4,Win, и т.д. и т.п. И чтобы опко было выше всех (по оси Z), впереди всех!...
Вопрос № 35180: Как создать обработчик OnClick для динамически созданного Bitbtn. Создать-то создал, а вот как обрабатывать события - незнаю!...

Вопрос № 35.166
Здравствуйте уважаемые товарищи эксперты! У меня к вам такой вопрос. Есть таблица в которой находятся результаты запроса. В ней имеются три поля, два из которых целочисленные и одно символьное, при чем одно из целочисленных скрытое. Внизу под таблицей есть компонет TEdit в котором я не знаю как обработать событие OnChange для того чтобы у меня отфильтровывались записи в таблице. При чем нужно вводить только целые числа. Вопрос в том как организовать фильтр и как получить доступ к конкретной ячейке таблицы по результату фильтра.

Огромное спасибо...
Отправлен: 10.02.2006, 20:26
Вопрос задал: Кныш Александр Александрович (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Татьяна
Здравствуйте, Кныш Александр Александрович!
А почему бы по событию onChange не формировать Sql-запрос с условием по нужному вам полю?
---------
Нет ничего невозможного!!!
Ответ отправила: Татьяна (статус: Студент)
Отправлен: 10.02.2006, 21:32

Отвечает: sir henry
Здравствуйте, Кныш Александр Александрович!
Судя по контексту вопроса, Вам нужен не фильтр, а скорее поиск.
В OnChange задаете процедуру Locate() с содержимым Edit'а и тогда курсор таблицы остановится на той записи, где это значение нахится.
Если же Вам нужен именно фильтр, то в OnChange его применять нельзя. У Вас программа сойдет с ума, пытаясь построить фильтр после каждой буковки Edita. Лучше это сделать в событии OnKeyDown, когда условие фильтра уже готово и Вы нажали ENTER.
Простые фильтры задаются в свойстве таблицы Filter. Но Вам это не подойдет, т.к. туда нельзя вносить названия переменных. Поэтому условие фильтрации нужно записать в событии OnFilterRecord, где может быть все что угодно, а сама фильтрация осуществлятся переводом свойства Filtered в True.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 11.02.2006, 06:55


Вопрос № 35.176
Здраствуйте!!!
Как "вкалбасить"(Хе-хе)/вставить свою панельку в експлорер/explorer и/или Internet explorer !
Как узнать какой открыт адресс в експлорере! Тоесть указан в Адрессной строке!
Тоесть сделать кнопку на панели эксплорера, и при нажатии моей программе передавался адресс открытого ресурса или путь!!!
Отправлен: 10.02.2006, 23:05
Вопрос задал: chikanok (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Slava
Здравствуйте, chikanok!
Ниже код для создание кнопки на панели в IE, еще ниже для опредиления url в браузере.

p.s. Есть еще функция для того, что бы найти окно Internet Explorer, и захватить из него текущий URL, находящийся в поле адреса IE. Если надо напиши мне.

Приложение:

Ответ отправил: Slava (статус: 9-ый класс)
Отправлен: 11.02.2006, 03:44

Отвечает: Diman_A
Здравствуйте, chikanok!
Интеграция в IE.
Комментарии:
ButtonText = Всплывающая подсказка к кнопке
MenuText = Текст, который будет использован для пункта в меню "Сервис"
MenuStatusbar = *Ignore*
CLSID = Ваш уникальный classID. Для создания нового CLSID (для каждой кнопки) можно использовать GUIDTOSTRING.
Default Visible := Показать ей.
Exec := Путь к Вашей программе.
Hoticon := иконка из shell32.dll когда мышка находится над кнопкой
Icon := иконка из shell32.dll
Вожможно, после этого иконка не будет стоять на панели, но ее моно будет добавить в настройке панели инструментов IE.
procedure CreateExplorerButton;
const
TagID = '{10954C80-4F0F-11d3-B17C-00C0DFE39736}';
var
Reg: TRegistry;
ProgramPath: string;
RegKeyPath: string;
begin
ProgramPath := application.ExeName;
Reg := TRegistry.Create;
try
with Reg do
begin
RootKey := HKEY_LOCAL_MACHINE;
RegKeyPath := 'SoftwareMicrosoftInternet ExplorerExtensions';
OpenKey(RegKeyPath + TagID, True);
WriteString('ButtonText', 'Your program Button text');
WriteString('MenuText', 'Your program Menu text');
WriteString('MenuStatusBar', 'Run Script');
WriteString('ClSid', '{1FBA04EE-3024-11d2-8F1F-0000F87ABD16}');
WriteString('Default Visible', 'Yes');
WriteString('Exec', ProgramPath);
WriteString('HotIcon', ',4');
WriteString('Icon', ',4');
end
finally
Reg.CloseKey;
Reg.Free;
end;
end;
Ответ отправил: Diman_A (статус: 5-ый класс)
Отправлен: 11.02.2006, 09:51


Вопрос № 35.178
Как перехватить и обнулить, тоесть запретить нажатия системных комбинаций клавиш! Таких как Alt+Tab,Ctrl+Esc, Alt+F4,Win, и т.д. и т.п.
И чтобы опко было выше всех (по оси Z), впереди всех!
Отправлен: 10.02.2006, 23:15
Вопрос задал: chikanok (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Leshiy2006
Здравствуйте, chikanok!
uses ...,WinProcs;

var
i:integer

.....

begin
SystemParametersInfo( SPI_SETFASTTASKSWITCH, 1, @i, 0);
end;
Ответ отправил: Leshiy2006 (статус: 1-ый класс)
Отправлен: 10.02.2006, 23:39

Отвечает: Татьяна
Здравствуйте, chikanok!
Для перехвата клавиш, скорее всего нужны будут хуки (информацию о них вообщем-то можно будет найти в интернете, если не найдете, пишите в почту, вышлю вам маленькое приложение)
Что касается сделать окно выше всех, то можно
1) если это ваше окно, и оно главное в приложении (для дельфи это важно), то используя свойство formstyle - установить fsStayonTop
2) используя апишку setWindowPos примерно так
SetWindowPos(hndl, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE)
где hndl - хэндл вашего окна
вообще говоря можете посмотреть справку по этой функции, думаю она не раз вам еще пригодится
---------
Нет ничего невозможного!!!
Ответ отправила: Татьяна (статус: Студент)
Отправлен: 12.02.2006, 16:07


Вопрос № 35.180
Как создать обработчик OnClick для динамически созданного Bitbtn.
Создать-то создал, а вот как обрабатывать события - незнаю!
Отправлен: 11.02.2006, 00:08
Вопрос задал: REFERI (статус: Практикант)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Jadd
Здравствуйте, REFERI!
Да очень просто. Пишешь свой обработчик. Примерно так:

procedure MyOnClick(Sender: TObject);
begin
//your code
end;

а дальше при создании и инициализации объекта кнопки пишешь:
MyButton.OnClick := MyOnClick;

Вот и все. Теперь при нажатии на кнобу будет работать твой хэндлер. Удачи.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Специалист)
Отправлен: 11.02.2006, 00:13
Оценка за ответ: 5
Комментарий оценки:
Спасибо!

Отвечает: Ataman N. N.
Здравствуйте, REFERI!
Для созданной кнопки пишите BitBtn.OnClick := MyOnCklick;
Процедура MyOnCklick описываеться так
procedure MyOnClick(Sender: TObject)
Вот и все.
Ответ отправил: Ataman N. N. (статус: 6-ой класс)
Отправлен: 11.02.2006, 02:29

Отвечает: sir henry
Здравствуйте, REFERI!
Допустим Вы написали какую-то процедуру по обработке клика с названием ClickClick.
Тогда просто присваиваете событию OnClick кнопки Вашу процедуру:
BitBtn1.OnClick:=ClickClick;
Ответ отправил: sir henry (статус: Академик)
Отправлен: 11.02.2006, 07:01

Отвечает: Diman_A
Здравствуйте, REFERI!
ВОт программа, которая при создании формы динамически создает на ней кнопку и обрабатывает ее нажатие в процедуре RunTimeButtonClick.

Приложение:

Ответ отправил: Diman_A (статус: 5-ый класс)
Отправлен: 11.02.2006, 13:28

Отвечает: Leshiy2006
Здравствуйте, REFERI! Создаете процедуру Обработки в разделе private или
public
далее после создания кнопки пишете:
MyButton.OnClick :=<Имя процедуры обработки>;
//Это добавление кнопки в массив контролов формы !
self.InsertControl(MyButton);
Удачи!

Ответ отправил: Leshiy2006 (статус: 1-ый класс)
Отправлен: 11.02.2006, 22:46


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.14 (бета) от 09.02.2006
Яндекс Rambler's Top100

В избранное