Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Button von Nutzer erstellen (https://www.delphipraxis.net/171835-button-von-nutzer-erstellen.html)

DeddyH 27. Nov 2012 18:16

AW: Button von Nutzer erstellen
 
Zumindest hier in der DP wurde das schon mehrfach erwähnt.

nuclearping 28. Nov 2012 01:31

AW: Button von Nutzer erstellen
 
Zitat:

Zitat von Smaraner (Beitrag 1193266)
Der Button wird ja aber vom Nutzer erstellt, nicht von mir, und der kann den Button ja beliebig benennen.

Und in was für einer Relevanz steht das zu dem geposteten Beispiel-Code? Wenn du nicht willst, dass auf dem Button "Muh!" steht, sondern das, was der Benutzer angegeben hat, musst du das halt entsprechend abfragen und an den Button weitergeben (zB mit einem Parameter für die CreateButton-Funktion):
Delphi-Quellcode:
procedure TForm1.CreateButton(ACaption: String);
begin
  ...
  Button.Caption := ACaption;
  ...
end;

hoika 28. Nov 2012 05:03

AW: Button von Nutzer erstellen
 
Hallo,

Um deine Buttons intern besser zu unterscheiden,
gäbe es dann noch das Property Tag.
Das ist ein Integer zu Deiner freien Verwendung.

Heiko

DeddyH 28. Nov 2012 07:01

AW: Button von Nutzer erstellen
 
Oder man packt sie in eine TObjectlist/TComponentlist, dann kann man sie über ihren Listenindex ansprechen. Man muss sich nur überlegen, wer für die Speicherverwaltung zuständig sein soll, Owner oder Liste.

Sir Rufo 28. Nov 2012 08:00

AW: Button von Nutzer erstellen
 
Zitat:

Zitat von DeddyH (Beitrag 1193315)
Oder man packt sie in eine TObjectlist/TComponentlist, dann kann man sie über ihren Listenindex ansprechen. Man muss sich nur überlegen, wer für die Speicherverwaltung zuständig sein soll, Owner oder Liste.

Warum eigentlich nicht das naheliegenste?
Delphi-Quellcode:
type
  TForm1 = class( TForm )
  ..
  private
    ButtonOwner : TComponent;
  ..
  end;

// Bei der Form Erstellung
ButtonOwner := TComponent.Create( Self );

DeddyH 28. Nov 2012 08:04

AW: Button von Nutzer erstellen
 
Den Ansatz verstehe ich ehrlich gesagt nicht. :gruebel:

Sir Rufo 28. Nov 2012 08:08

AW: Button von Nutzer erstellen
 
Delphi-Quellcode:
TButton.Create( ButtonOwner );

DeddyH 28. Nov 2012 08:14

AW: Button von Nutzer erstellen
 
Um dann über die Komponente bzw. ihr Components-Array auf die Buttons zuzugreifen? Da erscheint mir eine Liste aber logischer.

Sir Rufo 28. Nov 2012 08:29

AW: Button von Nutzer erstellen
 
Zitat:

Zitat von DeddyH (Beitrag 1193330)
Um dann über die Komponente bzw. ihr Components-Array auf die Buttons zuzugreifen? Da erscheint mir eine Liste aber logischer.

Wo ist der Unterschied, ausser dass du bei der Verwendung einer normalen Liste den Overhead mit der Nachführung beim Hinzufügen und Entfernen von diesen Buttons hast?

DeddyH 28. Nov 2012 08:38

AW: Button von Nutzer erstellen
 
Die eine Zeile in der CreateButton-Methode macht den Kohl doch auch nicht fett. Für mich sieht es nur komisch aus, wenn man ein VCL-Element wie TComponent dazu benutzt, um Listenelemente zu verwalten. Wobei ich damit nicht sagen will, dass man das nicht machen darf, es funktioniert ja auch. Allerdings würde ich mich vermutlich wundern, wenn in einem Code plötzlich eine Komponente auftaucht, die scheinbar nirgends genutzt wird, außer wenn man ihre Components anspricht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:57 Uhr.
Seite 2 von 3     12 3      

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