/jcl/examples/windows/clr/ClrDemoStringsForm.pas

https://github.com/the-Arioch/jcl · Pascal · 54 lines · 41 code · 11 blank · 2 comment · 0 complexity · b13271102e4599e8f0c453b6e22c57eb MD5 · raw file

  1. unit ClrDemoStringsForm;
  2. interface
  3. uses
  4. Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  5. StdCtrls, Buttons, ComCtrls, JclCLR;
  6. type
  7. TfrmStrings = class(TForm)
  8. lstStrings: TListView;
  9. btnOK: TBitBtn;
  10. procedure lstStringsData(Sender: TObject; Item: TListItem);
  11. private
  12. FStream: TJclCLRStringsStream;
  13. procedure ShowStrings(const AStream: TJclCLRStringsStream);
  14. public
  15. class procedure Execute(const AStream: TJclCLRStringsStream);
  16. end;
  17. implementation
  18. {$R *.DFM}
  19. uses
  20. JclUnicode;
  21. { TfrmStrings }
  22. class procedure TfrmStrings.Execute(const AStream: TJclCLRStringsStream);
  23. begin
  24. with TfrmStrings.Create(nil) do
  25. try
  26. ShowStrings(AStream);
  27. ShowModal;
  28. finally
  29. Free;
  30. end;
  31. end;
  32. procedure TfrmStrings.ShowStrings(const AStream: TJclCLRStringsStream);
  33. begin
  34. FStream := AStream;
  35. lstStrings.Items.Count := FStream.StringCount;
  36. end;
  37. procedure TfrmStrings.lstStringsData(Sender: TObject; Item: TListItem);
  38. begin
  39. Item.Caption := IntToStr(Item.Index);
  40. Item.SubItems.Add(IntToHex(FStream.Offsets[Item.Index], 8));
  41. Item.SubItems.Add(FStream.Strings[Item.Index]);
  42. end;
  43. end.