Текущий архив: 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