![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
тишина |
![]() ![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
помогите описать динамическое создание меню, кнопки, панели получаются, меню так же прописываю, а оно не отображается, вот кусок из процедуры 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; Тегами для подсветки кода пользуйтесь |
![]() ![]() |
тишина |
![]()
Сообщение
#2
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
а вот и не бред, в некоторых случаях никак нельзя обойтись без динамического создания, либо такой способ облегчает программирование, как ни странно, вот кстати в моём случае - это так, и предмет - Технология программирования, значит мы должны научиться пользоваться различными способами задания компонентов, а не только уметь картинки переставлять, вот
а ваш код работает? к сожалению сейчас проверить не могу, пора спать, но он, как мне кажется, практически дублирует, то что у меня прописано, только несколько строчек выведено в отдельную процедуру, для сравнения создания мной других элементов с созданием меню приведу полностью процедуру 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; Parent:=Form1; ParentBiDiMode:=True; Exit:=TMenuItem.Create(Menu.Items); 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; v1:=TButton.Create(Form1); with v1 do begin Font.Name:='Century Gothic'; Font.Size:=9; Height:=30; Width:=75; Left:=5; Top:=CH*4+200; Caption:='15-øêè'; Parent:=Form1; OnClick:=Button2Click; end; v2:=TButton.Create(Form1); with v2 do begin Font.Name:='Century Gothic'; Font.Size:=9; Height:=30; Width:=75; Left:=85; Top:=CH*4+200; Caption:='19-øêè'; Parent:=Form1; OnClick:=Button3Click; end; v3:=TButton.Create(Form1); with v3 do begin Font.Name:='Century Gothic'; Font.Size:=9; Height:=30; Width:=75; Left:=165; Top:=CH*4+200; Caption:='24-øêè'; Parent:=Form1; OnClick:=Button4Click; end; ng:=TButton.Create(Form1); with ng do begin Font.Name:='Century Gothic'; Font.Size:=12; Height:=30; Width:=235; Caption:='Íîâàÿ èãðà'; Left:=5; Top:=CH*4+160; Parent:=Form1; OnClick:=Button1Click; end; kol:=15; For i:=1 to kol do begin pole[i]:=TButton.Create(Form1); with pole[i] do begin if i<=(kol div (4+n))+1 then begin Left:=(i-1)*CW; Top:=CH*0+CH; end else begin if i<=(kol div (4+n))*2+2 then begin Left:=(i-((kol div (4+n))+2))*CW; Top:=CH+CH; end else begin if i<=(kol div (4+n))*3+3 then begin Left:=(i-((kol div (4+n))*2+3))*CW; Top:=CH*2+CH; end else begin if i<=(kol div (4+n))*4+3+n then begin Left:=(i-((kol div (4+n))*3+4))*CW; Top:=CH*3+CH; end else begin if i<=(kol div (4+n))*5+4 then begin Left:=(i-((kol div (4+n))*4+3+n+n))*CW; Top:=CH*4+CH; end; end; end; end; end; Font.Name:='Century Gothic'; Font.Size:=9; Cursor:=crDrag; Caption:=IntToStr(i); Width:=CW; Height:=CH; Parent:=Form1; OnDragDrop:=FormDragDrop; DragMode:=dmAutomatic; end; end; end; напомню, что все кнопки работают, и располагаются на своих местах, потому я и теряюсь в догадках, что же происходит с меню, я предполагаю, что я неправильно прописываю именно элементы Items может там программные скобки где-то должны быть или наоборот - их не должно быть, или обычные (), или что-то ещё, о чём я не догадываюсь ![]() спасибо, за то что стараетесь, но пока по-моему продвижений нет ![]() |
![]() ![]() |
![]() |
Текстовая версия | 13.07.2025 13:05 |