Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Edit-Felder während der Laufzeit erstellen... wie? (https://www.delphipraxis.net/107043-edit-felder-waehrend-der-laufzeit-erstellen-wie.html)

tiller 21. Jan 2008 12:17


Edit-Felder während der Laufzeit erstellen... wie?
 
Hallöchen!

Ich würde gerne anhand einiger Angaben, die der Anwender in meinem Programm machen kann, eine sich daraus ergebende Anzahl an Edit-Feldern an bestimmten Stellen meines Formulars erstellen. Kann mir jemand sagen, wie das funktioniert. Kann leider die Hilfe nicht aufrufen, da diese unter Vista nicht funktioniert.

Gruß, tiller

sirius 21. Jan 2008 12:20

Re: Edit-Felder während der Laufzeit erstellen... wie?
 
Delphi-Quellcode:
Editx:=TEdit.create(owner) //owner kann das Formular sein, eine andere Komponente oder nil
//wenn owner gelöscht wird, dann wird auch dein Edit automatisch mit gelöscht
Editx.left:=...
Editx.right:=...
//usw usf.
//Ereignisse legsst du genauso fest; zuweisen tust du eben eine Methode die die entsprechende Deklaration hat

mkinzler 21. Jan 2008 12:22

Re: Edit-Felder während der Laufzeit erstellen... wie?
 
Wenn die Komponente sichtbar sein soll fehlt noch der Parent:
Delphi-Quellcode:
Editx.parent := <Parent>;

tiller 21. Jan 2008 12:43

Re: Edit-Felder während der Laufzeit erstellen... wie?
 
Bekomme die Meldung: "undefinierter Bezeichner: 'editx'"
Kann sein, dass ich mich blöd dranstelle, ihr könnt mir bestimmt sagen, was ich falsch mach :-)

mkinzler 21. Jan 2008 12:47

Re: Edit-Felder während der Laufzeit erstellen... wie?
 
War auch nur ein Platzhalter für die Instanzvariable.

Kannst natürlich auch auf eine verichten:

Delphi-Quellcode:
with TEdit.create(owner) do
begin
    Parent := self;
    Left := ...
    Top := ...
   //usw usf.
end;

sirius 21. Jan 2008 12:48

Re: Edit-Felder während der Laufzeit erstellen... wie?
 
Ja, EditX ist ein Zeiger auf das Objekt. (Das ist ein Beispiel und nicht zum kopieren gedacht; Wie auch? ich kenne ja dein Programm nicht)

Und denn solltest du an geeigneter Stelle aml als TEdit deklarieren. Aber wo das für dich ist, weis ich nicht. Wenn du mehrere TEdits erstellen willst, würde ich über eine TObjectList nachdenken:


Delphi-Quellcode:
type Form1=class(TForm)
      ...
      myEdits:TObjectList //an geeigneter Stelle erstellen

procedure createEdits;
var Edit:TEdit;
begin
  Edit:=TEdit.create(self);
  Edit.parent:=self;
  Edit.top:=10;
  Edit.left:=100;
  ...
  myEdits.add(Edit);
end;
Nur ein Beispiel.

tiller 21. Jan 2008 13:09

Re: Edit-Felder während der Laufzeit erstellen... wie?
 
Danke für eure Hilfe, es hat jetzt geklappt!
Die Edits werden doch einfach durchnummeriert beim generieren oder?

sirius 21. Jan 2008 13:12

Re: Edit-Felder während der Laufzeit erstellen... wie?
 
Nö.
Kommt drauf an, was du gemacht hast.

mkinzler 21. Jan 2008 13:54

Re: Edit-Felder während der Laufzeit erstellen... wie?
 
Wenn du dies so als namen bei der Erzeugung angibst, ja.

tiller 21. Jan 2008 15:26

Re: Edit-Felder während der Laufzeit erstellen... wie?
 
Ja, das mit der Namensgebung funzt ganz gut so. Könnt ihr mir sagen, wie ich mein Programm resetten kann? Also auf Knopfdruck einfach neu starten; jedes Edit einzeln löschen ist nämlich eher unnötig...


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:45 Uhr.
Seite 1 von 5  1 23     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