Einzelnen Beitrag anzeigen

Benutzerbild von chrisw
chrisw

Registriert seit: 11. Jan 2005
Ort: Schleswig
193 Beiträge
 
Delphi XE8 Professional
 
#10

Re: String auslesen und auf zeichen reagieren und und und ..

  Alt 19. Okt 2006, 16:04
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 !
Christian Wahl
me, myself and I, die lustigen Drei !!
  Mit Zitat antworten Zitat