|
Вопрос # 4 270/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
Использую библиотеку bsftriald7, но не получается skin подсоединить к форме запроса, выходит стандартная форма с остальными не смотрится. Кто знает подскажите пожалуйста! Использую такой код:
if InputQuery('Добавить','Введите количество ',st) then
begin
DataModule3.ADOTable3Kol.AsString:=st;
st:='';
 |
Вопрос задала: Geny (статус: Посетитель)
Вопрос отправлен: 3 июня 2010, 10:48
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, Geny!
Есть три варианта
- в библиотеке может быть методика, что бы нацепить скин.
- в библиотеке может быть эквивалентная функция.
- написать свой "велосипед".
остановимся на третьем варианте. Это не так сложно и заменитель можно написать.
Делаем. Добавим в проект новую форму, подрегулируем ей размеры, поставим Label1, Edit1, Button1(caption = "Ok", modalResult = mrOk), Button2 (Caption="Отмена", modalResult = mrCancel) (В скобках - это свойства, которые нужно выставить в инспекторе объектов). Ставим другие компоненты по вкусу (скин). Для формы задаем Name MyQueryForm
Дальше делаем форму неавтосоздаваемой. Для этого заходим в свойста проекта (Project->Options...) и на вкладке Forms перемешаем нашу форму с списка AutoCreate в ManualCreate).
Теперь осталось написать собственно саму функцию.
В этом же юните после объявления формы до слова implementation пишем
function MyInputQuery(mCaption:string;prompt:string; var value:string):boolean;
в разделе implementation вписываем реализацию
function MyInputQuery(mCaption:string;prompt:string; var value:string):boolean;
begin
with TMyQueryForm.Create(application) do
try
caption := mCaption;
label1.caption := prompt;
Edit1.text := value;
if ShowModal = mrOk then
value := Edit1.text;
finally
free;
end;
end;
Все, теперь цепляем наш новый юнит к тем, где нам нужен новый бокс (просто добавим имя юнита в список uses нужного) и используем имя MyInputQuery, формат вызова тот же.
Но теперь мы получаем дополнительный плюс - мы можем произвольно модифицировать это окно.
Домашнее задание - самостоятельно настроить форму так, что бы она выглядела как нужно - убрать кнопки "распахивание" и так дальше.
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 3 июня 2010, 11:14
Оценка за ответ: 5
|
Мини-форум вопроса
Мини-форум пуст.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|