![]() |
TObjekt ???
hi leutz,
Ich brauch wieder mal Hilfe! Ich will ein Programm schreiben das aus einer Datenbank, Einträge ausliest und dann automatisch das Popupmenü mit TMenuItems erweitert! Klappt alles! Nur wenn ich jeden Butten ein "OnClick" Ereignis geben will dauert das ewig und ist auch nicht kompatible auf anderen Rechnern! Da das "OnClick" Ereignis nur (Sender:TObjekt) haben darf, kann ich nur jeden Butten ein und dasselbe Ereignis geben! Ich möchte aber das jeder Button dynamisch erzeugt wird und dann ein Programm startet dessen Pfad in einer Datenbank steht! :gruebel: Vielen Dank im Vorraus |
Re: TObjekt ???
Dann nutze doch die Eigenschaft Tag des Buttons, um zu unterscheiden, welches Objekt es ist. Nummeriere die Buttons einfach fortlaufend wenn sie erstellt werden.
Delphi-Quellcode:
MfG
procedure TForm1.ButtonXClick(Sender: TObject);
begin if (Sender.ClassName = 'TButton') then begin case (Sender AS TButton).Tag of 1: ShowMessage('Button1'); 2: ShowMessage('Button2'); 3: ShowMessage('Button3'); ... end; end;//if end; Binärbaum |
Re: TObjekt ???
Zitat:
Delphi-Quellcode:
Ich glaube, irgendwo gelesen zu haben, dass man lieber AS weglassen sollte. Das Code wird unnötig länger. :gruebel:
procedure TForm1.ButtonXClick(Sender: TObject);
begin case TComponent(Sender).Tag of // TButton(Sender).Tag 1: ShowMessage('Button1'); 2: ShowMessage('Button2'); 3: ShowMessage('Button3'); ... end; end; |
Re: TObjekt ???
Zitat:
|
Re: TObjekt ???
Komplett OT:
Aber ein
Delphi-Quellcode:
liest sich einfach schneller als ein
Instance as Type
Delphi-Quellcode:
.
Type(Instance)
Letzteres könnte ja ein Funktionsaufruf sein. Was ein zweites genaueres Hinsehen erfordert. Ich persönlich bevorzuge also immer "as", außer Optimierungen verbieten es mir. Es wäre auch genauso möglich von TMenuItem abzuleiten damit man der Instanz den Dateinamen geben kann. Beim Click würde das Item dann die App starten, ohne dass du dich im Formular code darum kümmern musst. ;) Auch wenn es gerne vergessen wird, Delphi ist eine OO Sprache. :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 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 by Thomas Breitkreuz