AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Dynamischer Verweis auf Komponente

Ein Thema von Moombas · begonnen am 17. Sep 2018 · letzter Beitrag vom 21. Sep 2018
Antwort Antwort
Seite 3 von 3     123
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#21

AW: Dynamischer Verweis auf Komponente

  Alt 19. Sep 2018, 10:51
Wieso sollte der Code eine Exception werfen, wenn im 6. Zeichen eine Ziffer steht?
Er wirft eine Exception wenn dort KEINE Ziffer steht.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.536 Beiträge
 
Delphi 11 Alexandria
 
#22

AW: Dynamischer Verweis auf Komponente

  Alt 19. Sep 2018, 10:59
Zitat:
Delphi-Quellcode:
    try
      StrToInt(copy(Name, 6, 1));
//1-Stellig (0-9)
    except
//2-Stellig (10-99)
    end;
Ach, und in dem Fall sind es dann 2 Ziffern? Ich verstehe Dein Exception-Handling nicht.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#23

AW: Dynamischer Verweis auf Komponente

  Alt 19. Sep 2018, 11:50
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:
    try
      StrToInt(copy(Name, 8, 1));
//1-Stellig (0-9)
    except
//2-Stellig (10-99)
    end;
Alternativ hätte man auch generell 2-Stellig arbeiten können:
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] = '0then
//1-Stellig (0-9)
    else
//2-Stellig (10-99)

Geändert von Moombas (19. Sep 2018 um 13:26 Uhr)
  Mit Zitat antworten Zitat
noisy_master

Registriert seit: 17. Jun 2009
Ort: Wolfenbüttel/Baddeckenstedt
255 Beiträge
 
Delphi XE5 Professional
 
#24

AW: Dynamischer Verweis auf Komponente

  Alt 21. Sep 2018, 08:35
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)+'......'
Dirk
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#25

AW: Dynamischer Verweis auf Komponente

  Alt 21. Sep 2018, 09:33
@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.

Geändert von Moombas (21. Sep 2018 um 09:40 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 22:04 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