Delphi-PRAXiS
Seite 2 von 6     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem: DBEdit/Edit Felder per Knopfdruck generieren (https://www.delphipraxis.net/109791-problem-dbedit-edit-felder-per-knopfdruck-generieren.html)

Noobinator 9. Mär 2008 13:30

Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren
 
Zitat:

Zitat von Apollonius
@Noobinator: Das reicht aber auch nicht, denn die lokale Variable DBE ist nicht initialisiert worden. Richtig wäre es so:
....

Ich habe den Post ja auch nur überflogen und das ist mir direkt ins Auge gesprungen :lol:

ShortyHL 10. Mär 2008 12:08

Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren
 
Hab es nun mal damit versucht, aber ich erhalte immer noch einen Fehler: "Konstanttyp kann nicht als Var-Parameter weitergegeben werden"

Delphi-Quellcode:

var DBE: TDBEdit;

FreeAndNil(Form1.FindComponent('DBE'));

mkinzler 10. Mär 2008 12:13

Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren
 
Nochmal: FindComponent erwartet den Namen der Komponente, z.B. Edit1

ShortyHL 10. Mär 2008 12:36

Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren
 
Aber dadurch, dass ich vorher nicht weiß, wie hoch die Anzahl der Kompenten ist, die erstellt worden sind, muss ich dann vorher prüfen, ob prinzipiell eine Komponente erstellt worden ist und dann wie viele insgesamtn erstellt wurden...

mkinzler 10. Mär 2008 12:39

Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren
 
Referenzen auf alle Komponenten befinden sich unter Form.Components, aller Controls unter Form.Controls

DeddyH 10. Mär 2008 12:40

Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren
 
Merk Dir doch einfach die Anzahl der dynamisch erstellten Komponenten (je Komponentenart).

ShortyHL 10. Mär 2008 12:50

Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren
 
Aber meine Komponenten haben alle einen unterschiedlichen Namen: In Bezug auf Edit-Felder wären es dann "Edit_1", "Edit_2", usw..
Habe also eine Zählvariable...

Edit: @DeddyH: Stimmt, das könnte ich probieren...

DeddyH 10. Mär 2008 12:51

Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren
 
Was ich sehe, sind Bezeichner und keine Zählvariablen.

[edit] Postings überschnitten :mrgreen: [/edit]

ShortyHL 10. Mär 2008 13:43

Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren
 
Delphi-Quellcode:

var DBE: TDBEdit;
var y: Integer;

begin

                Save_NumFields := NumFields; // NumFields wird mit der Funktion übergeben und ist eben die Anzahl der Felder, die erstellt werden sollen

               
                if not Assigned(DBE) then begin

                        for y := 1 to Save_NumFields do begin

                                FreeAndNil(Form1.FindComponent('DBEdit_' + IntToStr(y)));

                        end;

                end;

end;
Fehlermeldung:
Ist die Zeile mit der Funktion FreeAndNil();

[Fehler] Unit1.pas(108): Konstantenobjekt kann nicht als Var-Parameter weitergegeben werden

DeddyH 10. Mär 2008 13:55

Re: Problem: DBEdit/Edit Felder per Knopfdruck generieren
 
Was soll denn bei Assigned() herauskommen? Versuch es mal so (schnell dahergetippt):
Delphi-Quellcode:
var DBE: TDBEdit;
var y: Integer;

begin

                Save_NumFields := NumFields; // NumFields wird mit der Funktion übergeben und ist eben die Anzahl der Felder, die erstellt werden sollen

               
 //               if not Assigned(DBE) then begin

                        for y := 1 to Save_NumFields do begin
                                DBE := Form1.FindComponent('DBEdit_' + IntToStr(y));
                                FreeAndNil(DBE);

                        end;

 //               end;

end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 Uhr.
Seite 2 von 6     12 34     Letzte »    

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