Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Button + Edit Feld - zur Laufzeit entfernen? (https://www.delphipraxis.net/105249-button-edit-feld-zur-laufzeit-entfernen.html)

atgis 18. Dez 2007 17:30


Button + Edit Feld - zur Laufzeit entfernen?
 
Hallo,

Ich bastle gerade an einem kleinem Programm, welches simple Wav-Dateien abspielen soll. Das ist ja soweit auch kein Problem...über das Edit Feld gebe ich den Pfad ein und drücke auf Play! Funktioniert!

Nun möchte ich aber gerne mehrere Sounds abspielen können. Also brauche ich mehrere Edit-Felder und Abspielbuttons.

Nun möchte ich die gern dynamisch über eine Button (+,-) hinzufügen/entfernen.

http://s6.directupload.net/images/071218/cwdk2siw.jpg


Wie mache ich das? Objekte während der Laufzeit hinzufügen?


Das Edit-Feld in meinem Programm heißt "Edit1" der Button "BitBtn1"...diese müssten doch dann beim hinzufügen (also klick aufs +) hochgezählt werden? Also Edit2, Edit3 usw...


Oder gibt es eine viele bequemere und einfacher Lösung als meine Idee?

MfG

DeddyH 18. Dez 2007 17:31

Re: Button + Edit Feld - zur Laufzeit hinzufügen?
 
Pack doch eine ListBox drunter und fülle sie aus dem Edit ;)

atgis 18. Dez 2007 17:34

Re: Button + Edit Feld - zur Laufzeit hinzufügen?
 
Ja hab ich auch schon gedacht...aber ich wollte gerne eine Lösung mit Buttons (o.ä.)...damit man schnell einen Sound abspielen kann.

Wenn man erst einen Sound in einer ListBox suchen müsste, würde es schon zulang dauern :wink:

mkinzler 18. Dez 2007 17:35

Re: Button + Edit Feld - zur Laufzeit hinzufügen?
 
Delphi-Quellcode:
Inc(Index);
with TEdit.Create( self) do
begin
   Parent := Self;
   Name := 'Edit'+IntToStr( index);
   Left := ...
   ...
end;
with TButton.Create( self) do
begin
   Parent := Self;
   Name := 'Edit'+IntToStr( index);
  Caption := ...
   Left := ...
   ...
end;

DeddyH 18. Dez 2007 17:37

Re: Button + Edit Feld - zur Laufzeit hinzufügen?
 
Und hinterher schön wieder freigeben ;)

P.S.: Ob ich jetzt den entsprechenden Abspiel-Button suchen muss oder den Dateinamen in einer ListBox, ist IMHO Jacke wie Hose :mrgreen:

Apollonius 18. Dez 2007 17:39

Re: Button + Edit Feld - zur Laufzeit hinzufügen?
 
Freigeben muss man Komponenten nicht, wenn man einen Owner hat.

atgis 18. Dez 2007 17:39

Re: Button + Edit Feld - zur Laufzeit hinzufügen?
 
Wer das "Nippelboard" von TV-Total kennt, weiß was ich bezwecken möchte... :zwinker:

mkinzler 18. Dez 2007 17:45

Re: Button + Edit Feld - zur Laufzeit hinzufügen?
 
Zitat:

Zitat von Apollonius
Freigeben muss man Komponenten nicht, wenn man einen Owner hat.

Was in meinem Beispiel der Fall ist.

atgis 18. Dez 2007 22:22

Re: Button + Edit Feld - zur Laufzeit hinzufügen?
 
So richtig funktioniert es noch nicht...

Delphi-Quellcode:
//+
procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
begin
inc(i);
with TEdit.Create(self) do
begin
   Parent:= Self;
   Name:= 'Edit'+IntToStr(i);
   Left:= 8;
   Top:= 32;
   Width:= 233;
end;
with TBitBtn.Create(self) do
begin
   Parent:= Self;
   Name:= 'Edit'+IntToStr(i);
   Caption:= 'Play';
   Left:= 244;
   Top:= 32;
   Width:= 22;
   Height:= 22;

end;
end;
Undzwar erzeugt es ja das Edit-Feld und nennt es Edit+i (=Edit1). Dann erzeugt es den Button und nennt ihn auch Edit+i (=Edit1) -> dadurch bekomme ich eine Exception, da das Objekt schon vorhanden ist...

Benenne ich einen Namen um...also z.b. Editblabla...kann ich zwar einmal beide Objekte erzeugen, doch beim 2. mal wieder der Fehler wie oben. Editblabla1 ist schon vorhanden...

Mh...

Crazy Ivan 18. Dez 2007 22:28

Re: Button + Edit Feld - zur Laufzeit hinzufügen?
 
weil du dem edit den selben namen wie dem bitbtn gibst.

richtig:

Delphi-Quellcode:
Name:= 'Edit'+IntToStr(i);
für das edit

Delphi-Quellcode:
Name:= 'BitBtn'+IntToStr(i);
für den button

bei dir ist das bei beiden gleich ==> beide haben den selben namen ==> exception


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:00 Uhr.
Seite 1 von 2  1 2      

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