AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dynamisch Erstellter Button - NAME

Ein Thema von thomasschaf · begonnen am 14. Aug 2011 · letzter Beitrag vom 16. Aug 2011
Antwort Antwort
thomasschaf
(Gast)

n/a Beiträge
 
#1

Dynamisch Erstellter Button - NAME

  Alt 14. Aug 2011, 20:36
Delphi-Version: 5
Hallo,

habe jetzt dank Hilfe hier im Forum, es geschafft einem dynamisch erstellten Button ein On...-Event zuzuweisen.
(http://www.delphipraxis.net/162254-b...vents-wie.html)

Jetzt möchte ich mehrere Buttons erstellen.

Diese sollen jetzt am besten ein "NAME" haben, damit ich sie ansteuern kann.

Wie krieg ich das hin`?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.218 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Dynamisch Erstellter Button - NAME

  Alt 14. Aug 2011, 20:41
Dynamisch erstellt Controls brauchen keinen "Namen". Du kannst Sie entweder mittels lokaler Variable referenzieren oder falls es mehrer gleichgartete Controls sind über ein Array oder Liste. Das Namens-Property ist nur für das DFM-Streaming relevant damit beim einlesen der DFM beim Programmablauf klar ist welche DFM-"Variable" zu welcher realen Formularvariable gemappt werden soll.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#3

AW: Dynamisch Erstellter Button - NAME

  Alt 14. Aug 2011, 22:21
Tja, also wenns viele Buttons werden sollen, dann stimme ich Bernhard zu. Ansonsten kannst du über die Referenzvariable den Namen zuweisen:
Delphi-Quellcode:
var
  MeinButton: TButton;
begin
  MeinButton := TButton.Create(self);
  MeinButton.Name := 'DasIstMeinButton';
end;
So sollte das funktionieren. Bei vielen dynamisch erstellten Buttons solltest du die aber wirklich lieber über ein Array oder eine Liste verwalten.

LG; hans ditter
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!
  Mit Zitat antworten Zitat
thomasschaf
(Gast)

n/a Beiträge
 
#4

AW: Dynamisch Erstellter Button - NAME

  Alt 15. Aug 2011, 17:33
Ok, aber wie würde das mit den Arrays gehen ?

Also ich würde dann so was in der Art machen:


Code:
procedure TForm1.Button1Click(Sender: TObject);
var
  a: TButton;
  i: Integer;
begin
  for i:=1 to 100 do begin

  a    := TButton.Create(self);
  a.Parent := Form1;
  a.Visible := True;
  a.Top := 50*i+10;
  a.Left := 10;
  a.Width := 100;
  a.Height := 45;
  a.Caption := 'Der '+inttostr(i)+'. Button!';

  end;
end;
Aber wie meint ihr das mit dem Array ?

Danke!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.336 Beiträge
 
Delphi 12 Athens
 
#5

AW: Dynamisch Erstellter Button - NAME

  Alt 15. Aug 2011, 17:36
Delphi-Quellcode:
var
  a: TButton;
Variable für eine Komponente ... wie würde man da wohl ein Array reinbauen?
array of ... + SetLength
oder array[1..100] of ... .
oder eine TObjectList
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (15. Aug 2011 um 17:38 Uhr)
  Mit Zitat antworten Zitat
hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#6

AW: Dynamisch Erstellter Button - NAME

  Alt 15. Aug 2011, 22:41
Hey Thomas!
Ich bin mir nicht ganz sicher, aber so wie du das gemacht hast, würde es wohl sowieso nicht funktionieren, da du dann 100 Buttons hast, aber nur einer davon durch die Variable ansprechbar ist.

Mit dem Array würde es dann, wie Himitsu schon sagte, so gehen:
Delphi-Quellcode:
var
  MyButtons: array[1..100] of TButton;
begin
  for i:= 0 to 100 do
  begin
    MyButtons[i] := TButton.Create;
    MyButtons[i].Left := 100;
    {etc. blabla}
  end;
end;
Über TObjectList kannst du dich auch im Netz informieren... einfach mal bei Google 'delphi tobjectlist' eingeben und schon solltest du was finden!
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!
  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 05:01 Uhr.
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