![]() |
Re: String Entscheidungen mit case treffen!!!
Zitat:
D.h. WAS ich damit mache ist also egal. Und gerade für sowas könnte man das Tag doch benutzen, oder? Es sollte aber vielleicht in einem leicht sichtbaren Kommentar drauf hingewiesen werden, wozu der Tag benutzt wird. Dann sollte keiner mehr im dunklen stehen, wofür die Tags nun benutzt werden. |
Re: String Entscheidungen mit case treffen!!!
Zitat:
glaubst Du denn wirklich DU bist der einige der eine eigene Klasse ableiten kann :roll: Ich habe da eher das gefühl das Du "denkst" für jede kleinigkeit eine eigene Klasse/Komponente erstellen zu müssen um dann jedem Sagen zu können das Du das super gut kannst. Gerade in diesem Fall wurde doch der beste Weg gezeigt. -> Nämlich für jedes der Label ein eigenes OnClick zu verwenden. Und wenn man es doch nicht möchte dann ist die Verwendung des TAG-Poroperty der richtige Weg. Ob Du es nun einsiehst oder nicht. |
Re: String Entscheidungen mit case treffen!!!
Sharky, hier ist eine kleine Diskussion mit mehreren Vorschlägen gelaufen. Unter anderem von mir ein Beispiel, wie man das auch innerhalb einer Komponente machen KANN. Wobei ich auch gleich dazu gesagt habe, daß für DIESEN anfangs erwähnten Zweck, das wohl nicht zwingend nötig ist. Man es aber auch nicht ausschließen soll, eine Komponente mal selber für eigene Zwecke zu machen. Denn die Tendenz geht IMHO (zumindest hier) eher in die Richtung, möglichst irgendwie um die Komponenten drumrumzukommen und diese Fähigkeit von Delphi nicht nutzen zu MÜSSEN. Siehe hier :
Zitat:
|
Re: String Entscheidungen mit case treffen!!!
Hi Sharky, hi Hansa. Ich finde wirklich, es gehört in einen eigenen Thread. Es hat nun mal viel mit 'Programmierphilosophie' zu tun, ob und wie ich Komponenten einsetze. Wieso muss ich die dann eigentlich installieren? Kann im Projekt nicht (optional) vermerkt werden, welche zusätzlichen Komponenten das Projekt verwendet und die dann beim Laden des Projektes temporär installiert werden? Usw.
Aber "Sharky und Hansa" ist eine never ending Story, wat misch ick mia da überhaupt ein. :zwinker: |
Re: String Entscheidungen mit case treffen!!!
evtl. so etwas (um wieder zum Thema zurück zu kommen...);
ist sicherlich noch ausbaufähig bzw. optimierbar <g>
Delphi-Quellcode:
case StringToCaseSelect(Section.ChildNodes['TYP'].Text,
['INTEGER', 'BETRAG', 'STRING']) of 0: CDS1.FieldDefs.Add(Section.ChildNodes['NAME'].Text, ftInteger, 0, false); 1: CDS1.FieldDefs.Add(Section.ChildNodes['NAME'].Text, ftFloat, 0, false); 2: CDS1.FieldDefs.Add(Section.ChildNodes['NAME'].Text, ftString, 50, false); end; function TForm1.StringToCaseSelect (Selector: string; CaseList: array of string): Integer; var cnt: integer; begin Result := -1; for cnt := 0 to Length(CaseList) - 1 do begin if CompareText(Selector, CaseList[cnt]) = 0 then begin Result := cnt; Break; end; end; end; :-) thomas |
Re: String Entscheidungen mit case treffen!!!
@merlin17
Schaue Dir mal Beitrag #9 in diesem Thread an... Gruß Hawkeye |
Re: String Entscheidungen mit case treffen!!!
thx,
man sollte doch wieder öfters in diese mächtigen Utils schauen :oops: :-) thomas |
Re: String Entscheidungen mit case treffen!!!
Hrm...
noch ne andere Version die mir gerade einfällt, die aber nicht wirklich zu den saubersten gehört: 1.) Es werden integer-Konstanten für die verschiedenen möglichen Strings definiert. 2.) Eine Funktion gibt diese Konstanten für den String zurück. 3.) Im Case wird nach der Konstante unterschieden.
Code:
const
TEXT1 = 1; TEXT2 = 2; TEXT3 = 3; ... function getIndex(string text): integer; begin if text = 'Text1' then result := TEXT1; if text = 'Text2' then result := TEXT2; ... end; ... case getIndex(theText) of TEXT1: begin ... end; TEXT2: begin ... end; ... end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:09 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-2025 by Thomas Breitkreuz