Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.06;
Скачать: CL | DM;

Вниз

Как сделать невидимым или неактивным TEdit?   Найти похожие ветки 

 
an-na2002   (2004-05-27 09:15) [0]

Я при помощи Radiobutton хочу сделать TEdit невидимым или неактивным. Возможно ли так сделать?


 
Sandman25+1   (2004-05-27 09:16) [1]

Visible
Enabled
ReadOnly


 
Serge ©   (2004-05-27 09:23) [2]

Edit1.Visible[Enabled]:=RadioButton1.Checked;


 
oleg_krechetov ©   (2004-05-27 09:59) [3]

Может имелось ввиду CheckBox?

Для RadioGroup:

procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
 Case RadioGroup1.ItemIndex of
0: Begin
 Edit1.Visible:=true;
  end;
1: Begin
 Edit1.Visible:=false;
  end;
end;
end;


Для CheckBox:

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked then
Edit1.Visible:=True
else
Edit1.Visible:=False;
end;


 
serge ©   (2004-05-27 10:01) [4]

> oleg_krechetov ©   (27.05.04 09:59) [3]
А чем же Radiobutton - плох, если их как минимум два ? :)


 
NAlexey ©   (2004-05-27 10:18) [5]

Соревнование кто напишет больше кода как сделать елемент нивидимым?:)


 
serge ©   (2004-05-27 10:20) [6]

:)


 
MetalFan   (2004-05-27 10:20) [7]


> begin
> if CheckBox1.Checked then
> Edit1.Visible:=True
> else
> Edit1.Visible:=False;
> end;

а зачем такая конструкция???
не проще:
Edit1.Visible := Checkbox1.Checked


 
BillyJeans   (2004-05-27 10:28) [8]

чем больше написано, тем выше оценка по литературе ;))


 
NAlexey ©   (2004-05-27 11:01) [9]

Тогда у меня тоже вариант:

var
 FOld: Pointer = nil;
 FNew: Pointer = nil;

procedure TForm1.WndProc(var AMsg: TMessage);
begin
 if AMsg.Msg = WM_SIZE then
 begin
   Panel1.SetBounds(Edit1.Left, Edit1.Top, Edit1.Width, Edit1.Height);
 end;
 AMsg.Result := CallWindowProc(FOld, Edit1.Handle, AMsg.Msg,
   AMsg.WParam, AMsg.LParam);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Panel1.Caption := "";
 Panel1.BevelOuter := bvNone;
 Panel1.SetBounds(Edit1.Left, Edit1.Top, Edit1.Width, Edit1.Height);
 FOld := Pointer(GetWindowLong(Edit1.Handle, GWL_WNDPROC));
 FNew := MakeObjectInstance(WndProc);
 SetWindowLong(Edit1.Handle, GWL_WNDPROC, Longint(FNew));
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
 SetWindowLong(Edit1.Handle, GWL_WNDPROC, Longint(FOld));
 FreeObjectInstance(FNew);
end;


 
Sun bittern ©   (2004-05-27 11:26) [10]

TAction.OnUpdate

if RadioGroup1.ItemIndex = 1 then Edit1.Visible := True else  Edit1.Visible := False


 
MetalFan   (2004-05-27 11:47) [11]


> if RadioGroup1.ItemIndex = 1 then Edit1.Visible := True
> else  Edit1.Visible := False

Edit1.Visible := RadioGroup1.ItemIndex = 1;
хех...


 
Sandman25+1   (2004-05-27 11:49) [12]

[11] MetalFan   (27.05.04 11:47)

Edit1.Visible := Boolean(RadioGroup1.ItemIndex);
хех...


 
an-na2002   (2004-05-27 11:50) [13]

А можно код для Radiobutton?


 
Sun bittern ©   (2004-05-27 11:53) [14]

an-na2002   (27.05.04 11:50) [13]

Дык. Его уже тут куча ;)


 
Pasha   (2004-05-27 11:57) [15]

procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
Edit1.Visible := Odd(RadioGroup1.ItemIndex);
end;


 
Pasha   (2004-05-27 11:59) [16]

procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
Edit1.Visible := Odd(RadioGroup1.ItemIndex);
end;


 
serge ©   (2004-05-27 12:03) [17]

