Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem mit einer Unit (https://www.delphipraxis.net/28323-problem-mit-einer-unit.html)

LoW_FloW 23. Aug 2004 10:29


Problem mit einer Unit
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe eine Unit erstellt, die mir Objekte für das HaputFormblatt erstellen soll...

Der folgende Quelltext funktioniert aber nicht so recht:
Delphi-Quellcode:
unit CreateForm;

interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Menus, Buttons, ImgList, ComCtrls;

procedure CreateLoadingForm;

var lblLade2: TLabel;

implementation

uses uForm1;

procedure CreateLoadingForm;
begin
  lblLade2.Create(nil);
  with lblLade2 do
  begin
    Caption := 'Lade...';
    Font.Color := clWindow;
    Font.Name := 'Comic Sans MS';
    Font.Size := 30;
    Font.Style := [fsBold];
    Left := 442;
    Top := 688;
    Transparent := true;
  end;
end;
 

end.
Ich habe mal nen Screenshot vom Fehler gemacht und zu diesem Thread angehängt.

Vielen Dank im Vorraus 8).

Sanchez 23. Aug 2004 10:31

Re: Problem mit einer Unit
 
Du hast sowas wie nen Standardfehler gemacht :mrgreen:

Ein Objekt wird nicht so
Delphi-Quellcode:
  lblLade2.Create(nil);
erzeugt, sondern auf diese Weise:

Delphi-Quellcode:
  lblLade2 := TLabel.Create(nil);

LoW_FloW 23. Aug 2004 10:36

Re: Problem mit einer Unit
 
Danke :thumb:, jetzt gibt jetzt keinen Fehler mehr !

Doch ein weiteres problem ist aufgetreten: Das label wird nicht auf dem Formblatt angezeigt :roteyes:.

Sanchez 23. Aug 2004 10:41

Re: Problem mit einer Unit
 
Kann es auch gar nicht.

Du musst entweder beim Create den Besitzer angeben:

Delphi-Quellcode:
 lblLade2 := TLabel.Create(Formblatt);
oder den Parent setzen:

Delphi-Quellcode:
 lblLade2.Parent := Formblatt;
Beachten solltest du, dass du alle Komponenten die du mit .Create(nil) erzeugst auch wieder selber freigeben musst. Ansonsten werden sie vom angegebenen Formular freigegeben, wenn das Formular zerstört wird.

Luckie 23. Aug 2004 10:44

Re: Problem mit einer Unit
 
Er sollte beides angeben, wobei der Parent für das Zeichnen verantwortlich ist und der Besitzer für den Speicher.

LoW_FloW 23. Aug 2004 10:48

Re: Problem mit einer Unit
 
Vielen dank euch beiden...JETZT GEHT ALLES :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:44 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