Returns the character for a specified ASCII value.
function Chr(X: Byte): Char;
Char Chr(Byte X);
Chr returns the character with the ordinal value (ASCII value) of the byte-type expression, X.
Delphi Examples:
{ This example requires: TRichEdit, TRadioGroup, TCheckBox, TButton. Clicking the Radio Group control sets the ScrollBar style of the RichEdit. Toggling the Check Box turns HideScrollBars on and off. Clicking the button loads the Rich Edit with a large amount of contiguous text. } procedure TForm1.Button1Click(Sender: TObject); var I: Integer; begin RichEdit1.Lines.Clear; for I := 0 to 500 do begin RichEdit1.Text := RichEdit1.Text + 'test line ' + IntToStr(I) + ' '; if (i mod 4 = 0) then RichEdit1.Text := RichEdit1.Text + Chr(13); end; // move text cursor to top of editend; RichEdit1.SelStart := 0; end; procedure TForm1.CheckBox1Click(Sender: TObject); begin RichEdit1.HideScrollbars := CheckBox1.Checked; end; procedure TForm1.RadioGroup1Click(Sender: TObject); const ScrollBarA: array[0..3] of TScrollStyle = ( ssBoth, ssHorizontal, ssNone, ssVertical); begin RichEdit1.ScrollBars := ScrollBarA[RadioGroup1.ItemIndex]; end; procedure TForm1.FormCreate(Sender: TObject); begin with RadioGroup1, Items do begin Caption := 'Scroll Bars'; Clear; Add('ssBoth'); Add('ssHorizontal'); Add('ssNone'); Add('ssVertical'); end; with CheckBox1 do begin Caption := 'HideScrollBars'; Checked := True; end; Button1.Caption := 'Loaded'; RichEdit1.Text := 'Just a little text.'; RichEdit1.WordWrap := False; end;
{ The following example shows how to complete partial strings typed into a combo box. The code represents the OnKeyPress event handler of the combo box, which performs most of the default keystroke handling before finding a matching list item and updating the text. Note: This OnKeyPress event handler does not deal with the case when the user types the Delete key. That case must be caught in the OnKeyDown event handler instead. Note: Set the TComboBox AutoComplete to false to turn off default auto completion. } procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char); var Found: boolean; i, ct, SelSt: Integer; TmpStr: string; begin { first, process the keystroke to obtain the current string } { This code requires all items in list to be uppercase} if Key in ['a'..'z'] then Dec(Key,32); {Force Uppercase only!} ct := (Sender as TComboBox).Items.Count; with (Sender as TComboBox) do begin SelSt := SelStart; if (Key = Chr(vk_Back)) and (SelLength <> 0) then TmpStr := Copy(Text, 1, SelStart) + Copy(Text, SelLength + SelStart + 1, 255) else if Key = Chr(vk_Back) then {SelLength = 0} TmpStr := Copy(Text, 1, SelStart-1) + Copy(Text, SelStart + 1,255) else {Key in ['A'..'Z', etc]} TmpStr := Copy(Text, 1, SelStart) + Key + Copy(Text, SelLength + SelStart + 1, 255); if TmpStr = '' then Exit; { update SelSt to the current insertion point } if (Key = Chr(vk_Back)) and (SelSt > 0) then Dec(SelSt) else if Key <> Chr(vk_Back) then Inc(SelSt); Key := #0; { indicate that key was handled } if SelSt = 0 then begin Text:= ''; Exit; end; {Now that TmpStr is the currently typed string, see if we can locate a match } Found := False; for i := 1 to ct do begin if Copy(Items[i - 1], 1, Length(TmpStr)) = TmpStr then begin Text := Items[i-1]; { update to the match that was found } ItemIndex := i-1; Found := True; Break; end; end; if Found then { select the untyped end of the string } begin SelStart := SelSt; SelLength := Length(Text) - SelSt; end else Beep; end; end; var CharSetList : TStringList; procedure TForm1.AddCharacterSet(const S: string); begin CharSetList.Add(S); end; procedure TForm1.FormCreate(Sender: TObject); begin CharSetList := TStringList.Create; Graphics.GetCharsetValues(AddCharacterSet); ComboBox1.Items := CharSetList; end;
Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
|
What do you think about this topic? Send feedback!
|