Also, ich habe (weil es mich einfach interessiert) mal versucht so etwas zu bauen !
Ich denke, das ist keine schöne Lösung, aber es funktioniert.
Ich habe ein Form mit einem Edit (Edit1) und einem Memofeld (Memo1)
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 =
class(TForm)
Edit1: TEdit;
Memo1: TMemo;
procedure Edit1KeyDown(Sender: TObject;
var Key: Word;
Shift: TShiftState);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
BefehlListe : TStringList;
Befehl : Integer;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
Befehl := -1;
//kein Befehl
BefehlListe := TStringList.Create;
//Dies gilt nur der Veranschaulichung,
//später würde ich die Befehle aus einer textDatei Laden (
// mit BefehlListe.Loadfromfile('BefehlFile.dat');
BefehlListe.Add('
MEMO.FONT.COLOR');
//0
BefehlListe.Add('
MEMO.HEIGHT');
//1
BefehlListe.Add('
MEMO.WEIGHT');
//2 Wobei ich denke, dass Du Width meinst
// usw. .......
end;
//OnKeyDown des Edit
procedure TForm1.Edit1KeyDown(Sender: TObject;
var Key: Word;
Shift: TShiftState);
var Index : Integer;
begin
if (Key = VK_Return)
then
begin
if Edit1.text = '
='
then //Das = war ja von Dir gewünscht, aber es tut nichts
begin
Edit1.Text := '
';
exit;
end;
if Befehl <> -1
then
begin
case Befehl
of
0 :
begin //Memo.Font.Color
try
Memo1.Font.Color := TColor(Edit1.Text);
except
ShowMessage('
ungültige Eingabe');
end;
end;
1 :
begin //Memo.Height
try
Memo1.Height := StrToInt(Edit1.Text);
except
ShowMessage('
ungültige Eingabe');
end;
end;
2 :
begin //Memo.Weight
try
Memo1.Width := StrToInt(Edit1.Text);
except
ShowMessage('
ungültige Eingabe');
end;
end;
// usw ................
end;
end;
Befehl := BefehlListe.IndexOf(UPPERCASE(Edit1.text));
Edit1.Text := '
';
end;
end;
end.
Kannst ja mal gucken ob es das ist was Du meinst !