AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi eine Komponente "erschaffen" (create)
Thema durchsuchen
Ansicht
Themen-Optionen

eine Komponente "erschaffen" (create)

Ein Thema von malo · begonnen am 21. Okt 2004 · letzter Beitrag vom 21. Okt 2004
Antwort Antwort
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#1

eine Komponente "erschaffen" (create)

  Alt 21. Okt 2004, 13:55
Wie kann ich eine Komponente erstellen, während das Programm läuft, also z.B. per Buttonclick? Also z.B. einen neuen Button erschaffen. Am besten noch mit Position auf dem Label.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  TButton.Create;
end;
Damit geht es ja anscheinend nicht. Da kommt die Fehlermeldung "nicht genügend Parameter". Was für Parameter müssen da wie und wo untergebracht werden?
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: eine Komponente "erschaffen" (create)

  Alt 21. Okt 2004, 13:57
Hi,

Du brauchst den Parameter Owner. Den setzt Du am besten auf dein Formular (Form1).

Ich würde es so machen z.B.

Delphi-Quellcode:
  // Self = Form1
  with TButton.Create(Self) do
  begin
    Parent := Self;
    SetBounds(10, 10, 50, 21);
    Caption := 'Klick mich!';
    // sonstige Eigenschaften...
  end;
mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von Mirilin
Mirilin

Registriert seit: 21. Dez 2002
Ort: Lenzburg
861 Beiträge
 
Delphi 6 Professional
 
#3

Re: eine Komponente "erschaffen" (create)

  Alt 21. Okt 2004, 13:57


Die Paramter stehen wohl in der Delphi-Referenz durchsuchenTButton .
hier ein Tutorial zum dynamischen Erstellen von Kompostenten


mfg Tobias
Tobias
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#4

Re: eine Komponente "erschaffen" (create)

  Alt 21. Okt 2004, 13:57
Hallo malo,

es muss heißen:

Code:
myButton := TButton.Create(Self);
myButton.Parent := ...
Mit Paranet legst du fest, innerhalb welcher Komponente der Schalter dargestellt wird. Z.B. myPanel oder myForm.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#5

Re: eine Komponente "erschaffen" (create)

  Alt 21. Okt 2004, 13:59
Delphi-Quellcode:
var
  myBtn : TButton;
begin
  myBtn := TButton.Create(Self);
  ...
end;
Dass der Parameter "AOwner: TComponent" lautet, findet man *trommelwirbel* in der OH unter *nochmaltrommelwirbel* Delphi-Referenz durchsuchenTButton.Create

Gruß
Stephan

edit: Ich bin sooooo langsam
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#6

Re: eine Komponente "erschaffen" (create)

  Alt 21. Okt 2004, 13:59
Ah, gut, ich werds mal ausprobieren und auch das Tutorial mir mal ansehen

danke für die vielen Antworten



  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#7

Re: eine Komponente "erschaffen" (create)

  Alt 21. Okt 2004, 14:01
Zitat von Steve:
Delphi-Quellcode:
var
  myBtn : TButton;
begin
  myBtn := TButton.Create(Self);
  ...
end;
Dass der Parameter "AOwner: TComponent" lautet, findet man *trommelwirbel* in der OH unter *nochmaltrommelwirbel* Delphi-Referenz durchsuchenTButton.Create

Gruß
Stephan

edit: Ich bin sooooo langsam
Die Hilfe zu TButton.Create hab ich mir durchgelesen, nur gabs da keine vernünftige erklärung, wie man es anwendet und noch weniger einen Beispielcode...
  Mit Zitat antworten Zitat
Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: eine Komponente "erschaffen" (create)

  Alt 21. Okt 2004, 14:09
Hi malo!!!

Was du vorhast ist nicht unmöglich und es ist auch nicht sonderlich schwer!

Ich zeig es dir mal ganz kurz:

Das ist der ganze Quelltext:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    Neubutton : TButton;
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
     Neubutton := TButton.Create(Form1);
     Neubutton.Width := 15;
     Neubutton.Height := 60;
     NeuButton.Parent := Form1;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
     Neubutton.free;
end;

end.
Also: Du musst Delphi erst einmal den NeuButton bekannt machen. Es geht natürlich auch
jeder andere Name. Der ist vom Typ TButton.

Wenn du nun den schon erstellten Button, hier Button1, drückst, dann erstellt er den
"NeuButton".
Wichtig: 1. Du musst den Parent setzten, in diesem Fall Form1.
2. Du musst den NeuButton wieder freigeben, wenn die Anwendung geschlossen wird.

Ansonsten kannst du mit dem NeuButton machen, was du mit einem "normalen" Button
auch machen kannst. Du kannst im sogar eine Ereignisroutine hinzufügen. Aus Platzgründen
schreibe ich das aber nicht direkt hier rein. Schick mir doch einfach eine E-Mail.

Außerdem: du kannst theoretisch das ganze mit jeder Komponente machen. Dazu muss aber die Unit
der entsprechenden Unit eingebunden sein. Das passiert aber automatisch, wenn eine "feste" Komponente, die du nicht erst zur Laufzeit ertellt hast, auf dein Formular setzt.

So, ich denke, dass sollte dir bei deinem Problem helfen.

MFG Patti 8)
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:59 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