Вопрос № 93159: Доброго времени. Здравствуйте. У меня такой вопрос?
В базе данных нет ключевого поля но в таблице DBGrid куда заносятся данные, хотелось бы чтобы "Списки"(например ФИО) устанавливались в алфавитном порядке. Спасибо, за ранее....Вопрос № 93197: Как получить позицию компонента (X и Y)
просто хочу сделать, чтобы при нажатии накнопку открывалось PopUpMenu сразу под кнопкой - не зависимо в каком месте экрана расположена форма....Вопрос № 93220: Здравствуйте
Вот такая проблемка у меня
Есть PageControl
на нем несколько TabShet
Как сделать, чтобы при клике колесиком мыши по заголовку закрывался тот, по которому кликнули (ну в браузере Operа еще так сделано)
<...
Вопрос № 93.159
Доброго времени. Здравствуйте. У меня такой вопрос?
В базе данных нет ключевого поля но в таблице DBGrid куда заносятся данные, хотелось бы чтобы "Списки"(например ФИО) устанавливались в алфавитном порядке. Спасибо, за ранее.
Отвечает: Dragon
Здравствуйте, Веретенников Игорь Викторович!
Table1.IndexFieldNames:='Наименование поля, по которому нужна сортировка';
Ответ отправил: Dragon (статус: 2-ой класс)
Ответ отправлен: 28.06.2007, 08:18
Отвечает: Градов Юрий Михайлович
Здравствуйте, Веретенников Игорь Викторович!
Вам необходимо в базу данных добавить индексное поле, для этого в пакете Delphi есть утилита DataBase DeskTop. Запускате программу, затем Tools>Utilities>Restructure... и открываете Вашу базу данных. Выбираете Fiels Name и в Properties>Выпадающий список>Выбрать Indexes>Define и выбираете поле, по которому хотите осуществить сортировку. Сохраняете базу. Далее в Delphi открывате Вашу программу и указываете:
Table1.IndexFieldNames:='Наименование поля, по которому нужна сортировка'; Если Вам необходимо сортировать сразу по нескольким полям, то необходимо в DataBase DeskTop>Table Properties>Выпадающий список>Выбрать Secondary Index>Define и добавить в него поля, по которым Вы хотите осуществить сортировку (например Name, FName, SName) и ввести название этого индексного поля (например ToName).
--------- Глаза боятся - руки делают!
Ответ отправил: Градов Юрий Михайлович (статус: Студент)
Ответ отправлен: 28.06.2007, 09:49
Отвечает: Виктор Пырлик
Здравствуйте, Веретенников Игорь Викторович!
Можно оформить в виде запроса (использовать TQuery, TADOQuery, TIBQuery…) в виде:
SELECT * FROM TABL ORDER BY FIO
Если используется технология ADO, то есть замечательное свойство sort
ADOQuery1.Sort := 'LastName ASC, DateDue DESC'
ADOQuery1->Sort = "LastName ASC, DateDue DESC"
Также можно использовать индекс
--------- Если ничего не помогло - надо читать инструкцию
Ответ отправил: Виктор Пырлик (статус: 4-ый класс)
Ответ отправлен: 28.06.2007, 15:54
Вопрос № 93.197
Как получить позицию компонента (X и Y)
просто хочу сделать, чтобы при нажатии накнопку открывалось PopUpMenu сразу под кнопкой - не зависимо в каком месте экрана расположена форма.
Отправлен: 28.06.2007, 13:11
Вопрос задал: source (статус: 1-ый класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: Omickron
Здравствуйте, source!
Попробуйте так: (вариант 1)
Либо можно использовать: (вариант 2)
Приложение:
Ответ отправил: Omickron (статус: 3-ий класс)
Ответ отправлен: 28.06.2007, 13:28
Отвечает: Dragon
Здравствуйте, source!
procedure TForm1.Button1Click(Sender: TObject);
begin
PopupMenu1.Popup(mouse.CursorPos.X,mouse.CursorPos.Y);
end;
Ответ отправил: Dragon (статус: 2-ой класс)
Ответ отправлен: 28.06.2007, 13:31
Вопрос № 93.220
Здравствуйте
Вот такая проблемка у меня
Есть PageControl
на нем несколько TabShet
Как сделать, чтобы при клике колесиком мыши по заголовку закрывался тот, по которому кликнули (ну в браузере Operа еще так сделано)
procedure TForm1.PageControl1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button=mbMiddle then
begin
?????????????????????????????????????
end;
end;
Отправлен: 28.06.2007, 15:16
Вопрос задал: source (статус: 1-ый класс)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Ответ отправил: Omickron (статус: 3-ий класс)
Ответ отправлен: 28.06.2007, 15:26
Отвечает: Sandy
Здравствуйте, source!
В данном случае ????????? эквивалентно:
PageControl1.ActivePageIndex := PageControl1.IndexOfTabAt(X, Y);
Ответ отправил: Sandy (статус: 5-ый класс)
Ответ отправлен: 28.06.2007, 15:26 Оценка за ответ: 5 Комментарий оценки: спасибо за PageControl1.IndexOfTabAt(X, Y);
Отвечает: Устинов С.Е.
Здравствуйте, source!
Ну, например вот так:
if Button=mbMiddle then
begin
PageControl1.Pages[PageControl1.IndexOfTabAt(x,y)].Free;
end;