I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Lidt noget snavs (kan ikke li' Memo1.Update og Sleep), men det er en mulighed - så kan du selv forbedre den senere.
Jeg har brugt TButton, TEdit, TLabel og TMemo til eksemplet.
procedure TForm1.Button1Click(Sender: TObject); var i: integer; begin if (Length(Edit1.Text) > 0) then begin Memo1.Clear; for i := 1 to length(Edit1.Text) do begin Memo1.Text := Memo1.Text + Edit1.Text[i]; Memo1.Update; sleep(100); end; Label1.Caption := ''; for i := 1 to length(Edit1.Text) do begin Label1.Caption := Label1.Caption + Edit1.Text[i]; Label1.Update; sleep(100); end; end; end;
procedure Skriv(Tekst: String); var i: integer; begin form1.Memo1.Clear; for i := 1 to length(Tekst) do begin form1.Memo1.Text := form1.Memo1.Text + Tekst[i]; form1.Memo1.Update; sleep(100); end; end;
En nød som du ikke har fået løst endnu er hvordan du ændrer edit-cursoren til en firkant-cursor. I mit testprogram (for jeg gik naturligvis i gang med at skyde gråspurve med kanoner) har jeg endnu ikke fået det til at lykkes.
P.S. Jeg brugte en TTimer som jeg brugte til at tømme en TQueue for tegn. Det virker fint. Man kan få x,y positionen på der hvor caret'en er - måske skulle man bare placere en firkant ovenpå?
procedure TfrmMain.FormCreate(Sender: TObject); begin eBuffer.Text := ''; mTypedData.Text := '';
procedure TfrmMain.FormDestroy(Sender: TObject); begin // Nothing's allocated - using a pointer to hold the ascii char // (which is a terrible hack..). fQueue.Free; end;
procedure TfrmMain.btnTypeClick(Sender: TObject); var i : integer; st : string; begin st := eBuffer.Text; tTypeTimer.Enabled := false; try for i := 0 to length(st) do // Pushing the characters fQueue.Push(pointer(ord(st[i]))); eBuffer.Text := ''; finally tTypeTimer.Enabled := true; end; // try end;
procedure TfrmMain.tTypeTimerTimer(Sender: TObject); var ch : char; begin if fQueue.Count = 0 then exit;
if not mTypedData.Focused then mTypedData.SetFocus;
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.