Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Eigenschaften von erzeugten Komponenten (https://www.delphipraxis.net/162158-eigenschaften-von-erzeugten-komponenten.html)

himitsu 10. Aug 2011 11:28

AW: Eigenschaften von erzeugten Komponenten
 
Wobei das was in AddNewLabeledEdit oder im Constructor gemacht wird, im Grunde das Selbe ist ... nur eben an unterschiedlichen Stellen.

Maya 10. Aug 2011 12:22

AW: Eigenschaften von erzeugten Komponenten
 
Ich hab jetzt das ganze mal ausprobiert, aber leider noch zu keinen effektiven Ergebnis gekommen.
Den Quelltext habe ich ein klein wenig an meine Bedürfnisse angepasst.

Delphi-Quellcode:
procedure AddNewLabeledEdit(aLeft, aTop, aWidth: Integer; const aCaption, aName, aParent: string);
[...]
implementation
[...]

procedure TneuerEintrag.AddNewLabeledEdit(aLeft, aTop, aWidth: Integer; const aCaption, aName, aParent: string); //Zeile 86
var
  lbledt: TLabeledEdit;
begin
  lbledt:=TLabeledEdit.Create(self);
  lbledt.Left:=aLeft;
  lbledt.Top:=aTop;
  lbledt.Width:=aWidth;
  lbledt.EditLabel.Caption:=aCaption;
  lbledt.Name:='lbledt'+aName;
  lbledt.Parent:=aParent;

  lbledt.Font.Name:='Arial';
  lbledt.EditLabel.Font.Name:='Arial';
  lbledt.Font.Size:=9;
  lbledt.EditLabel.Font.Size:=9;
  lbledt.Show;
end;

[...]
Fehlermeldung: 'frmneuerEintrag' enthält kein Element namens 'AddNewLabeledEdit' in Zeile 86.
Für die Zeile kommt auch der Fehler, dass bei dem Punkt ein ; erwartet wurde und solche ähnlichen Späße.

Bin mir jetzt recht unsicher, wo mein Fehler liegt.

DeddyH 10. Aug 2011 12:23

AW: Eigenschaften von erzeugten Komponenten
 
Wo genau steht das
Zitat:

Delphi-Quellcode:
procedure AddNewLabeledEdit(aLeft, aTop, aWidth: Integer; const aCaption, aName, aParent: string);

?

Maya 10. Aug 2011 12:27

AW: Eigenschaften von erzeugten Komponenten
 
Delphi-Quellcode:
type
  Tneuer_Eintrag = class(TForm)
    imgLogo: TImage;
    lblUberschrift: TLabel;
    lbl1: TLabel;
    lbledtPNr: TLabeledEdit;
    mmoBetreff: TMemo;
    lbl4: TLabel;
    dtp1: TDateTimePicker;
    lbl_Datum: TLabel;
    grp1: TGroupBox;
    btn3: TBitBtn;
    btn4: TBitBtn;
    grp2: TGroupBox;
    btn1: TBitBtn;
    btn2: TBitBtn;
    lbledtZuarbeit: TLabeledEdit;
    lbledtAblage: TLabeledEdit;
    dtpSchreiben: TDateTimePicker;
    lbl2: TLabel;
    dtpPost: TDateTimePicker;
    lbl3: TLabel;
    btnHinzu: TBitBtn;
    btnAbbrech: TBitBtn;
    procedure AddNewLabeledEdit(aLeft, aTop, aWidth: Integer; const aCaption, aName, aParent: string);
    procedure FormShow(Sender: TObject);
    procedure btnAbbrechClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
So besser?

DeddyH 10. Aug 2011 12:31

AW: Eigenschaften von erzeugten Komponenten
 
OK, das ist schon die richtige Stelle. Auf den ersten Blick kann ich nichts Falsches entdecken, kannst Du die Unit mal anhängen?

Maya 10. Aug 2011 12:41

AW: Eigenschaften von erzeugten Komponenten
 
Na ja, viel spannendes gibt es da nicht zu sehen.

Delphi-Quellcode:
unit frmneuerEintrag;

interface

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

type
  Tneuer_Eintrag = class(TForm)
    imgLogo: TImage;
    lblUberschrift: TLabel;
    lbl1: TLabel;
    lbledtPNr: TLabeledEdit;
    mmoBetreff: TMemo;
    lbl4: TLabel;
    dtp1: TDateTimePicker;
    lbl_Datum: TLabel;
    grp1: TGroupBox;
    btn3: TBitBtn;
    btn4: TBitBtn;
    grp2: TGroupBox;
    btn1: TBitBtn;
    btn2: TBitBtn;
    lbledtZuarbeit: TLabeledEdit;
    lbledtAblage: TLabeledEdit;
    dtpSchreiben: TDateTimePicker;
    lbl2: TLabel;
    dtpPost: TDateTimePicker;
    lbl3: TLabel;
    btnHinzu: TBitBtn;
    btnAbbrech: TBitBtn;
    procedure AddNewLabeledEdit(aLeft, aTop, aWidth: Integer; const aCaption, aName, aParent: string);
    procedure FormShow(Sender: TObject);
    procedure btnAbbrechClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    Postart: Integer;
  end;

var
  neuer_Eintrag: Tneuer_Eintrag;


implementation

{$R *.dfm}

procedure TneuerEintrag.AddNewLabeledEdit(aLeft, aTop, aWidth: Integer; const aCaption, aName, aParent: string);
var
  lbledt: TLabeledEdit;
begin
  lbledt:=TLabeledEdit.Create(self);
  lbledt.Left:=aLeft;
  lbledt.Top:=aTop;
  lbledt.Width:=aWidth;
  lbledt.EditLabel.Caption:=aCaption;
  lbledt.Name:='lbledt'+aName;
  lbledt.Parent:=aParent;

  lbledt.Font.Name:='Arial';
  lbledt.EditLabel.Font.Name:='Arial';
  lbledt.Font.Size:=9;
  lbledt.EditLabel.Font.Size:=9;
  lbledt.Show;
end;

procedure Tneuer_Eintrag.btnAbbrechClick(Sender: TObject);
begin
  Close;
end;


procedure Tneuer_Eintrag.FormShow(Sender: TObject);
begin
  if (Postart=1) then
    begin
      lbl_Datum.Caption:='Datum Posteingang:*';
      AddNewLabeledEdit(16,86,121,'Anrede:','ABS_Anrede',grp1);
    end;
end;
Danach kommt nix mehr. Ist ja noch alles im Aufbau.

DeddyH 10. Aug 2011 12:42

AW: Eigenschaften von erzeugten Komponenten
 
TneuerEintrag <> Tneuer_Eintrag ;) Ich hatte das erst für einen Tippfehler gehalten.

Gollum 10. Aug 2011 12:48

AW: Eigenschaften von erzeugten Komponenten
 
Hallo,

Zitat:

procedure AddNewLabeledEdit(aLeft, aTop, aWidth: Integer; const aCaption, aName, aParent: string);
der Parameter aParent sollte besser nicht von Typ String sein.

DeddyH 10. Aug 2011 12:49

AW: Eigenschaften von erzeugten Komponenten
 
Stimmt, TWinControl wäre passender (evtl. mit Defaultwert auf self) (geht nicht).

Maya 10. Aug 2011 12:53

AW: Eigenschaften von erzeugten Komponenten
 
*Head meets Desk*

Selber schon bemerkt und korrigiert.
Danke für eure Hilfe. ;)

So, hoffentlich letzte Frage: Wie bekomme ich die ganzen Komponenten am Ende am elegantesten freigegeben?
Wenn ich in das OnClose-Ereignis z.B. "lbledtABS_VName.Free" eingebe, kommt ja 'ne Fehlermeldung á la "undeklarierter Bezeichner", was ja klar ist. (Versuchen kann man es ja trotzdem mal. ;))


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:43 Uhr.
Seite 2 von 4     12 34      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz