Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2016, 23:00   #1
Almaz92
Пользователь
 
Регистрация: 12.03.2016
Сообщений: 17
По умолчанию Если коннект то кнопка Button2 должна быть скрыта, и если дисконнект, то кнопка Button2 должна появляться/ компонент IdSMTP

Задача моего приложения заключается в проверке соединения с хостом!
Если коннект то кнопка Button2 должна быть скрыта, и если дисконнект, то кнопка Button2 должна появляться! Я использовал компонент IdSMTP!
Проверкой управляет таймер!" Но вот почему то не пойму одну вещь!
После запуска приложения строка условия:
If IdSMTP1.Connected=true then Button2.Visible:=false;
срабатывает, а вот строка условия:
if IdSMTP1.Connected=false then Button2.Visible:=true;
ни в какую не хочет работать! То есть когда я подключаю интернет, у меня кнопка2 исчезает, а когда отключаю , кнопка2 не появляется, хотя согласно условия это должно бы произойти! Подскажите пожалуйста , где здесь загвоздка!


Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
Try

IdSMTP1.Host:= 'smtp.gmail.com';
IdSMTP1.Port:=587;
IdSMTP1.connect;

Except
end;


If IdSMTP1.Connected=true then Button2.Visible:=false;
if IdSMTP1.Connected=false then Button2.Visible:=true;


end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Button1.Click;
end;
end.

Последний раз редактировалось Вадим Мошев; 13.03.2016 в 00:23.
Almaz92 вне форума Ответить с цитированием
Старый 13.03.2016, 04:29   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Код:
Button2.Visible:= not IdSMTP1.Connected;
школота!

И лучше это дело оформить в виде отдельного треда.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 13.03.2016 в 04:31.
min@y™ вне форума Ответить с цитированием
Старый 13.03.2016, 20:52   #3
Almaz92
Пользователь
 
Регистрация: 12.03.2016
Сообщений: 17
По умолчанию

Спасибо за ответ, но что-то я не смог его применить, как это работает? Можно код мой доработанный показать?
Almaz92 вне форума Ответить с цитированием
Старый 13.03.2016, 20:55   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
Спасибо за ответ, но что-то я не смог его применить, как это работает? Можно код мой доработанный показать?
Так не пойдёть! Показывай-ка давай, как пытался применить!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 13.03.2016, 21:06   #5
Almaz92
Пользователь
 
Регистрация: 12.03.2016
Сообщений: 17
По умолчанию

В обработчик таймера пробовал и в обработчик кнопки, чего то я недопонимаю наверно! Ну опыта у меня нет, строго не судите, только начал осваивать!
Almaz92 вне форума Ответить с цитированием
Старый 13.03.2016, 21:12   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

я ж сказал - показывай!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 13.03.2016, 21:18   #7
Almaz92
Пользователь
 
Регистрация: 12.03.2016
Сообщений: 17
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
Try

IdSMTP1.Host:= 'smtp.gmail.com';
IdSMTP1.Port:=587;
IdSMTP1.connect;

Except
end;


If IdSMTP1.Connected=true then Button2.Visible:=false;
Button2.Visible:= not IdSMTP1.Connected;


end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Button1.Click;
end;
end.

Вариант 2


Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
Try

IdSMTP1.Host:= 'smtp.gmail.com';
IdSMTP1.Port:=587;
IdSMTP1.connect;

Except
end;


procedure TForm1.Timer1Timer(Sender: TObject);
begin
Button1.Click;
If IdSMTP1.Connected=true then Button2.Visible:=false;
Button2.Visible:= not IdSMTP1.Connected;

end;
end.


Вариант 3

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
Try

IdSMTP1.Host:= 'smtp.gmail.com';
IdSMTP1.Port:=587;
IdSMTP1.connect;

Except
end;

If IdSMTP1.Connected=false then Button2.Visible:=true;
If IdSMTP1.Connected=true then Button2.Visible:=false;
Button2.Visible:= not IdSMTP1.Connected;


end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Button1.Click;
end;
end.

Последний раз редактировалось Аватар; 13.03.2016 в 22:35.
Almaz92 вне форума Ответить с цитированием
Старый 13.03.2016, 21:38   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Не вижу варианта №0, пример которого приводил я.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 13.03.2016, 21:45   #9
Almaz92
Пользователь
 
Регистрация: 12.03.2016
Сообщений: 17
По умолчанию

Но вы дали только 1 строчку кода!

Button2.Visible:= not IdSMTP1.Connected;
Almaz92 вне форума Ответить с цитированием
Старый 13.03.2016, 21:51   #10
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
Но вы дали только 1 строчку кода!
Вот именно! И никаких IF.
И никаких таймеров. В топку жопу таймер!
Код:
procedure TForm1.AppIdle(Sender: TObject; var Done: Boolean);
begin
  Button2.Visible:= not IdSMTP1.Connected;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  try
    IdSMTP1.connect();
  except on E: Exception do
    Application.MessageBox(PChar(E.Message), 
      'Oh, shit!', MB_OK + MB_ICONSTOP);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  IdSMTP1.Host:= 'smtp.gmail.com';
  IdSMTP1.Port:= 587;
  Application.OnIdle:= AppIdle;
end;
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 13.03.2016 в 22:09.
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проверить если кнопка нажата на другой форме igelchen Общие вопросы Delphi 10 09.09.2015 16:11
Массивы .Программа должна быть на С адуч2323 Помощь студентам 0 26.12.2011 21:31
Какой должна быть экономика в России? С.М.С Свободное общение 6 11.10.2011 18:16
Какая запись должна быть в трудовой? Saken_ Помощь студентам 5 13.12.2010 20:30
C#кнопка выход должна находиться в невидимом состоянии до 3 и после 5 кликов по картинкам jgosohbis Помощь студентам 2 30.09.2010 09:17