Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Программа "Требуется пароль"


Автор: mr.Anderson 7.1.2005, 17:41
Решил я для спортинтереса сделать такую прогу:
На форме два текстовых поля и две кнопки. Одна из кнопок неактивна. При нажатии на активную кнопку (при определенном значении в текстовых полях) активируется вторая кнопка, а при нажатии на вторую кнопку (при других значениях в текстовых полях) еще что-нибудь происходит. Вот подскажите код, как пишется "если (значение Edit1 такое-то, значение Edit2 такое-то), то происходит что-нибудь". smile

Автор: Necro 8.1.2005, 11:59
if smile

Автор: mr.Anderson 14.1.2005, 21:12
Нет, я понимаю, что if, но я не знаю, как это увязать с текстовыми полями и кнопками. Приведите, пожалуйста, пример кода.

Автор: Duster 15.1.2005, 13:07
if(Edit1->Text=="ВАСЯ") Button2->Enabled = true;

Автор: InfMag 16.1.2005, 10:24
Цитата(sim7 @ 14.1.2005, 21:12)
Нет, я понимаю, что if, но я не знаю, как это увязать с текстовыми полями и кнопками. Приведите, пожалуйста, пример кода.

Вот так:
Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{


if (Edit1 -> Text == "User" && Edit2 -> Text == "Password") {
 Button2 -> Enabled = TRUE;
} else {
 Button2 -> Enabled = FALSE;
}


}


Автор: Nicky 28.2.2005, 14:35
Для сравнения двух строк используется функция: strcomp(s1,s2);
функция возвращает 0 если строки идентичны.

Автор: _hunter 28.2.2005, 17:05
это для cstr. для AnsiString ( у него оператор сравнения перегружен ) можно и просто == / !=

Автор: Nicky 1.3.2005, 20:01
С помошью strcmp(s1,s2) можно сравнить строки не только на идентичность но и выяснить какая из них больше.
Вопрос такой: для AnsiString можно использовать >/</>=/<= или нет?

Автор: _hunter 1.3.2005, 20:05
а чего бы самому не глянуть? ;)

AnsiString::operator <
Compares two strings.

bool __fastcall operator <(const AnsiString& rhs) const;

Description

Returns true if this AnsiString is less than rhs, false otherwise.

Note: This operator performs a simple byte-level numeric comparison. For locale support, or to ignore case, use the AnsiCompare or AnsiCompareIC methods.

Автор: NoeR 1.3.2005, 20:15
InfMag имхо не совсем тот код ты показал smile
Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (Edit1->Text == "fmR")
 {
  Button2->Enable = 1;
 }
}

А потом так:
Код

void __fastcall TForm1::Button2Click(TObject *Sender)
{
if (Edit2->Text == "PapaMilaRamu") //тут можно еще раз проверить первый Едит, или выше его заблочить по причине - "правильно"
 {
  ShowMessage("Вот твой что-нибудь;)");
 }
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)