На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
  
> Смещение заголовков меню при создании в рантайм
    Здравствуйте!
    XE8. Если верхний пункт меню создан в дизайнтайм, то при добавлении итемов в рантайм - заголовки выравниваются правильно с учетом картинок (вариант 1). Если верхний пункт меню и итемы созданы в рантайм, то заголовки выравниваются НЕ правильно (вариант 2). Код:
    ExpandedWrap disabled
      procedure TForm1.Button1Click(Sender: TObject);
      const
        a: array[0..5] of Integer = (-1, 1, -1, -1, 2, -1);
      var
        i: Integer;
        RootItem, ChildItem: TMenuItem;
      begin
        RootItem:= Form1.Menu.Items[0]; // вариант 1
        for i:= Low(a) to High(a) do
        begin
          ChildItem:= TMenuItem.Create(RootItem);
          RootItem.Add(ChildItem);
          ChildItem.Caption:= Format('Item %d', [i]);
          ChildItem.ImageIndex:= a[i];
        end;
       
        RootItem:= TMenuItem.Create(Form1.Menu); // вариант 2
        Form1.Menu.Items.Add(RootItem);
        RootItem.Caption:= Format('Menu %d', [0]);
        RootItem.ImageIndex:= a[0];
        for i:= Low(a) to High(a) do
        begin
          ChildItem:= TMenuItem.Create(RootItem);
          ChildItem.Name:= Format('miItem%d', [i]);
          RootItem.Add(ChildItem);
          ChildItem.Caption:= Format('Item %d', [i]);
          ChildItem.ImageIndex:= a[i];
        end;
      end;

    Прикреплённый файлПрикреплённый файлmenu_trouble.png (12,89 Кбайт, скачиваний: 303)
    Как это можно поправить? Спасибо.
      ExpandedWrap disabled
          //RootItem:= TMenuItem.Create(Form1.Menu); // вариант 2
          RootItem:= TMenuItem.Create(Self); // Указывать надо владельца, а владельцем является не меню, а форма!!!
        To Rouse_
        Да, точно! Спасибо.
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0185 ]   [ 18 queries used ]   [ Generated: 18.04.24, 23:09 GMT ]