Базы данных. Создание программы "Телефонный справочник"

Автор работы: Пользователь скрыл имя, 13 Марта 2011 в 20:05, курсовая работа

Описание работы

Процесс разработки в Delphi предельно упрощен. В первую очередь это относится к созданию интерфейса, на который уходит 80% времени разработки программы. Вы просто помещаете нужные компоненты на поверхность Windows-окна (в Delphi оно называется формой) и настраиваете их свойства с помощью специального инструмента (Object Inspector).

Содержание работы

Введение……………………………………………………….3
Назначение и область применения…………….5
Постановка задачи и разработка
Алгоритма решения задачи…………………….6
Заключение……………………………………………………15
Список использованной литературы………………………..16

Файлы: 1 файл

Создание программы телефонный справочник.doc

— 220.00 Кб (Скачать файл)

  lbMessage.Visible := false;

  ProgressBar1.Visible := false;

  IsCanStart := true;

end; 

end. 

                    Приложение 

unit Thread; 

interface 

uses

  Classes, Windows, sysUtils, Progress, forms, dialogs; 

type

  DataThread = class(TThread)

  private

    procedure RemaskMDX;

  protected

    TempDir: PChar;

    procedure Execute; override;

    procedure UpdateProgress;

    procedure UpdateForm;

  end; 

implementation 

procedure DataThread.Execute;

var

    i, j: integer;

   prom: string;

begin

  freeOnTerminate := true;

  with MainForm do begin

    try

      Synchronize(UpdateForm);

      GetMem(TempDir, MAX_PATH);

      GetTempPath(MAx_Path,TempDir);

      CopyFile(PChar(ExtractFilePath(Application.ExeName)+sDataFile),

         PCHar(TempDir + sBuffFile2), true );

      RemaskMDX;

      Table2.TableName := TempDir + sDataFile;

      Table1.TableName := TempDir + sBuffFile;

      Table1.Open;

      Table2.CreateTable;

      Table2.Open;

      Table2.Edit;

      j := 0;

      while not Table1.eof do

      begin

       for i:= 0 to Table1.FieldCount - 1 do

        begin

         prom := Table1.Fields[i].asString; 

         Table2.Fields[i].AsString := Table1.Fields[i].asString;

        end;

        Table1.next;

        Table2.Append;

        Inc(j);

        If j > 1000 then

        begin

          SynchroNize(UpdateProgress);

          j := 0;

        end;

      end;

      Table1.Close;

      Table2.Close; 

      CopyFile(PChar(TempDir + sDataFile),

      PChar(ExtractFilePath(Application.ExeName)+ sDataFile), false );

      CopyFile(PChar(TempDir + sIndexFile),

      PChar(ExtractFilePath(Application.ExeName)+ sIndexFile), false );

      DeleteFile(TempDir + sBuffFile);

      DeleteFile(TempDir + sBuffFile2);

      DeleteFile(TempDir + sDataFile);

      DeleteFile(TempDir + sIndexFile);

      FreeMem(TempDir, MAX_PATH); 

      PostMessage(MainFOrm.Handle, MM_ENDTHREAD, 0, 0);

    except

       on e: exception do PostMessage(MainFOrm.Handle, MM_DATAERROR, StrToInt(e.Message), 0)

    end;

  end;

end; 

procedure DataThread.UpdateProgress;

var Persent: integer;

begin

  with MainFOrm do

  begin

    Persent := trunc(100*(Table1.RecNo/Table1.RecordCount));

    progressBar1.Position := Persent;

    lbPersent.Caption := InttoStr (Persent)+ ' %';

  end;

end; 
 

procedure DataThread.RemaskMDX;

var

  OldFile, NewFile: tFileStream;

  Buffer : byte;

const index = 28;

begin

  OldFile := TFileStream.Create(TempDir + sBuffFIle2, fmOpenRead or fmShareDenyWrite);

  try

    NewFile := TFileStream.Create( TempDir + sBuffFile,fmCreate or fmOpenWrite);

    try

      NewFile.CopyFrom(OldFile ,OldFile.Size);

      NewFile.Position := index;

      Buffer := 0;

      NewFile.Write(Buffer, 1);

    finally

      FreeAndNil(NewFile);

    end;

  finally

    FreeAndNil(OldFile);

  end;

end; 

procedure DataThread.UpdateForm;

begin

  with MainFOrm do

  begin

    Image1.Visible := false;

    ProgressBar1.Visible := true;

    LbPersent.Visible := true;

    lbMessage.Visible := true;

  end;

end; 

end. 

Информация о работе Базы данных. Создание программы "Телефонный справочник"