Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.07.2007, 17:23   #1
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
По умолчанию Добавление списка в меню

Как сделать так, чтобы в меню добавлялись списки (5-10) последних использованных записей (например номера записи) таблицы и постоянно обновлялось
ГОСЕАН вне форума Ответить с цитированием
Старый 13.07.2007, 18:23   #2
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Создаешь в меню в нужном месте 5-10 MenuItem'ов, в начале, пока они не заполнены, делаешь их невидимыми - ставишь Visible:=false;, и по мере заполнения их значениями делаешь их видимыми.
Перезаписывание значений делаешь путем сдвига вниз. Вот пример записи нового значнения:
Код:
var
  Form1: TForm1;
  N:array[1..10] of TMenuItem; {Массив из элементов меню}
  i:integer;
  str:string; {строка для вставки нового пункта}
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
{Добавляем в массив кнопки меню, кнопки, которые служат для
  записи имеют название в виде N001, N002, N003...}
for i:= 1 to 10 do
   N[i]:=form1.findComponent('N00'+inttostr(i))as TMenuItem;
for i:=1 to 10 do
   N[i].Caption:='#'+inttostr(i);{заполним левыми значениями}
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Randomize();
 str:='New '+inttostr(Random(100));  {строка содержащая всякий
скучный текст}
 
for i:= 10 downto 2 do
  begin
   N[i].Caption:=N[i-1].Caption; {со 2-го все сдвигаем вниз на 1}
  end;
  N[1].Caption:=str; {первому номеру присваиваем новое значение}
end;

Последний раз редактировалось Alex21; 13.07.2007 в 18:26.
Alex21 вне форума Ответить с цитированием
Старый 14.07.2007, 17:51   #3
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
По умолчанию

Цитата:
Сообщение от Alex21 Посмотреть сообщение
Создаешь в меню в нужном месте 5-10 MenuItem'ов, в начале, пока они не заполнены, делаешь их невидимыми - ставишь Visible:=false;, и по мере заполнения их значениями делаешь их видимыми.
Перезаписывание значений делаешь путем сдвига вниз. Вот пример записи нового значнения:
Код:
var
  Form1: TForm1;
  N:array[1..10] of TMenuItem; {Массив из элементов меню}
  i:integer;
  str:string; {строка для вставки нового пункта}
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
 
begin
{Добавляем в массив кнопки меню, кнопки, которые служат для
 записи имеют название в виде N001, N002, N003...}
for i:= 1 to 10 do
   N[i]:=form1.findComponent('N00'+inttostr(i))as TMenuItem;
for i:=1 to 10 do
   N[i].Caption:='#'+inttostr(i);{заполним левыми значениями}
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Randomize();
 str:='New '+inttostr(Random(100));  {строка содержащая всякий
скучный текст}
 
for i:= 10 downto 2 do
  begin
   N[i].Caption:=N[i-1].Caption; {со 2-го все сдвигаем вниз на 1}
  end;
  N[1].Caption:=str; {первому номеру присваиваем новое значение}
end;
Очень интересно! А как тут организовать последние использованные строки таблицы, и при нажатии определенного пункта вызов формы содержащая именно эту запись?
ГОСЕАН вне форума Ответить с цитированием
Старый 14.07.2007, 18:32   #4
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Смотря каким образом хранятся эти строки.Например, если хранятся номера записи, то в Caption i-го меню ставим IntToStr(номер записи), а при нажатии на кнопку меню вызываем обратный перевод, например:Есть несколько элементов списка, на которых написаны случайные цифры(50-500), при нажатии на любой из них позиция формы Left = этой цифре. Это как пример его можно приспособить к чему угодно. Выделяем (с Shift'ом) нужные элементы списка, и для всех (!) в событии OnClick вставляем:
Код:
Form1.Left:=StrToInt(Copy(((Sender as TMenuItem).Caption),2,Length((Sender as TMenuItem).Caption)));
Функция Copy используется потому, что значение Caption элементов меню имеет вид: "&123" - этим избавляемся от &-подчеркивания.
Alex21 вне форума Ответить с цитированием
Старый 15.07.2007, 11:01   #5
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
По умолчанию

простите меня, я кое-что непонял, в талице есть поле Nakt:numeric. необходимо в меню создать список из последних открытых или созданных номеров записи. при нажатии одного из них вызывается форма именно с этим номером записи. тут я не уловил увязку в вашем коде.
ГОСЕАН вне форума Ответить с цитированием
Старый 15.07.2007, 13:34   #6
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Написал тут программку. не это ли вы хотели?
Не стал заморачиваться с БД, сделал на StringGride (принцип тот же).
Вложения
Тип файла: rar menu_item.rar (8.5 Кб, 13 просмотров)
Alex21 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка списка... Arkuz Помощь студентам 2 11.05.2008 00:53
Сортировка списка... Arkuz Компоненты Delphi 4 03.05.2008 23:21
Сортировка списка Александр из Перми Microsoft Office Excel 3 27.01.2007 22:46
создание списка zetrix Microsoft Office Excel 0 31.10.2006 08:05