Hallo allemaal,
Er is een probleem met onderstaande component. In run-time werkt de component uitstekend, maar bij het inladen van een programma waar deze component wordt gebruikt wordt OpenDialog gestart en wordt er om een filenaam gevraagd. Om hier uit te komen gebruik ik dan maar de knop Annuleren. Hoe is dit te voorkomen?
Met een vriendelijke groet, Frans
Code:
{==============================================================================
Naam component : proef
Maker :
Copyright (c) : Geen
Versie :
Datum : 22-02-2018
Doel :
Componenten palet : Samples
Component : Delphi en Lazarus
Naam .PNG-bestand : TTest.PNG (Lazarus)
Naam .LRS-bestand : Test_icon.lrs (Lazarus)
Historie : Datum Omschrijving
---------- ------------------------------------------------
22-02-2018 Start ontwikkeling component
TComponent
|
+--- TTest
==============================================================================}
Unit proef;
{$IFDEF FPC}
{$MODE Delphi}
{$ENDIF}
Interface
Uses
{$IFNDEF FPC}
Windows,
{$ELSE}
LCLIntf,
LCLType,
LMessages,
LResources,
{$ENDIF}
Messages,
SysUtils,
Variants,
Classes,
Graphics,
Controls,
Forms,
Dialogs,
StdCtrls,
ExtCtrls;
Type
TTest = Class(TComponent)
Private { Private declarations }
FIn_FileName: STRING;
FIn_FileKeuze: BOOLEAN;
PROCEDURE SetIn_FileKeuze(Value: BOOLEAN);
Protected { Protected declarations }
Public { Public declarations }
Constructor Create(AOwner : TComponent); Override;
Destructor Destroy; Override;
Function Execute : Boolean;
Published { Published declarations }
Property Tag;
PROPERTY In_FileName: STRING read FIn_FileName write FIn_FileName;
PROPERTY In_FileKeuze: BOOLEAN read FIn_FileKeuze write SetIn_FileKeuze;
End;
Procedure Register;
Implementation
{==============================================================================
Procedure : Register
Maker :
Datum : 22-02-2018
Argument :
Resultaat :
Doel : Registreren van de component
==============================================================================}
Procedure Register;
Begin
// Verwijder "//" in onderstaande regel als dit bestand is gemaakt
//{$I Test_icon.lrs}
RegisterComponents('Samples', [TTest]);
End;
{==============================================================================
Procedure : Create
Maker :
Datum : 22-02-2018
Argument : Sender: TObject
Resultaat : Geen
Doel : Initiatie van de component
==============================================================================}
Constructor TTest.Create(AOwner : TComponent);
Begin
Inherited Create(AOwner);
End;
{==============================================================================
Procedure : Destroy
Maker :
Datum : 22-02-2018
Argument : Geen
Resultaat : Geen
Doel :
==============================================================================}
Destructor TTest.Destroy;
Begin
Inherited Destroy;
End;
{==============================================================================
Function : Execute
Maker :
Datum : 22-02-2018
Argument : Geen
Resultaat : True of False
Doel : Uitvoeren
==============================================================================}
Function TTest.Execute : Boolean;
Begin
Result := False;
End;
PROCEDURE TTest.SetIn_FileKeuze(Value: BOOLEAN);
VAR
OpenDialog: TOpenDialog;
BEGIN
IF csDesigning IN ComponentState THEN
BEGIN
OpenDialog := TOpenDialog.Create(nil);
TRY
OpenDialog.Filter := '*.CSV|*.CSV';
IF OpenDialog.Execute THEN
BEGIN
FIn_FileName := OpenDialog.filename;
END;
FINALLY
OpenDialog.Free;
END;
END;
END;
{******************************************************************************}
Initialization
//RegisterClass(T...)
End.
Bookmarks