procedure MixedCaseFirstNameButtonClick(Sender: TObject);
procedure UpperCaseLastNameButtonClick(Sender: TObject);

procedure MixedCaseLastNameButtonClick(Sender: TObject); private

{ Приватные объявления ) public

{ Общедоступные объявления } end;
var EditDemoForm: TEditDemoForm;

implementation

CONST Upper = True; Mixed = False

{$R *.DFM)

FUNCTION IsUpper(Ch : Char) : Boolean, begin IF (Ch >= 'A') AND (Ch <= 'Z') THEN

IsUpper := True ELSE

IsUpper := False;
end;
PROCEDURE TEditDemoForm.ForceCase(TargetField : String;
ToUpper : Boolean);

var WorkBuffer : String, I: Integer; begin WITH AuthorTable DO BEGIN DieableControls ; TRY

First;{ Начать с верха таблицы } WHILE NOT EOF DO{ Делать до конца таблицы } begin WorkBuffer := FieldByName(TargetField).AsString; IF ToUpper THEN

FOR I := 1 TO Length(WorkBuffer) DO WorkBuffer[I] := UpCase(WorkBuffer[I]) ELSE

begin
FOR I := 1 TO Length(WorkBuffer) DO IF IsUpper(WorkBuffer[I]) THEN WorkBuffer[I] := Chr(Ord(WorkBuffer[I])+32); WorkBuffer[1] := UpCase(WorkBuffer[1]);
end;

{Это место где мы фактически записываем в таблицу) Eit; { Поместить таблицу в режим редактирования} FieldByName(TargetField).AsString := WorkBuffer, Post; { Записать изменения в таблицу } Next; { Переместить к следующей записи вниз } END; FINALLY

EnableControls;
end;
END END;
procedure TEditDemoForm.QuitButtonClick(Sender: TObject);
begin
Close;
end;

procedure TEditDemoForm.FormCreate(Sender: TObject); begin WITH AuthorTable DO begin ( Вы можете получить доступ к полю посредством его индекса в списке полей } { Я делаю здесь так - только для демонстрации } Fields[0].DisplayLabel := 'ID'

{ В большинстве случаев, больше смысла - получить доступ к полям по имени } FieldByName('AUTHOR ID').DisplayWidth := 4; FieldByName('AUTHOR ID').Readonly := True;
FieldByName('AUTHOR LAST NAME').DisplayLabel := 'LAST NAME FieldByName('AUTHOR LAST NAME').DisplayWidth := 12; FieldByName('AUTHOR FIRST NAME').DisplayLabel := 'FIRST NAME' FieldByName('AUTHOR FIRST NAME').DisplayWidth := 10; FieldByName('AUTHOR CALL').DisplayLabel := 'CALL'; FieldByName('AUTHOR CALL').DisplayWidth := 10; FieldByName('BIRTH YEAR').Visible := False FieldByName('DEATH YEAR').Visible := False;
end;
end;

procedure TEditDemoForm UpperCaseFirstNameButtonClick(Sender:

TObject);
begin
ForceCase('AUTHOR FIRST NAME', Upper);
end;

procedure TEditDemoForm.MixedCaseFirstNameButtonClxck(

Sender: TObject);
begin
ForceCase('AUTHOR FIRST NAME', Mixed);
end;

procedure TEditDemoForm.UpperCaseLastNameButtonClxck(Sender:

TObject);
begin
ForceCase('AUTHOR LAST NAME', Upper);
end;

procedure TEditDemoForm.MixedCaseLastNameButtonClick(Sender:

TObject);
begin
ForceCase('AUTHOR LAST NAME', Mixed);
end;
end;

Методы, не являющиеся обработчиками событий

До того, как вы начнете делать выводы, что в действительности делает процедура ForceCase, рассматривайте ее как метод объекта, который не яывляется обработчиком событий. В общем и целом, методы, которые вы добавляете к объектам формы, будут обработчиками событий, и Delphi создает их автоматически, когда вы дважды щелкаете мышью по пустой строке события в подокне Events Object Inspector. Тем не менее, иногда полезно иметь метод, который сам по себе не является обработчиком событий, но вызывается обработчиками событий.


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в среде Delphi



Новости за месяц

  • Январь
    2020
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс