| 
| 
 | Вопрос # 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
 |  
 Мини-форум вопросаМини-форум пуст. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |