home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-08-21 | 1.8 KB | 76 lines | [TEXT/PJMM] |
- unit MyTrackTextItems;
-
- interface
-
- procedure TrackTextItemsCreate (dialog: DialogPtr; var data: univ handle);
- procedure TrackTextItemsDestroy (var data: univ handle);
- procedure TrackTextItems (data: univ handle; dialog: DialogPtr);
- function AnyTextItemHasChanged (data: univ handle; dialog: DialogPtr): boolean;
- function TextItemHasChanged (data: univ handle; dialog: DialogPtr; item: integer): boolean;
- function TextItemWas (data: univ handle; item: integer): str255;
-
- implementation
-
- uses
- MyStrh, MyDialogs;
-
- procedure TrackTextItemsCreate (dialog: DialogPtr; var data: univ handle);
- begin
- data := NewStrH;
- TrackTextItems(data, dialog);
- end;
-
- procedure TrackTextItemsDestroy (var data: univ handle);
- begin
- DisposeHandle(data);
- end;
-
- procedure SafeGetItemText (dialog: DialogPtr; item: integer; var s: str255);
- var
- k: integer;
- begin
- s := '';
- GetDItemKind(dialog, item, k);
- if k in [editText, statText] then begin
- GetItemText(dialog, item, s);
- end;
- end;
-
- procedure TrackTextItems (data: univ handle; dialog: DialogPtr);
- var
- i: integer;
- s: str255;
- begin
- for i := 1 to CountDItems(dialog) do begin
- SafeGetItemText(dialog, i, s);
- SetIndStrH(data, i, s);
- end;
- end;
-
- function TextItemWas (data: univ handle; item: integer): str255;
- begin
- TextItemWas := GetIndStrH(data, item);
- end;
-
- function TextItemHasChanged (data: univ handle; dialog: DialogPtr; item: integer): boolean;
- var
- s: str255;
- begin
- SafeGetItemText(dialog, item, s);
- TextItemHasChanged := s <> TextItemWas(data, item);
- end;
-
- function AnyTextItemHasChanged (data: univ handle; dialog: DialogPtr): boolean;
- var
- i: integer;
- begin
- AnyTextItemHasChanged := false;
- for i := 1 to CountDItems(dialog) do begin
- if TextItemHasChanged(data, dialog, i) then begin
- AnyTextItemHasChanged := true;
- leave;
- end;
- end;
- end;
-
- end.