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

Вниз

Помогите разобраться начинающему   Найти похожие ветки 

 
mikki ©   (2007-02-18 12:03) [0]

Я совсем новичок в программировании. Знаю мало, опыт небольшой. ...короче ничего "путного" пока не получилось. Перелопатил кучу литературы, ну и чем дальше, тем больше неясностей.
На данный момент пытаюсь связать компонент edit c button так что бы при невводе данных в edit или удаления из него, button бы блокировался не давая выполнять дальнейшие инструкции приложения....если дальнейшие инструкции выполняются то при пустом edit появляется ошибка...работа приложения останавливается  это в общих чертах.
Понятно что здесь можно решить по разному, но мне нужно именно увязать работу этих компонентов.
...Может быть и есть готовые форм, но ведь хочется разобраться.
Помогите, мож кто сталкивался. Или может я не туда куда полез ?


 
Ega23 ©   (2007-02-18 12:09) [1]

TEdit.OnChange, OnExit


 
Ega23 ©   (2007-02-18 12:09) [2]

Button1.Enabled := (Edit1.Text<>"");


 
Leonid Troyanovsky ©   (2007-02-18 13:02) [3]


> mikki ©   (18.02.07 12:03)  

> Понятно что здесь можно решить по разному, но мне нужно
> именно увязать работу этих компонентов.

Тут возможны несколько подходов (по возрастанию трудоемкости):

1. Создание композитного компонента (sorry, не помню, как точно
подобное зовут) на основе, например, панели или TFrame.
2. Модификация стандартного TEdit для работы в паре
с обычной кнопкой (или TBitBtn, TSpeedButton).
3. Написание собс-ного компонента на базе TCustomEdit, или даже,
возможно, что практически с 0, т.е. с TWinControl.

Выбор варианта зависит от требуемого поведения и доступных
ресурсов. Но, в любом случае, стоит пойти в библиотеку и почитать, например: Рей Конопка. Создание компонентов в среде Дельфи.

Ну, и, наконец, можно обойтись без создания компонента,
т.е. настроив обычные TEdit &TButton by [1,2].

--
Regards, LVT.


 
MsGuns ©   (2007-02-18 16:12) [4]

Леонид, поясните все же, зачем для каждой ерунды типа сабжевой создавать какие-то классы, а тем более писать компоненты ?
Разве что для качества понимания ООП ?


 
Leonid Troyanovsky ©   (2007-02-18 16:21) [5]


> MsGuns ©   (18.02.07 16:12) [4]

> Леонид, поясните все же, зачем для каждой ерунды типа сабжевой
> создавать какие-то классы, а тем более писать компоненты

Не знаю, видимо, показалось - хотел, мол, разобраться окончательно,
не зря ж столько книг прочитано.

Может лишь одной не хватило :)

--
Regards, LVT.


 
Amoeba ©   (2007-02-19 12:26) [6]

Еще можно посмотреть в строну TApplicationEvents.OnIdle и в там прописать Button.Enabled := Length(Trim(Edit.Text)) > 0


 
iXT ©   (2007-02-19 12:36) [7]


> ну и чем дальше, тем больше неясностей

Ну это нормально :)


 
clickmaker ©   (2007-02-19 12:41) [8]

Еще можно посмотреть в сторону Action и Action.OnUpdate


 
mikki ©   (2007-02-19 22:36) [9]


> >Leonid Troyanovsky
>
> >Ну, и, наконец, можно обойтись без создания компонента,
>  
> т.е. настроив обычные TEdit &TButton
>
> так я и делаю , как только я их не мучал...
> Button1.Enabled := (Edit1.Text<>""); и это пробовал и по
> всякому.
>  короче дошёл вот до чего
> procedure TForm1.Edit1KeyPress(Sender: TObject; var Key:
>  Char);
>
> begin
>   case key of
>     "0" .. "9",#8: ;                       // цифры и клавиша
> <backspace>
>
>     #13: Form1.Button1.SetFocus;           // нажатие клавиши
>  <Enter>
>
>     else key := chr(0);                   //все остальные
> символы запрещаю
>   end;
>
>
> end;
>
> procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState;
>  X,
>   Y: Integer);
> begin
>   while     Form1.Edit1.Text = "" do
>    begin
>       Form1.Button1.Enabled := false;
>
>    end;
> всё равно не работает вроде как все окно блокируется или
> может на чём "застревает"
>
>
>


 
mikki ©   (2007-02-19 22:39) [10]

ой:-)


 
vasIZmax ©   (2007-02-19 23:53) [11]


> procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState;
>
> >  X,
> >   Y: Integer);
> > begin
> >   while     Form1.Edit1.Text = "" do
> >    begin
> >       Form1.Button1.Enabled := false;
> >

А зачем тебе это? А если я не буду пользоваться мышью, а нажму Tab и спокойно перейду к кнопке?


 
RASkov   (2007-02-20 00:00) [12]

> [9] mikki ©   (19.02.07 22:39)

При таком подходе мышой лучше не елозить, если в едите нет текста, иначе застрянет и "навечно"...
Ну сделай как в [1],[2] посоветовали:
procedure TForm1.Edit1Exit();
begin
 Button1.Enabled := (Trim(Edit1.Text)<>"");
end;
или
procedure TForm1.Edit1Change();
begin
 Button1.Enabled := (Trim(Edit1.Text)<>"");
end;


 
mikki ©   (2007-02-21 21:38) [13]

Button1.Enabled := (Trim(Edit1.Text)<>""); именно то что нужно.
А я как только не мудрил, тут оказывается функции одной достаточно.
Спасибо!
Правда остается загадкой че за Trim такой(такая)...будем искать :)


 
RASkov   (2007-02-21 21:52) [14]

> [13] mikki ©   (21.02.07 21:38)

:)
Trim вообщем-то не причем. Эта функция возврощает строку без ведомых и ведущих пробелов (т.е. до строки и после пробелы удаляет)
ее я на всякий случай вставил :) оказалось пригодилось :)



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

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

Наверх




Память: 0.48 MB
Время: 0.047 c
2-1171743542
Странник81
2007-02-17 23:19
2007.03.11
Можно ли вывести содержимое ячеек StringGrid в динамический масси


3-1165990587
Алексей В.
2006-12-13 09:16
2007.03.11
QReport, текст после бенда Detail


6-1159950477
POINT
2006-10-04 12:27
2007.03.11
webbrowser


1-1169016136
DelphiLexx
2007-01-17 09:42
2007.03.11
Как изменить цвет в TTabControl e


1-1169091739
22b
2007-01-18 06:42
2007.03.11
TXMLDocument не работает в DLL





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский