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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2012, 13:46   #1
Hezorin
Новичок
Джуниор
 
Регистрация: 12.02.2012
Сообщений: 2
По умолчанию Добавление запроса ввода пароля для редактирования файла.

Есть телефонный справочник, в котором можно добавить и сохранить в файл нового пользователя. Чтобы можно было открыть файл редактировать эти данные есть отдельная кнопка, которая его и открывает. Надо сделать чтобы после нажатия на нее выдавался запрос для ввода пароля, и если пароль верный файл откроется для редактирования, а если нет, то нет.
Помогите с кодом пожалуйста. И вот сама прога.
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls,ShellAPI;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Panel1: TPanel;
    lbl1: TLabel;
    edt1: TEdit;
    lbl2: TLabel;
    edt2: TEdit;
    lbl3: TLabel;
    edt3: TEdit;
    Button1: TButton;
    Label1: TLabel;
    Edit1: TEdit;
    Button2: TButton;
    CheckBox1: TCheckBox;
    Label2: TLabel;
    Button3: TButton;
    Button4: TButton;
    memo2: TMemo;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    Button5: TButton;
    procedure CheckBox1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

const
 Way='C:\baseTel.xls';// место хранения файла с данными
var
  Form1: TForm1;


implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
// если файла еще нет, то создаем. Если есть, то загружаем его
if not  FileExists(way)  then Memo2.Lines.SaveToFile(Way)
else Memo2.Lines.LoadFromFile(Way);

Panel1.Hide; // скрываем панель  ввода новых данный
Memo2.Hide; // скрываем memo2 т.к. он нужен только как посредник
Memo1.WordWrap:=False;
Memo2.WordWrap:=False;

end;

// показать/спрятать панель для ввода новой записи
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if  CheckBox1.Checked then Panel1.Show
else
 Panel1.Hide;
Memo1.Clear;
end;

 // сохранение новой записи
procedure TForm1.Button1Click(Sender: TObject);
var
  str:string;
begin
  str:='';
str:=Edt1.Text+'#'+Edt2.Text+'#'+Edt3.Text;
if str<>'##' then  // т.е.  хоть одно из Edit не пустой
 begin
  Memo2.Lines.Add(str);
  Memo2.Lines.SaveToFile(way);// загружаем в Memo2- посредник данные, с учетом новых изменений

   Memo1.Lines.Add(Edt1.Text);
   Memo1.Lines.Add(Edt2.Text);
   Memo1.Lines.Add(Edt3.Text);
   Memo1.Lines.Add('______________________________');

  Edt1.Text:=''; Edt2.Text:=''; Edt3.Text:='';
 end;
end;

// поиск
procedure TForm1.Button2Click(Sender: TObject);
var
  i:Integer;
  str,strALC,str1,str2,str3:string;
begin
  Memo1.Clear;
 Edit1.Text:=AnsiLowerCase(Trim(Edit1.Text)); //превращаем все буквы строчные, что бы регистр не мешал поиску
 for i:=0 to Memo2.Lines.Count-1 do
 begin
 strALC:= AnsiLowerCase(Memo2.Lines.Strings[i]); //превращаем все буквы строчные, что бы регистр не мешал поиску
  if Pos(Edit1.Text,strALC)<> 0 then // если есть совпадение
   begin
   // разбиваем строку на составляющие
    str:=Memo2.Lines.Strings[i]; // реальная строка из файла. Без превращения букв в строчные
    str1:=Copy(str,1,Pos('#',str)-1); Delete(str,1,Pos('#',str));
    str2:=Copy(str,1,Pos('#',str)-1); Delete(str,1,Pos('#',str));
    str3:=str;

     if ((CheckBox2.Checked) and  (Pos(Edit1.Text,AnsiLowerCase(str1))<>0)) or
      ((CheckBox3.Checked) and  (Pos(Edit1.Text,AnsiLowerCase(str2))<>0)) or
      ((CheckBox4.Checked) and  (Pos(Edit1.Text,AnsiLowerCase(str3))<>0)) then
      begin
       Memo1.Lines.Add(str1);
       Memo1.Lines.Add(str2);
       Memo1.Lines.Add(str3);
      Memo1.Lines.Add('______________________________________');
     end;
   end;

end;
end;

// показать все записи
procedure TForm1.Button3Click(Sender: TObject);
var
  i:Integer;
   str,str1,str2,str3:string;
begin
  Memo1.Clear;
 for i:=0 to Memo2.Lines.Count-1 do
  begin
    str:=Memo2.Lines.Strings[i];
    str1:=Copy(str,1,Pos('#',str)-1); Delete(str,1,Pos('#',str));
    str2:=Copy(str,1,Pos('#',str)-1); Delete(str,1,Pos('#',str));
    str3:=str;

   Memo1.Lines.Add(str1);
   Memo1.Lines.Add(str2);
   Memo1.Lines.Add(str3);
   Memo1.Lines.Add('______________________________________');
   end;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
ShowMessage('     Внимание!'+#10#13+'Не повредите базу');
ShellExecute (Handle, nil, Way, nil,nil, SW_RESTORE); //открыть документ
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
Memo1.Clear;
end;

end.
Вложения
Тип файла: rar Телефонный справочник - Исходник.rar (178.5 Кб, 8 просмотров)

Последний раз редактировалось Hezorin; 15.02.2012 в 15:15.
Hezorin вне форума Ответить с цитированием
Старый 15.02.2012, 14:21   #2
sxcine
Пользователь
 
Аватар для sxcine
 
Регистрация: 26.05.2010
Сообщений: 78
По умолчанию

на этой кнопке допиши примерно такой код:

if inputbox('Пароль,'введите пароль','0')<>'123' then exit;
sxcine вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форма для ввода условий запроса! Chemik Microsoft Office Access 3 07.12.2011 13:46
Форма ввода пароля R71MT Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 16.06.2011 16:22
Не понимаю работу функции fopen , как найти режим для редактирования текстового файла dykatob Общие вопросы C/C++ 15 02.05.2011 14:44
Поле ввода для пароля Небесный HTML и CSS 2 06.11.2010 21:09
Повторное открытие файла txt для редактирования в delphi Shaggrath Помощь студентам 8 20.07.2009 13:36