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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2011, 20:03   #1
casio23
Форумчанин
 
Аватар для casio23
 
Регистрация: 29.12.2010
Сообщений: 186
Плохо Создать REopen

Подскажите кто знает как сделать в меню подменю reopen на 4 списка,и чтобы при добавлении нового удалялся 1 и т.д.?

нашел код,но он почему то не работает выдает ошибку List out of bounds (2)

Код:

procedure TForm1.Open1Click(Sender: TObject);
Var i: Integer;
    s: String;
 
begin
  if not OpenDialog1.Execute then Exit;
  Save1.Enabled := True;
  SaveAs1.Enabled := True;
  Close1.Enabled := True;
  Reopen1.Enabled := True;
  for i := 3 downto 1
  do begin
      if Reopen1.Items[i-1].Caption = '' then Continue;
      Reopen1.Items[i].Caption := Reopen1.Items[i-1].Caption;
      s := Reopen1.Items[i].Caption;
      MessageDlg(IntToStr(i) + 's=' + s, mtInformation, [mbOK], 0);
      Delete(s,1,1);
      MessageDlg(IntToStr(i) + 's delete=' + s, mtInformation, [mbOK], 0);
      Reopen1.Items[i].Caption := IntToStr(i) + s;
      Reopen1.Items[i].Visible:= True;
  end;
 
  Reopen1.Items[0].Caption := '0 ' + OpenDialog1.FileName;
  Reopen1.Items[0].Visible:= True;
  Reopen1.Items[0].Checked:= True;
 
  if OpenDialog1.FileName<>'' then Self.Caption := 'Form1' + '  ' +
   ExtractFileName(OpenDialog1.FileName)
    else Self.Caption := 'Form1';
end;
что в этом коде не так?
casio23 вне форума Ответить с цитированием
Старый 11.02.2011, 20:20   #2
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

Цитата:
List out of bounds (2)
выход за пределы массива
видимо обрашаешся к елементу меню которого нет или уже нет
Цитата:
Подскажите кто знает как сделать в меню подменю reopen на 4 списка,и чтобы при добавлении нового удалялся 1 и т.д.?
не поиму что ты хочеш зделать? с MainMenu работаеш?
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 11.02.2011, 21:06   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Жестокий код...
Если нужно крутить меню то можно использовать такую схему:
Код:
var i:TMenuItem;
begin
 i:=TMenuItem.Create(N11);
 i.Caption:=IntToStr(tag);
 tag:=tag+1;
 with N11 do begin
  Insert(Count,i);
  if Count>4 then Delete(0);
 end;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.02.2011, 10:30   #4
casio23
Форумчанин
 
Аватар для casio23
 
Регистрация: 29.12.2010
Сообщений: 186
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Жестокий код...
Если нужно крутить меню то можно использовать такую схему:
Код:
var i:TMenuItem;
begin
 i:=TMenuItem.Create(N11);
 i.Caption:=IntToStr(tag);
 tag:=tag+1;
 with N11 do begin
  Insert(Count,i);
  if Count>4 then Delete(0);
 end;
end;
Спасибо все работает

Цитата:
Сообщение от casio23 Посмотреть сообщение
Спасибо все работает
а можно еще узнать а как сделать Cheked для активного открытия файла?

Последний раз редактировалось Stilet; 12.02.2011 в 11:03.
casio23 вне форума Ответить с цитированием
Старый 12.02.2011, 11:07   #5
casio23
Форумчанин
 
Аватар для casio23
 
Регистрация: 29.12.2010
Сообщений: 186
По умолчанию

Цитата:
Сообщение от casio23 Посмотреть сообщение
Спасибо все работает



а можно еще узнать а как сделать Cheked для активного открытия файла?

а как не записывать один и тот же путь файла? чтобы он был 1,не повторялся? можно было открыть,этот файл, можно пример

Последний раз редактировалось casio23; 12.02.2011 в 11:09. Причина: .
casio23 вне форума Ответить с цитированием
Старый 12.02.2011, 11:15   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Cheked для активного открытия файла?
Тоесть? Пометить в меню некий элемент?
В цикле пройдись по элементам подменю, и если его... Свойство некое совпадает с тем что нужно просто выставь Cheked для него.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.02.2011, 12:11   #7
casio23
Форумчанин
 
Аватар для casio23
 
Регистрация: 29.12.2010
Сообщений: 186
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Тоесть? Пометить в меню некий элемент?
В цикле пройдись по элементам подменю, и если его... Свойство некое совпадает с тем что нужно просто выставь Cheked для него.
а как сделать OnClick по созданому Caption?

Цитата:
Сообщение от Stilet Посмотреть сообщение
Тоесть? Пометить в меню некий элемент?
В цикле пройдись по элементам подменю, и если его... Свойство некое совпадает с тем что нужно просто выставь Cheked для него.
да нужно пометить элемент, в меню reopen, и как вызвать Onclick в меню reopen

Последний раз редактировалось Stilet; 12.02.2011 в 17:47.
casio23 вне форума Ответить с цитированием
Старый 12.02.2011, 17:48   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а как сделать OnClick по созданому Caption?
Чего??? По элементу меню может быть?
Код:
i.OnClick:=ButtonClick;
Где ButtonClick некая процедура обработчик клика типа procedure (Sender: TObject) ofobject;
Цитата:
и как вызвать Onclick в меню reopen
ну просто : i.Click();...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.02.2011, 18:06   #9
casio23
Форумчанин
 
Аватар для casio23
 
Регистрация: 29.12.2010
Сообщений: 186
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Чего??? По элементу меню может быть?
Код:
i.OnClick:=ButtonClick;
Где ButtonClick некая процедура обработчик клика типа procedure (Sender: TObject) ofobject;

ну просто : i.Click();...
OnClick по созданному элементу в reopen, помогите мне с Cheked
casio23 вне форума Ответить с цитированием
Старый 12.02.2011, 18:15   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
помогите мне с Cheked
Чем? Ты в цикле по элементам меню пройтись не можешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать кнопку bablzz Microsoft Office Excel 6 06.05.2010 10:27
Создать БД PeRt Microsoft Office Access 1 02.05.2010 21:41
Создать процедуру. H0Jlb Win Api 0 16.02.2010 22:01
Создать файл zgest Общие вопросы C/C++ 2 30.03.2009 21:03
Создать КС e999 Microsoft Office Excel 2 12.12.2008 17:14