Autor Beitrag
R4id
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 28

Win XP Home, Win XP Prof.
D7 Prof., D2006 Arch., BCB2006 Arch.
BeitragVerfasst: Fr 31.07.09 13:21 
Hallo...

Ich will ein Template für ein TEdit erstellen, damit meine ich folgendes:

Ich gebe 'alias' ein anschließend soll er im Edit 'alias "<name>" "<commands>"' anzeigen und dabei "<name>" selektieren, wenn Tab gedrückt wird soll er dann "<commands>" selektieren.

Folgenden Code hab ich schon, verfehlt aber das Ziel und dabei funktioniert auch die Aktion mit dem Tab-Button nicht:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
uses
  StrUtils;

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var
  P1, P2: Integer;
begin
  if (Key = VK_TAB) then
  begin
    if (Pos('<', Edit1.Text) = 0or (Pos('>', Edit1.Text) = 0or (Pos('<', Edit1.Text) > Pos('>', Edit1.Text)) then
      Exit;

    P1 := Pos('<', Edit1.Text) - 1;
    P2 := PosEx('>', Edit1.Text, P1) - P1;

    Edit1.SelStart := P1;
    Edit1.SelLength := P2;
  end;
end;

procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
var
  iLen, P1, P2: Integer;
  sText: string;
begin
  iLen := Length(Edit1.Text);
  sText := Edit1.Text;

  if (iLen = 5and (sText = 'alias'then
  begin
    Edit1.Text := 'alias "<name>" "<command>"';

    P1 := Pos('<', Edit1.Text) - 1;
    P2 := PosEx('>', Edit1.Text, P1) - P1;

    Edit1.SelStart := P1;
    Edit1.SelLength := P2;
  end;
end;


Gruß
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Fr 31.07.09 14:30 
Wenn Du Key selber behandelst, solltest Du die bearbeiteten Tasten mit Key := #0; abändern, damit Delphi diese nicht mehr bearbeitet.

Ferner zweifel ich ein wenig an deiner Index-Berechnung bei dem SelStart\SelLength. Ferner muss, damit das funktioniert KeyPreview der Form auf True stehen.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
martin300
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 186
Erhaltene Danke: 2



BeitragVerfasst: Fr 31.07.09 14:44 
Das fehlt noch zur Erkennung der Tabulator Taste.

www.delphi-forum.de/...ight=tabulator+taste