Changeset 13 for trunk/Forms/FormMessages.pas
- Timestamp:
- Apr 21, 2026, 2:55:51 PM (6 days ago)
- File:
-
- 1 edited
-
trunk/Forms/FormMessages.pas (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Forms/FormMessages.pas
r5 r13 4 4 5 5 uses 6 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls; 6 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls, 7 Generics.Collections; 7 8 8 9 type 10 TMessage = class 11 Text: string; 12 end; 13 14 { TMessages } 15 16 TMessages = class(TObjectList<TMessage>) 17 function AddNew(Text: string): TMessage; 18 end; 9 19 10 20 { TFormMessages } … … 12 22 TFormMessages = class(TForm) 13 23 Memo1: TMemo; 24 Timer1: TTimer; 25 procedure FormCreate(Sender: TObject); 26 procedure FormDestroy(Sender: TObject); 27 procedure Timer1Timer(Sender: TObject); 14 28 private 15 29 FMessages: TMessages; 30 FReloadPending: Boolean; 16 31 public 17 32 procedure AddMessage(Text: string); … … 23 38 {$R *.lfm} 24 39 40 { TMessages } 41 42 function TMessages.AddNew(Text: string): TMessage; 43 begin 44 Result := TMessage.Create; 45 Result.Text := Text; 46 Add(Result); 47 end; 48 25 49 { TFormMessages } 50 51 procedure TFormMessages.Timer1Timer(Sender: TObject); 52 var 53 I: Integer; 54 begin 55 if FReloadPending then begin 56 FReloadPending := False; 57 Memo1.Lines.BeginUpdate; 58 Memo1.Lines.Clear; 59 for I := 0 to FMessages.Count - 1 do 60 Memo1.Lines.Add(FMessages[I].Text); 61 Memo1.Lines.EndUpdate; 62 end; 63 end; 64 65 procedure TFormMessages.FormCreate(Sender: TObject); 66 begin 67 FMessages := TMessages.Create; 68 end; 69 70 procedure TFormMessages.FormDestroy(Sender: TObject); 71 begin 72 FreeAndNil(FMessages); 73 end; 26 74 27 75 procedure TFormMessages.AddMessage(Text: string); 28 76 begin 29 Memo1.Lines.Add(Text); 77 FMessages.AddNew(Text); 78 FReloadPending := True; 30 79 end; 31 80
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/mzxemu/chrome/site/your_project_logo.png)