AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Meine Komponente wirft Exceptions zur Designtime. Warum?
Thema durchsuchen
Ansicht
Themen-Optionen

Meine Komponente wirft Exceptions zur Designtime. Warum?

Ein Thema von LDericher · begonnen am 30. Okt 2009 · letzter Beitrag vom 30. Okt 2009
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von LDericher
LDericher

Registriert seit: 29. Jan 2007
Ort: Erkelenz
224 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: Meine Komponente wirft Exceptions zur Designtime. Warum?

  Alt 30. Okt 2009, 20:21
So.
Hab den Fehler gefunden: Ich hatte das "read" nach der published property Code vergessen. Jetzt stimmts aber so weit... Und mal ehrlich: Dass hättet ihr doch sehen müssen? Ihr seid doch sonst so gut drauf {Ist jetzt echt ernst gemeint, also nichts falsches reininterpretieren bitte }

Euer LDer

PS: Wenn man einer property den Typ TFileName gibt, kann man im OI ja per Doppelklick/Dialog eine Datei wählen. Gibt es da auch eine Möglichkeit, Ordner auswählbar zu machen?
"Clicking this button you agree with our Verantwortungsverzicht und Abkommen."
Zitat von Ein unentschlossener Programmierer:
Enabled:=true or false or true or false or true or false;
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
946 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#12

Re: Meine Komponente wirft Exceptions zur Designtime. Warum?

  Alt 30. Okt 2009, 22:22
Hi,

bin ja nicht so

nachdem ich einige Sachen (Win7 SDK, WAIK usw. runtergeladen habe) habe ich den Code mal durch D7 und D2K9 gejagt.

Ergebnis:
Der Destructor von THandle ist nicht sauber!
Es sind zwei unterschiedliche Ergebnisse zu erwarten:

1) So wie schon geschreiben, neue App, Unit mTHandler einbinden, Variable deklarieren, zwei Buttons (ein Create, ein Destroy) drauf, F9, Create drücken, App beenden: -> läuft!

2) F9, Create drücken, Destroy drücken, App beeenden: -> läuft nicht.


Her der geänderte destructor:
Delphi-Quellcode:
destructor THandler.Destroy;
var
  I:integer;
begin
  vRawCode.Free;
  vParsedCode.Free;
  for I:= (High(vPlugins))downto 0 do FreeLibrary(vPlugins[I]);
  inherited Destroy;
end;
Und hier die TestApp:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, mTHandler, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
    TH : THandler;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  TH := THandler.Create(Self);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  Button2Click(Sender);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if (TH <> nil) then FreeAndNil(TH); // ein TH.Free geht garnicht, warum?!
end;

end.
So LDericher, nun quäl dich mal selber ein wenig, bis zur Lösung.

An deinem 'vergessenen' read liegt es wohl nicht.

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von LDericher
LDericher

Registriert seit: 29. Jan 2007
Ort: Erkelenz
224 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: Meine Komponente wirft Exceptions zur Designtime. Warum?

  Alt 30. Okt 2009, 23:20
Also bei mir läufts... ich hab natürlich auch den Destruktor geändert, hatte ich das nicht erwähnt? sorry bin etwas verplant heute

Wie gesagt, bei mir gibts keine Probleme; wenn ich die Komponente installiere, kann ich sie so benutzen, wie ich will

LDericher
"Clicking this button you agree with our Verantwortungsverzicht und Abkommen."
Zitat von Ein unentschlossener Programmierer:
Enabled:=true or false or true or false or true or false;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz