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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2016, 04:51   #1
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию MainMenu Checked Delphi 6

при нажатии на кнопку прячу панель и убираю галочку от соответствующего пункта меню.
Код:
       if N3.Checked then
         Begin
          N3.Checked:=false;
          grp9.Visible:=False;
         end
проблема состоит в том, что не перерисовывается пункт меню пока на него мышкой не наведешь.
как это решить можно?
П.С. да было бы круто перейти на более новую версию Delphi но пока нет такой возможности.
Терпение!Дежурный экстрасенс скоро свяжется с вами!

Последний раз редактировалось Dvoishnik; 26.04.2016 в 04:53.
Dvoishnik вне форума Ответить с цитированием
Старый 26.04.2016, 08:51   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

А меню разве не скрывается при нажатии ка кнопку (или вообще куда-либо)?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 26.04.2016, 09:25   #3
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,834
По умолчанию

да дело не в версии Delphi.
Может, попробуешь форму перерисовывать или на любой посторонний шорох мышью реагировать, типа Form.Resize?
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 26.04.2016, 12:31   #4
kropotkina-alice
Форумчанин
 
Аватар для kropotkina-alice
 
Регистрация: 27.10.2014
Сообщений: 594
По умолчанию

Application.ProcessMessages...
kropotkina-alice вне форума Ответить с цитированием
Старый 26.04.2016, 22:50   #5
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
А меню разве не скрывается при нажатии ка кнопку (или вообще куда-либо)?
скрывается все кроме титульной его части, именно с ней я и работаю.


Цитата:
Сообщение от NetSpace Посмотреть сообщение
да дело не в версии Delphi.
Может, попробуешь форму перерисовывать или на любой посторонний шорох мышью реагировать, типа Form.Resize?
из базуки по воробьям???

Код:
//на N3Click
N3.Checked := not N3.Checked;
if   N3.Checked then
  begin
   N3.Caption:=N3.Caption+'   ';
   grp9.Visible:=True;
  end
   else
    begin
     grp9.Visible:=False;
     N3.Caption:=Copy(N3.Caption,1,19);
    end;
//на кнопку 
       if N3.Checked then
         Begin
          N3.Checked:=false;
          N3.Caption:=Copy(N3.Caption,1,19);
          grp9.Visible:=False;
         end
если вызывается перерисовка меню при изменении Caption

П.С. если вариант получше подскажите.


Цитата:
Сообщение от kropotkina-alice Посмотреть сообщение
Application.ProcessMessages...
немного не тот случай я так понял перерисовка компонента в принципе не предусмотрена. при изменении свойства Checked у элемента MainMenu
Терпение!Дежурный экстрасенс скоро свяжется с вами!

Последний раз редактировалось Dvoishnik; 27.04.2016 в 00:51. Причина: Не заметил сообщения.
Dvoishnik вне форума Ответить с цитированием
Старый 26.04.2016, 22:59   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
прячу панель и убираю галочку от соответствующего пункта меню.
Засунь это соответствие в обработчик события Application.OnIdle.
Код:
procedure TFormMain.AppIdle(Sender: TObject; var Done: Boolean);
begin
  N3.Checked:= grp9.Visible;
end;
Ничего не гарантирую, но попробовать можно.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 27.04.2016, 00:44   #7
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Засунь это соответствие в обработчик события Application.OnIdle.
немного не понял зачем?
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 27.04.2016, 08:29   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
немного не понял зачем?
Попробуй сначала, мне интересно, сработает или нет.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 27.04.2016, 08:55   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
скрывается все кроме титульной его части, именно с ней я и работаю.
И галки в титульной части? Они там вообще отображаются и должны отображаться?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 28.04.2016, 01:52   #10
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Попробуй сначала, мне интересно, сработает или нет.
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Menus, ImgList, ExtCtrls;

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    Button1: TButton;
    asa1: TMenuItem;
    ImageList1: TImageList;
    Panel1: TPanel;
    procedure N1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure AppIdle(Sender: TObject; var Done: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure Tform1.AppIdle(Sender: TObject; var Done: Boolean);
Begin
N1.Checked:= Panel1.Visible
end;

procedure TForm1.N1Click(Sender: TObject);
begin

N1.Checked:= not N1.Checked;
if N1.Checked then
  Panel1.Visible:=True
    else Panel1.Visible:=False;
    Application.OnIdle:=AppIdle;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
N1.Checked:= not N1.Checked;
if N1.Checked then
  Panel1.Visible:=True
    else Panel1.Visible:=False;
    Application.OnIdle:=AppIdle;
end;

end.
типо так??


Цитата:
Сообщение от Аватар Посмотреть сообщение
И галки в титульной части? Они там вообще отображаются и должны отображаться?
в Delphi 6 можно если ImageList прикреплен к меню.
насчет того, что они должны, а что нет вопросы не ко мне, а непосредственно к галкам или документам по среде.
Терпение!Дежурный экстрасенс скоро свяжется с вами!

Последний раз редактировалось Dvoishnik; 28.04.2016 в 01:56.
Dvoishnik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
mainmenu(delphi) oleg866 Помощь студентам 2 05.06.2014 21:59
Решение задач с использование компонент Delphi ( Memo, SrinngGrid, MainMenu, Label,TIMER, и др.). Деми Помощь студентам 1 18.05.2014 15:54
MainMenu Delphi BanzoO Помощь студентам 8 13.08.2011 01:46
Запоминание Checked после выхода из проги в MainMenu NuR1k Общие вопросы Delphi 2 24.08.2010 19:26
MainMenu и текстовый файл (delphi) LightJulia Помощь студентам 7 06.06.2010 14:29