AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Ansprechen eines zur Laufzeit erstellten BitBtn
Thema durchsuchen
Ansicht
Themen-Optionen

Ansprechen eines zur Laufzeit erstellten BitBtn

Ein Thema von fips0705 · begonnen am 21. Apr 2008 · letzter Beitrag vom 21. Apr 2008
Antwort Antwort
fips0705

Registriert seit: 13. Sep 2006
45 Beiträge
 
#1

Ansprechen eines zur Laufzeit erstellten BitBtn

  Alt 21. Apr 2008, 09:46
Hi,
ich habe einige BitBtn zu Laufzeit erstellt. Alle befinden sich in einer ComponentList.
Darüber kann ich jeden BitBtn mit TBitBtn(BitBtnList[i]) ansprechen.

Jedoch weiß ich nicht wie ich den BitBtn jetzt ein OnClick Ereignis zuordnen soll.

procedure TBitBtn(BitBtnList[i])Click funktioniert ja nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

Re: Ansprechen eines zur Laufzeit erstellten BitBtn

  Alt 21. Apr 2008, 09:48
(BitBtnList[i] as TBitBtn).OnClick := MeineOnClickMethode;
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
fips0705

Registriert seit: 13. Sep 2006
45 Beiträge
 
#3

Re: Ansprechen eines zur Laufzeit erstellten BitBtn

  Alt 21. Apr 2008, 09:54
vielen Dank
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Ansprechen eines zur Laufzeit erstellten BitBtn

  Alt 21. Apr 2008, 11:41
Zitat von Bernhard Geyer:
(BitBtnList[i] as TBitBtn).OnClick := MeineOnClickMethode;
Wenn ich hier mal eben hijacken darf... genau das mit as wirft mir immer einen E2015 (operator not applicable to this operand type)... Beispiel:

if (MyTListInstance[i] as TMyType).MyField >0 then DoSomething; MyTListInstance ist eine TList, TMyType ist der Typ der Objekte die da drinstecken und MyField ist ein Field eines solchen Objektes. Wieso geht das nicht? (Verständnisfrage, brachiales Typecasting ohne as geht...)
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
bluesbear

Registriert seit: 14. Dez 2005
Ort: Hahnstätten
355 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Ansprechen eines zur Laufzeit erstellten BitBtn

  Alt 21. Apr 2008, 11:48
Hi OldGrumpy,
eine TList ist eine Liste von Pointern, die haben keinen Typ, aber man kann einen typecast machen.
Mit TObjectList geht das so wie du vor hast.
Klaus M. Hoffmann
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Ansprechen eines zur Laufzeit erstellten BitBtn

  Alt 21. Apr 2008, 13:07
Dann funktioniert as also nur in der Richtung Object A als Object B zu betrachten, nicht aber im Sinne eines "sicheren" Typecastings. Das macht ja auf den zweiten Blick auch Sinn

Nachtrag: Jep, mit einem Typecast auf TObject als Zwischenschritt funktioniert es wie es sollte. Resultierender Tipp: Wann immer es geht, typisierte Listen verwenden
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  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 17:29 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