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