Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.04.2012, 10:22
Дикоша Дикоша вне форума
Прохожий
 
Регистрация: 05.04.2012
Сообщения: 9
Репутация: 10
Стрелка combobox связать с edit

Здравствуйте!) Помогите пожалуйста написать прогу:
Для того чтобы пользователь вошел в базу данных он должен найти себя в списке в combobox(админ. секретарь,бухгалтер итд) и ввести пароль в edit, если совпадает то открывается новая форма а если нет, то сообщ об ошибке....
Ответить с цитированием
  #2  
Старый 05.04.2012, 10:50
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
type
  TForm1 = class(TForm)
    ComboBox1: TComboBox;
    Edit1: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
...
function Check(const User, Pass: String): Boolean;
begin
  Result:=True;
  if (User='админ') and (Pass='sysop') then Exit
  else if (User='секретарь') and (Pass='masha') then Exit
  else if (User='бухгалтер') and (Pass='nomoney') then Exit
  else if (User='итд') and (Pass='anykey') then Exit
  else Result:=False;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if not Check(ComboBox1.Text, Edit1.Text) then ShowMessage('Oops')
  else Form2.ShowModal;
end;

Код:
  object ComboBox1: TComboBox
    Left = 176
    Top = 96
    Width = 145
    Height = 21
    Style = csDropDownList
    ItemHeight = 13
    ItemIndex = 0
    TabOrder = 0
    Text = 'админ'
    Items.Strings = (
      'админ'
      'секретарь'
      'бухгалтер'
      'итд')
  end
__________________
Пишу программы за еду.
__________________

Последний раз редактировалось NumLock, 05.04.2012 в 10:53.
Ответить с цитированием
  #3  
Старый 05.04.2012, 21:18
Дикоша Дикоша вне форума
Прохожий
 
Регистрация: 05.04.2012
Сообщения: 9
Репутация: 10
По умолчанию

Я написала вот так: где у вас ... что нужно вставить?(я новичек, поэтому вопросы могут быть глупыми)
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
function Check(const User, Pass: String): Boolean;
begin
  Result:=True;
  if (User='админ') and (Pass='sysop') then Exit
  else if (User='секретарь') and (Pass='masha') then Exit
  else if (User='бухгалтер') and (Pass='nomoney') then Exit
  else if (User='итд') and (Pass='anykey') then Exit
  else Result:=False;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if not Check(ComboBox1.Text, Edit1.Text) then ShowMessage('Oops')
  else Form2.ShowModal;
end;
end.
Админ: Пользуемся тегами для оформления кода!

И выводит ошибки:
[Error] Unit1.pas(32): Statement expected but 'FUNCTION' found
[Error] Unit1.pas(43): Identifier redeclared: 'TForm1.Button1Click'

Последний раз редактировалось Admin, 06.04.2012 в 09:59.
Ответить с цитированием
  #4  
Старый 05.04.2012, 21:30
nixel nixel вне форума
Начинающий
 
Регистрация: 12.12.2011
Адрес: Москва
Сообщения: 150
Версия Delphi: XE2-U4
Репутация: 131
По умолчанию

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

  function Check(const User, Pass: String): Boolean;
    begin
      Result:=True;
      if (User='админ') and (Pass='sysop') then Exit
      else if (User='секретарь') and (Pass='masha') then Exit
      else if (User='бухгалтер') and (Pass='nomoney') then Exit
      else if (User='итд') and (Pass='anykey') then Exit
      else Result:=False;
    end;

  begin
    if not Check(ComboBox1.Text, Edit1.Text) then ShowMessage('Oops')
    else Form2.ShowModal;
  end;

end с точкой тут не к месту, вы же пишете просто в процедурах, без общего кода в модуле.

описание подпрограмм (в данном случае функции) пишется до бегина родительской процедуры.

проверьте, так должно работать.

p.s. Многоточием обычно отмечается пропущенное место =)
p.p.s. Так же можно функцию вынести за пределы процедуры, дабы сделать ее глобальной. если требуется. можно и не делать)

Последний раз редактировалось nixel, 05.04.2012 в 21:39.
Ответить с цитированием
  #5  
Старый 06.04.2012, 08:32
Дикоша Дикоша вне форума
Прохожий
 
Регистрация: 05.04.2012
Сообщения: 9
Репутация: 10
По умолчанию

Спасибо большое всем!! программка вышла...Но....мне оказывается нужно чуть чуть по другому..надо чтобы когда секретарь вводит пароль открылась одна форма, а когда бухг.другая форма, итд...
Ответить с цитированием
  #6  
Старый 06.04.2012, 08:44
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
uses Unit2, Unit3, Unit4, Unit5;
...
function Check(const User, Pass: String): TForm;
begin
  if (User='админ') and (Pass='sysop') then Result:=Form2
  else if (User='секретарь') and (Pass='masha') then Result:=Form3
  else if (User='бухгалтер') and (Pass='nomoney') then Result:=Form4
  else if (User='итд') and (Pass='anykey') then Result:=Form5
  else Result:=nil;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  AForm: TForm;
begin
  AForm:=Check(ComboBox1.Text, Edit1.Text);
  if AForm=nil then ShowMessage('Oops')
  else AForm.ShowModal;
end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #7  
Старый 08.04.2012, 07:59
Дикоша Дикоша вне форума
Прохожий
 
Регистрация: 05.04.2012
Сообщения: 9
Репутация: 10
По умолчанию

Болшьооооооое спасибо! все работает!!!!!!!!Спасибо,Спасибо,Спасибо
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:54.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025