IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> динамическое создание меню
тишина
сообщение 2.05.2005 15:51
Сообщение #1





Группа: Пользователи
Сообщений: 8
Пол: Мужской

Репутация: -  0  +


помогите описать динамическое создание меню, кнопки, панели получаются, меню так же прописываю, а оно не отображается, вот кусок из процедуры FormCreat:

Код
procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
kol:=15;
Caption:='Игра';
Color:=$00FC1B01;
BorderStyle:=bsSingle;
ClientWidth := CW*((kol div 4)+1);
ClientHeight := CH*8;
Menu:=MainMenu1;
MainMenu1:=TMainMenu.Create(Form1);
with MainMenu1 do begin
   Left:= 10; \\вот это вроде в свойствах меню нет, но надо же как-то
   Top:= 10; \\ задавать, где оно должно находиться  :huh:
   Parent:=Form1;
   ParentBiDiMode:=True;
   Exit:=TMenuItem.Create(Form1.MainMenu1);
    with Exit do begin
       OnClick:=FormExit;
       Caption:='Выход';
   end;
     Spravka:=TMenuItem.Create(Form1.MainMenu1.Items);
     with Spravka do begin
       Caption:='Справка';
     About:=TMenuItem.Create(Spravka);
     with About do begin
       OnClick:=PrgAbout;
       Caption:='О программе';
     end;
     Rules:=TMenuItem.Create(Spravka);
     with Rules do begin
       OnClick:=GameRules;
       Caption:='Правила';
       end; end; end;


Тегами для подсветки кода пользуйтесь
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
Closed Topic Открыть новую тему 
Ответов
Digitalator
сообщение 2.05.2005 21:11
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 247
Пол: Мужской

Репутация: -  1  +


Цитата
в том-то и дело! надо обходится без визуального редактора

Это препод так сказал?? что за бред, делфи для того и делали чтоб быстро и удобно было.......

Вот код рабочего модуля с динамически созданным меню, все должно быть понятно
Код

unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}
procedure additem(owner:TMenuItem; caption:string);
var item:TMenuItem;
begin
item := TMenuItem.Create(owner);
item.Caption:=caption;
owner.Add(item);
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
Menu := TMainMenu.Create(Form1);
additem(Menu.Items,'Menu item 1');
additem(Menu.Items,'Menu item 2');
additem(Menu.Items,'Menu item 3');
additem(Menu.Items[0],'Sub item 1-1');
additem(Menu.Items[0],'Sub item 1-2');
additem(Menu.Items[1],'Sub item 2-1');
additem(Menu.Items[2],'Sub item 3-1');
additem(Menu.Items[0].Items[0],'Sub Sub item 1');
additem(Menu.Items[0].Items[0],'Sub Sub item 2');
end;

end.


--------------------
In byte we trust
ICQ World.ru
mail[dog]digitalator[dot]com
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


Closed Topic Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 11.07.2025 23:44
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"