Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как можно показать n кнопок на панеле [D7, XP]


Страницы:   1 2 3

Любитель ©   (2006-12-18 11:22:00) 

Как можно показать n кнопок на панеле.
n - вводиться пользователем.


novill   (2006-12-21 12:54:00) [21]

Ega23, крайне интересует твое цензруное мнение о [25]

Или это твой виртуал?


novill   (2006-12-21 12:52:00) [22]

> [24] Ega23 ©   (21.12.06 12:46)

акваланг.


Любитель   (2006-12-21 12:51:00) [23]

Тьфу ты совсем запутался


procedure TForm1.Button8Click(Sender: TObject);
begin
if CheckBox1.Checked then
Button1.Visible:=True;
if CheckBox2.Checked then
Begin
Button1.Visible:=True;
Button2.Visible:=True;
end;
if CheckBox3.Checked then
begin
Button1.Visible:=True;
Button2.Visible:=True;
Button3.Visible:=True;
end;


Сделать по короче
что бы при выборе определенного CheckBox N показывались N кнопок

begin
Button[N].Visible:=True;


Ega23   (2006-12-21 12:46:00) [24]


> novill ©   (21.12.06 12:28) [23]


Это ужасно.


novill   (2006-12-21 12:28:00) [25]

> [20] Любитель   (21.12.06 11:56)

Зануда!!!

Создай новый проект, брось на форму 11 кнопок, radiogroup с элементами от 0 до 10, замени текст модуля на этот код и дважды кликни на последней созданной кнопке.
Запускай!

unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   Button1: TButton;
   Button2: TButton;
   Button3: TButton;
   Button4: TButton;
   Button5: TButton;
   Button6: TButton;
   Button7: TButton;
   Button8: TButton;
   Button9: TButton;
   Button10: TButton;
   RadioGroup1: TRadioGroup;
   Button11: TButton;
   procedure B_init;
   procedure Button11Click(Sender: TObject);
 private
   b_arr: array [1..10] of TButton;
  { Private declarations }
 public
   { Public declarations }
 end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.B_init;
begin
b_arr[1]:=Self.Button1;
b_arr[2]:=Self.Button2;
b_arr[3]:=Self.Button3;
b_arr[4]:=Self.Button4;
b_arr[5]:=Self.Button5;
b_arr[6]:=Self.Button6;
b_arr[7]:=Self.Button7;
b_arr[8]:=Self.Button8;
b_arr[9]:=Self.Button9;
b_arr[10]:=Self.Button10;
end;

procedure TForm1.Button11Click(Sender: TObject);
var i:integer;
begin
if b_arr[1]=nil then B_init;
for i:=1 to 10 do
 b_arr[i].Visible:=i<=RadioGroup1.ItemIndex;
end;

end.


Если не получится - хорошо подумай о работе на свежем воздухе!


Anatoly Podgoretsky   (2006-12-21 12:18:00) [26]

> Любитель  (21.12.2006 10:14:11)  [11]

Что за хитрый такой CheckBox с несколькими числовыми значениями и индексом?
Народ наверно голову ломает, пытаясь понять это. Их всего твоего вопроса понятно только, что есть 10 скрытых кнопок


Плохиш   (2006-12-21 11:59:00) [27]


> Любитель   (21.12.06 11:56) [20]
> мне это надо сделать на события нажатия кнопки

С моей стороны никаких возражений, делай.


Любитель   (2006-12-21 11:56:00) [28]

мне это надо сделать на события нажатия кнопки


ЮЮ   (2006-12-21 10:49:00) [29]

и кто такой CheckBox, откуда у него Index?
Код, извени, ты приводил :)


ЮЮ   (2006-12-21 10:46:00) [30]

так писать надо в методе формы, а не где придется


Любитель   (2006-12-21 10:41:00) [31]

Button1.Visible := CheckBox.Index >= 1;
ругаеться что неизвестный индификатор


ЮЮ   (2006-12-21 10:38:00) [32]

Если CheckBox.Index = 5, то у Button1..Button5 Visible будет True, а у   Button6..Button10 - false, т.к. 5 >= 5 - истина, а т.к. 5 >= 6  - ложь


Ega23   (2006-12-21 10:35:00) [33]


> Что то я не догнал ????


Что ты не догнал? Что результатом CheckBox.Index >= 1; является или True или False?


ЮЮ   (2006-12-21 10:35:00) [34]

З.Ы. Проблему надо нормально описывать сразу, а не [11] посте через 3 дня


Любитель   (2006-12-21 10:34:00) [35]

Что то я не догнал ????

Button1.Visible := CheckBox.Index >= 1;
...
Button10Visible := CheckBox.Index >= 10;


ЮЮ   (2006-12-21 10:29:00) [36]


> [code]
> if CheckBox1.Index=1 then
> Button1.Visible:=True;
> if CheckBox1.Index=2 then
> Begin
> Button1.Visible:=True;
> Button2.Visible:=True;
> end;
> if CheckBox1.Index:=3 then
> begin
> Button1.Visible:=True;
> Button2.Visible:=True;
> Button3.Visible:=True;
> end;
> [/code]


Даже такое можно написать короче:

Button1.Visible := CheckBox.Index >= 1;
...
Button10Visible := CheckBox.Index >= 10;


P/S/ никто не мешает объявить массив Button и заполнить его один раз


Любитель   (2006-12-21 10:14:00) [37]

Есть... 10 скрытых кнопок... Пользователь их невидет, но они есть. Есть CheckBox, в нём значения от 1 до 10, выбирая одно из значений, пользователь выберет, сколько кнопок ему откроется (По порядку). Допустим пользователь выбрал число 7, тоесть надо 7-ми кнопкам присвоить значения Visible:=True; Представляешь, сколько надо на составление такой малой задачки.
Тоесть, надо написать, грубо говоря :
[code]
if CheckBox1.Index=1 then
Button1.Visible:=True;
if CheckBox1.Index=2 then
Begin
Button1.Visible:=True;
Button2.Visible:=True;
end;
if CheckBox1.Index:=3 then
begin
Button1.Visible:=True;
Button2.Visible:=True;
Button3.Visible:=True;
end;
[/code]

а можно что бы просто пустить цикл,что-то вроде
[code]

a:=CheckBox.Index;
for i:=1 to a do
begin
Button[i].Visible:=True;
end;
[/code]


Anatoly Podgoretsky   (2006-12-18 14:15:00) [38]

> clickmaker  (18.12.2006 14:08:09)  [9]

Это задание для другого курса.


clickmaker   (2006-12-18 14:08:00) [39]


> Поистине неистощима фантазия преподавателей информатики

да ну разве ж это фантазия? Вот если б в задаче стояло организовать их броуновское движение, с невыползанием за границу панели - это да.


RebroFF   (2006-12-18 13:59:00) [40]


> Как можно показать n кнопок на панеле.
> n - вводиться пользователем.

Поистине неистощима фантазия преподавателей информатики.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо