Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.04.17;
Скачать: [xml.tar.bz2];

Вниз

Проблема с эдитами.   Найти похожие ветки 

 
Furyous   (2003-04-03 08:18) [0]

У меня на edit, на даблклик стоит 2 условия:

procedure TForm1.P2DblClick(Sender: TObject);
var i :integer;
begin
if (enable[1] = false) then
begin
form1.p1.ReadOnly := false;
form1.p1.Color := clbtnhighlight;
end

else
begin
form1.p1.ReadOnly := true;
form1.p1.Color := clbtnface;
end;
enable[1] := not enable[i];

end;

Но поскольку эдитов будет много, я сделал процедуру:

procedure enablez(i : integer);
begin

if (enable[i] = false) then
begin
form1.p1.ReadOnly := false;
form1.p1.Color := clbtnhighlight;
end

else
begin
form1.p1.ReadOnly := true;
form1.p1.Color := clbtnface;
end;
enable[i] := not enable[i];

end;

и на дабл клик просто посылаю сюда i и вызываю процедуру.

И тут появилась проблема, нужно как-то менять этот p1, т.к. оно тока на один эдит работать

будет. Подскажите решение.


 
TY   (2003-04-03 08:50) [1]

Скажи толком что тебе надо сделать. Что то я в твоем коде
с трудом ориетируюсь. На словах.


 
Bel   (2003-04-03 09:54) [2]

Обрати внимание, у тебя при вызове метода есть параметр Sender: TObject. Его то и надо использовать. Пример:
(Sender as TEdit).ReadOnly := True;


 
Михаил Баринов   (2003-04-03 10:03) [3]

Если я правильно понял, то тебе нужно по даблклику на edit-е менять ее доступность и цвет. Это вообще можно проще сделать...

TMyForm = class(TForm)
procedure EditDblClick(Sender: TObject);
end;

procedure TMyForm.EditDblClick(Sender: TObject);
begin
if not Sender is TEdit then
Exit;
with TEdit(Sender) do
begin
if ReadOnly then
begin
ReadOnly := False;
Color := clHighLight;
end
else
begin
ReadOnly := True;
Color := clBtnface;
end;
end;
end;

И вешай эту процедуру ко всем edit-ам...


 
Furyous   (2003-04-03 15:16) [4]

TMyForm = class(TForm)
procedure EditDblClick(Sender: TObject);
end; - вот это не рабоает, а если просто тот код на даблклик ставить, то это не нужно, я же для сокращения кода и сделал процедуру смены текста и ридонли.



 
Bel   (2003-04-03 17:22) [5]

Можно сделать всё так, как ты и сделал, если тебе этого хочется.
Ещё раз обращаю твоё внимание на параметр Sender. Передавай его в свою процедуру и там определяй, что за контрол инициировал событие. Методику тебе уже объяснили, даже пример кода дали.
Должно быть что-то типа такого:
procedure enablez(i : integer);


 
Bel   (2003-04-03 17:23) [6]

Прошу прощения, код такой:
procedure enablez(Sender: TObject, i : integer);



 
TY   (2003-04-04 01:59) [7]

Я не зря спросил о целях задачи, они до сих пор четко не ясны если просто надо по двойному клику менять цвет и делать любой едит недоступным для редактирования то это делается так

procedure TForm1.DogadaysaSam;
begin
If TEdit(ActiveControl).Color=clRed Then begin
TEdit(ActiveControl).ReadOnly:=False;
TEdit(ActiveControl).Color:=clWhite end Else begin
TEdit(ActiveControl).Color:=clRed ;
TEdit(ActiveControl).ReadOnly:=True;
end
end;


procedure TForm1.Edit1DblClick(Sender: TObject);
begin
DogadaysaSam;
end;
procedure TForm1.Edit2DblClick(Sender: TObject);
begin
DogadaysaSam;
end;

если что то другое то скажи и тебе помогут, а то получается
"Догадайся сам!!"


 
Furyous   (2003-04-04 14:32) [8]

Во, канает, снкс.



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

Форум: "Основная";
Текущий архив: 2003.04.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
6-54782
msoftware
2003-02-24 06:23
2003.04.17
ВОПРОС ПО ID SMTP


3-54403
me2
2003-04-01 11:30
2003.04.17
Как снести IB DescTop Edition


1-54571
it
2003-04-05 21:23
2003.04.17
Куда можно запихнуть болле 2000 строк?


14-54830
AlexT1000
2003-03-31 16:14
2003.04.17
как принудитель очистить swap file


1-54561
Max1111
2003-04-04 12:42
2003.04.17
Проблема с глобальным динамическим массивом3





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский