Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Неоднократное использование параметра формата

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

Sometimes you probably have written something like this:

s := Format('Hello %s, your name is %s %s', [FirstName, FirstName, LastName]);

(an admittedly stupid example ;-) )

And if you do, you probably found it annoying that you need to specify the FirstName parameter twice, in particular if there are lots of similar lines.

But this isn''t necessary because you can specify the parameter position to use for the placeholder in the format string like this:

s := Format('Hello %0:s, your name is %0:s %1:s', [FirstName, LastName]);

Just one more example from a code generator I am currently writing:

TableName := 'Customer';

... s := Format(' f%0:sTableAuto := T%0:sTableAuto.Create(f%0:Table);', [TableName]);

which results in

s := ' fCustomerTableAuto := TCustomerTableAuto.Create(fCustmerTable);';

{********************************************************************}

Manchmal schreibt man solche Dinge wie:

s := Format('Hallo %s, Dein Name ist %s %s', [Vorname, Vorname, Nachname]);

(Ok, doofes Beispiel. ;-) )

Und aergert sich dann, insbesondere, wenn man es sehr haeufig schreibt, dass man den Parameter Vorname mehrfach angeben muss.

Das ist jedoch gar nicht notwendig, denn man kann im Format-String bei einem Platzhalter auch angeben, welcher Parameter dort eingefuegt werden soll:

s := Format('Hallo %0:s, Dein Name ist %0:s %1:s', [Vorname, Nachname]);

Hier noch ein etwas sinnvolleres Beispiel aus einem Code-Generator, den ich gerade schreibe:

TableName := 'Kunden';

... s := Format(' f%0:sTableAuto := T%0:sTableAuto.Create(f%0:Table);', [TableName]);

soll ergeben:

s := ' fKundenTableAuto := TKundenTableAuto.Create(fKundenTable);'
Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay