Читать «Виртуальная библиотека Delphi» онлайн - страница 155

Unknown

Пример:

procedure TForm1.FormCreate(Sender: TObject);

begin

 Memo1.Alignment := taRightJustify;

 Memo1.MaxLength := 24;

 Memo1.WantReturns := false;

 Memo1.WordWrap := false;

end;

procedure MultiLineMemoToSingleLine(Memo : TMemo);

var t : string;

begin

 t := Memo.Text;

 if Pos(#13, t) > 0 then begin

  while Pos(#13, t) > 0 do delete(t, Pos(#13, t), 1);

  while Pos(#10, t) > 0 do delete(t, Pos(#10, t), 1);

  Memo.Text := t;

 end;

end;

procedure TForm1.Memo1Change(Sender: TObject);

begin

 MultiLineMemoToSingleLine(Memo1);

end;

procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);

begin

 MultiLineMemoToSingleLine(Memo1);

end;

Вопрос:

Как запрограммировать undo?

Ответ:

См. пример

Memo1.Perform(EM_UNDO, 0, 0);

Если Вы хотите узнать, возможно ли выполнить операцию "Undo", проверьте "Undo status":

If Memo1.Perform(EM_CANUNDO, 0, 0) <> 0 then begin

 {Undo is possible}

end;

Для выполнения "Redo" выполните "Undo" еще раз.

Вопрос:

Можно ли создать форму, которая получает дополнительные параметры в методе Сreate?

Ответ:

Просто замените конструктор Create класса Вашей формы.

Пример:

unit Unit2;

interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type TForm2 = class(TForm)

private

 {Private declarations}

public

 constructor CreateWithCaption(aOwner: TComponent; aCaption: string);

 {Public declarations}

end;

var Form2: TForm2;

implementation

{$R *.DFM}

constructor TForm2.CreateWithCaption(aOwner: TComponent; aCaption: string);

begin

 Create(aOwner);

 Caption := aCaption;

end;

uses Unit2;

procedure TForm1.Button1Click(Sender: TObject);

begin

 Unit2.Form2 :=Unit2.TForm2.CreateWithCaption(Application, 'My Caption');

 Unit2.Form2.Show;

end;

Вопрос:

Как бы мне создать эдакий trackbar в котором вместо широкой белой полоски с ползунком была бы тонкая линия?

Ответ:

В примере создается компонент, унаследованный от TTrackbar который переопределяет метод CreateParams и убират флаг TBS_ENABLESELRANGE из Style. Константа TBS_ENABLESELRANGE обьявленна в модуле CommCtrl.

Пример: