Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2313 • Страница 112 из 116<  1 ... 109  110  111  112  113  114  115  116  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 07.01.2010
дааа, забыл я, как на делфи кодить, за 5 лет :) такой ляп пропустил..



Партнер
 

Member
Статус: Не в сети
Регистрация: 24.04.2008
Люди добрые! Написал калькулятор, как реализовать чтобы можно было работать с помощью цифровой клавиатуры?
В заранее благодарен за помощь!


 

Member
Статус: Не в сети
Регистрация: 07.01.2010
ловить сообщения onKeyPress


 

Member
Статус: Не в сети
Регистрация: 24.04.2008
Погуглил! Получается что придется копировать все процедуры в новые, которые с onKeyPress? Во общем посоветуйте где найти хорошую инфу по onKeyPress, в инете только ссылки на форумы где все расплывчато!


 

Member
Статус: Не в сети
Регистрация: 04.12.2005
Откуда: Е-бург
Фото: 0
Всем доброго времени суток! сижу делаю клиентское приложение к бд, на делфи - и застрял вот с чем,
есть две таблицы:
Код:
CLIENT с полями
ID
NAME
ADRESS
PHONE_FAX

и
Код:
ORDERS, соответственно с
ID
ID_CLIENT
ID_STUFF
ID_TOVAR
DATA
PRICE

Хочется, чтобы при вводе данных в таблицу ORDERS в поле ID_CLIENT выпадающим списком можно было выбрать фамилии клиентов из таблицы CLIENT.
Таблицы выводятся на форму через DBGrid. Пробовал делать вот по этому примеру, но почему-то в итоге ничего не выводится, вместо ID_CLIENT пустое поле.
Делал так: в таблице ORDERS в свойствах поля ID_CLIENT ставил
Код:
FieldKind  fkLookup
KeyField  ID_CLIENT
LookupKeyField  ID
LookupresultField Name

и в итоге нефига. Что и где я делаю не так ? :?: Подскажите, если не затруднит - буду очень признателен! :hi:

_________________
Разогнал 2т двс 50cc до 120 км\ч
Мировой рекорд - 233,3 км\ч


 

Member
Статус: Не в сети
Регистрация: 01.12.2002
Фото: 0
HotGuy, ищи в инете книжку Библия Delphi Михаила Фленова. В ней рассматривается пример создания телефонного справочника, в котором используется подстановка из других таблиц. Или кури готовые примеры из Delphi.

_________________
Помощь в создании, редактировании и перепрошивке SPD модулей оперативной памяти - https://goo.gl/hrDIL1


 

Member
Статус: Не в сети
Регистрация: 04.12.2005
Откуда: Е-бург
Фото: 0
Crash уже нашёл, надо было всего-то добавить отдельное lookup поле :) само в себя значение не вставлялось...
Теперь надо сделать автоматическое присвоение номеров для клиентов и тд, и будет почти готово :writer:

_________________
Разогнал 2т двс 50cc до 120 км\ч
Мировой рекорд - 233,3 км\ч


 

Member
Статус: Не в сети
Регистрация: 13.11.2007
Если у кого есть время и желание-помогите разобраться. Проблема: есть прога с кучей форм, при закрытии остается в памяти :(
Финализейшн прописывал-но непомогло, посему и просьба-накидайте прогу чтобы формы по кнопке появлялись(штуки три достаточно, т.к. с двумя все нормально работает и без финализейшн), родитель приэтом закрывался. ну и чтобы по крестику всё это из памяти ушло.


 

Member
Статус: Не в сети
Регистрация: 01.12.2002
Фото: 0
Alek(S),
В этом плане хорошим тоном является создание форм динамически: Project -> Options и переместить все, кроме главной, формы из Auto-create forms в группу в Available forms. Далее вызывать формы динамически, т.е. примерно так:

var
Form2 : TForm2;
begin
Form2:=TForm2.Create(Self);
Form2.ShowModal;
Form2.Free;
end;

Это даёт 100-процентную гарантию освобождения системных ресурсов формой при ее закрытии.

_________________
Помощь в создании, редактировании и перепрошивке SPD модулей оперативной памяти - https://goo.gl/hrDIL1


 

Member
Статус: Не в сети
Регистрация: 28.05.2007
Откуда: Санкт-Петербург
100% даст только такой код, а вышеприведённый - только при отсутствии исключений:

Код:
var
  Form2: TForm2;
begin
  Application.CreateForm(TForm2, Form2);
  try
    Form2.ShowModal;
  finally
    Form2.Free;
  end;
end;


 

Member
Статус: Не в сети
Регистрация: 13.11.2007
Crash ShowModal-не катит.
Создайте проект-если не затруднит. нажимаем на кнопку на форме1-появляеться Форма2 и форм1 закрываеться, на форме 2 кликаем кнопку-закрываеться Форм2 и открывается Форм3. закрываем форм3-завершаеться прога.
Буду черезмерно благодарен-жили бы поближе угостил бы пивом/соком :beer:


 

Member
Статус: Не в сети
Регистрация: 07.01.2010
это типа визарда что ли получается? тогда можно пэйджконтрол (или как он там называется) кинуть на форму и кнопками табы менять


 

Member
Статус: Не в сети
Регистрация: 28.05.2007
Откуда: Санкт-Петербург
Alek(S)
А вы при открытии новой формы старую не закрывайте, а просто скрывайте. Ну а при закрытии третьей - Application.Terminate :) Может, такой вариант подойдёт?


 

Member
Статус: Не в сети
Регистрация: 13.11.2007
ToSHiCнадо имеено много форм.
Зеро кудысь Application.Terminate прописать? в финализейшн прописывал, вроде как неработает. Я говорю накидайте кто-нить. тут делов на 5 минут-если будет работать, то я буду очень счастлив))


 

Member
Статус: Не в сети
Регистрация: 28.05.2007
Откуда: Санкт-Петербург
Alek(S)
В какой финализейшн, вы чего ) в событии OnClose у той формы, при закрытии которой нужно закрыть всё приложение.


 

Member
Статус: Не в сети
Регистрация: 13.11.2007
ооой...ушел пробывать :haha: :D
Спасибо!! я четко протупил)


 

Member
Статус: Не в сети
Регистрация: 04.12.2005
Откуда: Е-бург
Фото: 0
ещё разок подскажите, а ? :oops:
есть простенький алгоритм
Код:
procedure TForm1.PageControl1Change(Sender: TObject);
begin
if PageControl1.TabIndex = 0
 then SpeedButton2.Visible := true
 else SpeedButton2.Visible := false;
end;

как организовать такую же проверку для значений TabIndex =1,2,3 ? смысл в том чтобы с формы прятались разные кнопочки, в зависимости от того какая вкладка в PageControl в данный момент открыта... пытался сделать с вложенными условиями но чот не получилось. Заранее спасибо!

_________________
Разогнал 2т двс 50cc до 120 км\ч
Мировой рекорд - 233,3 км\ч


 

Member
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
Код:
procedure TForm1.PageControl1Change(Sender: TObject);
begin
  case PageControl1.TabIndex of
   0 : // делаем что-то ;
   1 : // делаем что-то ;
   2 : // делаем что-то ;
  end;
end;


_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 28.05.2007
Откуда: Санкт-Петербург
Или, если каждая кнопка соответствует своей вкладке, можно так:
Код:
procedure TForm1.PageControl1Change(Sender: TObject);
begin
  SpeedButton1.Visible := (PageControl1.TabIndex = 0);
  SpeedButton2.Visible := (PageControl1.TabIndex = 1);
  //и т.п.
end;


 

Member
Статус: Не в сети
Регистрация: 04.12.2005
Откуда: Е-бург
Фото: 0
Lord_of_Darkness,Зеро спасибо огромное! :beer: так просто и элегантно оказывается реализуется!

:oops: и снова обращаюсь за помощью...
есть база данных(interbase), таблица CLIENT с полем ID(первичный ключ), для которого включен автоинкримент (гениратор+триггер и хранимая процедура), благо через IBExpert это можно в 3 клика сделать)
Проблема собственно в следующем,столкнулся вот с этим же:
при попытке внести изменения (Post) выскакивает ошибка "Field 'ID' must have a value", но ведь сервер должен назначать новое значение автоинкремент-поля сам?
Interbase триггер "before insert" срабатывает только после того, как запись "запостится" из Delphi приложения. В связи с чем становится невозможным увеличение автоинкрементальных ключевых полей.

В качестве решения там предлагают использование хранимой процедуры (stored procedure), что я собственно и сделал.
Далее я взял компонент IBStoredProc, подключил к нему хп из базы данных, по правому клику - Execute значения генератора меняются, всё работает
НО как это соеденить со связкой с DBGridEh+DBNavigator, через которые вводятся данные я никак не могу понять :insane: пробовал так
Код:
procedure TForm1.DBNavigator1BeforeAction(Sender: TObject;
  Button: TNavigateBtn);
begin
 if Button = nbInsert then
 DataModule2.IBStoredProc1.ExecProc;
end;

но ничего не работает... чувствую что не хватает какой-то мелочи, а какой не могу понять :bandhead:

upd, разобрался! :beer: вместо IBStoredProc надо использовать обыкновенный IBQuery и запросом вызывать значение хранимой процедуры!! :dance:
Код:
select * from YourStoredProc(:param1, :param2, :param3)

ну а дальше через lookup можно добавить поле и всё будет добовлятся!!! ура :beer:

_________________
Разогнал 2т двс 50cc до 120 км\ч
Мировой рекорд - 233,3 км\ч


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2313 • Страница 112 из 116<  1 ... 109  110  111  112  113  114  115  116  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  



Лаборатория














Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan