AW: Dynamischer Verweis auf Komponente
Zitat:
|
AW: Dynamischer Verweis auf Komponente
Zitat:
|
AW: Dynamischer Verweis auf Komponente
Ja genau. Aber es ist doch einfach zu verstehen. Die Namen bauen sich (logischerweise) so auf:
ButtonXABC ... ButtonXXABC Nun schaue ich (nach obigem Beispiel) ob an 8. Stelle eine Zahl ist. Wenn ja, dann ist an der 7. Stelle auch eine Zahl und somit sind wir im Bereich 10-99. Andernfalls sind wir im Bereich 0-9. Oder Andres gesagt: Versucht er bei "ButtonXABC" sonst das "A" in eine Zahl zu wandeln, was nicht geht -> exception -> anderes Handling.
Delphi-Quellcode:
Alternativ hätte man auch generell 2-Stellig arbeiten können:
try
StrToInt(copy(Name, 8, 1)); //1-Stellig (0-9) except //2-Stellig (10-99) end; Button0XABC ... ButtonXXABC Dann bräuchte man nur prüfen ob an 7. Stelle eine "0" vorhanden ist und dementsprechend ableiten, also:
Delphi-Quellcode:
if Name[7] = '0' then
//1-Stellig (0-9) else //2-Stellig (10-99) |
AW: Dynamischer Verweis auf Komponente
Also ehrlich gesagt finde ich das alles sehr aufwändig. ich würde - wenn es wirklich nur um Nummern geht - einfach das .Tag verwenden:
beim erstellen des Buttons das Tag mit der entsprechenden Nummer versehen, alle Buttons auf das gleiche onClick und dann 'tool'+inttostr((sender as Tbutton).tag)+'......' |
AW: Dynamischer Verweis auf Komponente
@noisy_master: Es gibt viele Wege nach Rom ;)
Aber ich denke (nur persönliche Meinung), das in der Summe es wesentlich länger dauert, bei jedem Button manuell den "Tag" anzupassen als einmal dies (über den sowieso schon manuell gesetzten Namen) per Exception abzufangen. Auch die Fehlerquelle ist höher, denn: Buttons mit gleichem "Tag" sind möglich ("Tag"-Änderung beim manuellen Erstellen des Buttons vergessen), mit gleichen Namen jedoch nicht (-> Fehlermeldung)! Anders wäre dies evtl. bei generierten Buttons im Programm, da hier das Setzen des "Tag" mal "nebenbei" mit gemacht werden kann und dies mit einer dafür angelegten Variable durchgezählt werden kann. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:38 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