Einzelnen Beitrag anzeigen

ASM

Registriert seit: 15. Aug 2004
165 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Absatzmarken in TMemo

  Alt 20. Jan 2014, 12:53
Vielleicht kannst Du hiermit etwas anfangen:
Delphi-Quellcode:
procedure TForm1.SetMemoTab(Memo: TMemo; TabWidth: Integer);
var
  DialogUnitsX: LongInt;
  PixelsX: LongInt;
  TabArray: array[0..19] of integer; // kann ggf. auch größer gesetzt werden
  i: integer;
begin
  Memo.WantTabs := true;
  DialogUnitsX := LoWord(GetDialogBaseUnits);
  PixelsX := TabWidth;
  for i := 1 to Length(TabArray) do
    TabArray[i - 1] := ((PixelsX * i) * 4) div DialogUnitsX;
  SendMessage(Memo.Handle, EM_SETTABSTOPS, Length(TabArray), LongInt(@TabArray));
  Memo.Refresh;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Edit1.Text:='';
  // Starteinstellung, hier mit TabAbstand = 50 Pixel
  SetMemoTab(Memo1, 50);
end;

// Möglichkeit zur nachträglichen Änderung des TabAbstandes
procedure TForm1.Button1Click(Sender: TObject);
Var TabDist: Integer;
begin
  // TabAbstand zuvor in Edit1 vorgeben, z.B. auf 100 Pixel
  if not TryStrToInt(Edit1.text, TabDist) then exit;
  SetMemoTab(Memo1, TabDist);
end;
Die Einstellung der Tabs wirkt sich grundsätzlich immer auf alle Zeilen aus, d.h. dies auch bei nachträglicher Veränderung des Tabulaturabstandes.
  Mit Zitat antworten Zitat