Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 270

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
Использую библиотеку bsftriald7, но не получается skin подсоединить к форме запроса, выходит стандартная форма с остальными не смотрится. Кто знает подскажите пожалуйста! Использую такой код:
if InputQuery('Добавить','Введите количество ',st) then
begin
DataModule3.ADOTable3Kol.AsString:=st;
st:='';

Geny Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задала: 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


Мини-форум вопроса

Мини-форум пуст.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:56
Выполнено за 0.03 сек.