Во-во, еще давайте выкладывайте код а то тут его маловато будет, а в конце все тот-же вопрос от an-na2002   "А можно код для Radiobutton?" :))


 
NAlexey ©   (2004-05-27 12:03) [18]

А, прошу прощения не увидел что надо с радиобаттонами. Тогда с учетом них и еще в качестве бонуса пара эффектов.

var
 FOld: Pointer = nil;
 FNew: Pointer = nil;

procedure TForm1.WndProc(var AMsg: TMessage);
begin
 if AMsg.Msg = WM_SIZE then
 begin
   if rbMakeUnvisible.Checked then
     Panel1.SetBounds(Edit1.Left, Edit1.Top, Edit1.Width, Edit1.Height);
 end;
 AMsg.Result := CallWindowProc(FOld, Edit1.Handle, AMsg.Msg,
   AMsg.WParam, AMsg.LParam);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Panel1.Caption := "";
 Panel1.BevelOuter := bvNone;
 Panel1.Visible := False;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
 if (FNew = nil) or (FOld = nil) then
   Exit;
 SetWindowLong(Edit1.Handle, GWL_WNDPROC, Longint(FOld));
 FreeObjectInstance(FNew);
end;

procedure TForm1.rbMakeVisibleClick(Sender: TObject);
begin
 with Sender as TRadioButton do
   if Checked then
     DoVisible;
end;

procedure TForm1.rbMakeUnvisibleClick(Sender: TObject);
begin
 with Sender as TRadioButton do
   if Checked then
     DoInvisible;
end;

procedure TForm1.DoVisible;
var
 I: Integer;
begin
 if (FNew = nil) or (FOld = nil) then
   Exit;
 SetWindowLong(Edit1.Handle, GWL_WNDPROC, Longint(FOld));
 FreeObjectInstance(FNew);

 for I := 0 to Edit1.Width do
   if I mod 5 = 0 then
   begin
     Panel1.Width := Edit1.Width - I;
     Sleep(1);
   end;
 Panel1.Visible := False;
 FNew := nil;
 FOld := nil;
end;

procedure TForm1.DoInVisible;
var
 I: Integer;
begin
 if (FNew <> nil) or (FOld <> nil) then
   Exit;
 FOld := Pointer(GetWindowLong(Edit1.Handle, GWL_WNDPROC));
 FNew := MakeObjectInstance(WndProc);
 SetWindowLong(Edit1.Handle, GWL_WNDPROC, Longint(FNew));
 Panel1.Left := Edit1.Left;
 Panel1.Top := Edit1.Top;
 Panel1.Height := Edit1.Height;
 Panel1.Width := 0;
 Panel1.Visible := True;
 for I := 0 to Edit1.Width do
   if I mod 5 = 0 then
   begin
     Panel1.Width := I;
     Sleep(1);
   end;
 Panel1.Width := Edit1.Width;
end;


 
serge ©   (2004-05-27 12:29) [19]

По условиям  NAlexey ©   (27.05.04 10:18) [5]
NAlexey ©  удерживает пальму первенства :о)

П.С. По моему щас эту ветку пообрежут господа модераторы.


 
an-na2002   (2004-05-27 12:29) [20]

Я делаю:
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
   if RadioButton1.Checked then
Edit2.Visible:=True
else
Edit2.Visible:=False;
end;
А на форме ничего не меняется.


 
serge ©   (2004-05-27 12:35) [21]

Скоко RadioButton-ов на форме ,


 
an-na2002   (2004-05-27 12:35) [22]

2


 
serge ©   (2004-05-27 12:39) [23]

Напиши в обработчиках обоих radiobutton либо один обработчик на двоих
edit2.Visible:=radiobutton1.Checked;



Страницы: 1 вся ветка

Текущий архив: 2004.06.06;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.031 c
1-1085399943
С Виктор Н
2004-05-24 15:59
2004.06.06
Программа написанная на Delphi не завершается


14-1084548049
sagsoft
2004-05-14 19:20
2004.06.06
помогите решить


3-1084847619
Алексей Петухов
2004-05-18 06:33
2004.06.06
Работа с TImageList


14-1085035368
butterfly
2004-05-20 10:42
2004.06.06
Просто интересно...


4-1082705450
lock95
2004-04-23 11:30
2004.06.06
Поиск компонентов на форме