home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-07-21 | 3.3 KB | 126 lines | [TEXT/CWIE] |
- unit MyFinderControl;
-
- interface
-
- uses
- Files;
-
- function FinderSetColour( const spec: FSSpec; colour: integer ): OSErr;
-
- implementation
-
- uses
- AppleEvents, AERegistry, AEPackObject, AEObjects,
- MyAEUtils, MyFileSystemUtils;
-
- function CreateFinderEvent (classid, eventid: AEEventID; var event: AEDesc): OSErr;
- var
- target: AEDesc;
- err: OSErr;
- begin
- AECreate( target );
- AECreate( event );
- err := CreateSignatureDesc( 'MACS', target );
- if err = noErr then begin
- err := AECreateAppleEvent( classid, eventid, target, kAutoGenerateReturnID, kAnyTransactionID, event );
- end;
- AEDestroy( target );
- if err <> noErr then begin
- AEDestroy( event );
- end;
- CreateFinderEvent := err;
- end;
-
- function FinderSetColour( const spec: FSSpec; colour: integer ): OSErr;
- var
- err: OSErr;
- event, reply: AppleEvent;
- result: longint;
- obj, name_desc, prop_desc, parent: AEDesc;
- fullpath: Str255;
- begin
- AECreate( event );
- AECreate( reply );
- AECreate( obj );
- AECreate( name_desc );
- AECreate( prop_desc );
- AECreate( parent );
-
- err := CreateFinderEvent( kAECoreSuite, kAESetData, event );
-
- if err = noErr then begin
- err := FSSpecToFullPath( spec, fullpath );
- end;
- if err = noErr then begin
- err := CreateStringDesc( fullpath, name_desc );
- end;
- if err = noErr then begin
- err := CreateTypeDesc( 'labi', prop_desc );
- end;
- if err = noErr then begin
- err := CreateObjSpecifier(cItem, AENull, formName, name_desc, false, parent);
- end;
- if err = noErr then begin
- err := CreateObjSpecifier(cLongInteger, parent, formPropertyID, prop_desc, false, obj);
- end;
-
- if err = noErr then begin
- err := AEPutParamDesc( event, keyDirectObject, obj );
- end;
- if err = noErr then begin
- err := PutLongToAERecord( event, keyAEData, colour );
- end;
- if err = noErr then begin
- err := AESend( event, reply, kAEWaitReply, kAENormalPriority, kAEDefaultTimeout, nil, nil);
- end;
- if (err = noErr) & (GetLongFromAERecord( event, keyErrorNumber, result ) = noErr) then begin
- err := result;
- end;
-
- AEDestroy( event );
- AEDestroy( reply );
- AEDestroy( obj );
- AEDestroy( name_desc );
- AEDestroy( prop_desc );
- AEDestroy( parent );
- FinderSetColour := err;
- end;
-
- end.
-
- function FinderSetColour( const spec: FSSpec; colour: integer ): OSErr;
- var
- err: OSErr;
- event, reply: AppleEvent;
- result: longint;
- begin
- err := CreateFinderEvent( kAECoreSuite, kAESetData, event );
- if err = noErr then begin
- err := PutFSSpecToAERecord( event, keyDirectObject, spec );
- end;
- if err = noErr then begin
- err := PutLongToAERecord( event, keyAEData, colour );
- end;
- if err = noErr then begin
- err := AESend( event, reply, kAEWaitReply, kAENormalPriority, kAEDefaultTimeout, nil, nil);
- end;
- if (err = noErr) & (GetLongFromAERecord( event, keyErrorNumber, result ) = noErr) then begin
- err := result;
- end;
- FinderSetColour := err;
- end;
-
- ffspec, null, formName, path string, filedesc
- integer, filedesc, formPropertyID, typeType:labi
-
- desired class, container, key form, key data desc, dispose inputs, result
- formPropertyID, typeType:labi
-
- err := CreateObjSpecifier(cItem, root_desc, formName, name_desc, false, parent);
- end; (* if *)
- if err = noErr then begin
- err := CreateObjSpecifier(cQDPoint, parent, formPropertyID, prop_desc, false, obj);
- end; (* if*)
-
-
-