![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как динамически создать Separator в MainMenu?
Kolan © (2007-07-11 22:11:00)Здравствуйте,
Оказывается если указатьCaption '-', то в ран тайме ничего не создасться вообще.
Kolan (2007-07-12 08:49:00) [1]Короче все вы гоните, благодарю за помощь и разъяснения, я погнал дальше работать.
:)
{RASkov} (2007-07-12 08:45:00) [2]> [8] Kolan © (12.07.07 08:29)
> Странно тк в дизан тайме это не так…
И это правильно :) В дизайне ты должен видеть все, а в работающем меню никчему видеть "никчемную" "-" :)
И [6] - работает. Так, что не гони :) В [7] пояснение...)
Kolan (2007-07-12 08:29:00) [3][6] не работает, а вот так:
var
TempMenuItem0, TempMenuItem, TempMenuItem1: TMenuItem;
begin
TempMenuItem0 := TMenuItem.Create(MainMenu1);
TempMenuItem0.Caption := 'Гоню';
MainMenu1.Items[0].Add(TempMenuItem0);
TempMenuItem := TMenuItem.Create(MainMenu1);
TempMenuItem.Caption := '-';
MainMenu1.Items[0].Add(TempMenuItem);
TempMenuItem1 := TMenuItem.Create(MainMenu1);
TempMenuItem1.Caption := 'Все таки это ты гонишь… :)))';
MainMenu1.Items[0].Add(TempMenuItem1);
end;
Появляется. То есть он(сепаратор) появитя только при окружении пунктами. Странно тк в дизан тайме это не так
{RASkov} (2007-07-12 00:45:00) [4]> [6] {RASkov} © (12.07.07 00:38)
Т.е немножко и я гоню :) Если MainMenu1.Items[0] изначально ничего не содержит..
нужно три элемента в примере [6] т.е. перед черточкой еще один элемент добавить...
Но даже и так - выполни тот код [6](например по нажатию бутона) 2 или более раз :)
{RASkov} (2007-07-12 00:38:00) [5]> [5] Kolan © (11.07.07 22:58)
Попробуй вот так:
var
TempMenuItem, TempMenuItem1: TMenuItem;
begin
TempMenuItem := TMenuItem.Create(MainMenu1);
TempMenuItem.Caption := '-';
MainMenu1.Items[0].Add(TempMenuItem);
TempMenuItem1 := TMenuItem.Create(MainMenu1);
TempMenuItem1.Caption := 'Все таки это ты гонишь… :)))';
MainMenu1.Items[0].Add(TempMenuItem1);
end;
:)
Kolan (2007-07-11 22:58:00) [6]
procedure TForm1.BitBtn1Click(Sender: TObject);
var
TempMenuItem: TMenuItem;
begin
TempMenuItem := TMenuItem.Create(MainMenu1);
//TempMenuItem.Caption := 'Да ты гонишь :)))';
TempMenuItem.Caption := '-';
MainMenu1.Items[0].Add(TempMenuItem);
end;
Тоже самое сделал новый проект.
Kolan (2007-07-11 22:54:00) [7]> Упрости код.
Ладно, шас сделаю тест проект.
Johnmen (2007-07-11 22:46:00) [8]Ну здесь криминала я не вижу. Как и добавления '-'.
Упрости код. Для отладки...
Kolan (2007-07-11 22:37:00) [9]> Да ты гонишь :)))
Б. буду :)
Так:
'asdasd-' Вижу пункт меню: «asdasd-»
Так:
'-' вообще ничего :(
Добаляю так:
function TMenuInsertColleague.AddMenuItem(MainMenu: TMainMenu;
MenuData: TMenuItemData): Boolean;
var
I: Integer;
TempMenuItem: TMenuItem;
begin
Result := False;
if Assigned(MenuData) and Assigned(MainMenu) then
begin
for I := 0 to MainMenu.Items.Count 1 do
begin
if MainMenu.Items[I].Caption = MenuData.Section then
begin
TempMenuItem := TMenuItem.Create(MainMenu);
TempMenuItem.Caption := MenuData.Caption;
TempMenuItem.ImageIndex := MenuData.ImageIndex;
TempMenuItem.Tag := Integer(MenuData.CommandClass);
TempMenuItem.OnClick := MenuClickEvent;
MainMenu.Items[I].Add(TempMenuItem);
Result := True;
Exit;
end;
end;
TempMenuItem := TMenuItem.Create(MainMenu);
TempMenuItem.Caption := MenuData.Section;
MainMenu.Items.Add(TempMenuItem);
Result := AddMenuItem(MainMenu, MenuData);
end;
end;
Johnmen (2007-07-11 22:31:00) [10]Да ты гонишь... :)))