Delphi kodestil

Tags:    delphi
Skrevet af Bruger #173 @ 17.06.2001
Kodestil

Man ser tit at Delphi-programmører sjusker med koden. Det er på en måde klart nok, fordi Delphi ikke tager højde for, om man skriver ordene med stort eller lille, hvis de bare er stavet rigtigt. Men det kan være et problem at koden er sjusket, for det kan virke ulæseligt - for nogle mere end andre. Selv foretrækker jeg at koden er korrekt skrevet med store og små bogstaver på de steder, hvor det er rigtigt. Der er standarder for hvordan koden skal være stillet op, hvornår bogstaverne skal være med lille og med stort og hvilke bogstaver, man skal bruge foran komponentnavne. Vi skal nu se på nogle af de mest benyttede og derfor de vigtigste af slagsen.
Layout af koden

For Delphis compiler kan det være ligegyldigt om man skriver på den her måde:
iF ((((tAL                      =  9))))        tHeN showMESSAGE('Tallet er 9');;;;;;;;;;;;;
;;;;;;;;;;;;;;;;
eller på denne:
if tal = 9 then
  ShowMessage('Tallet er 9');
Compileren bærer altså over med denne grimme syntaks, men der er selvfølgelig ingen, der ville skrive det sådan. Den, efter Delphis kodestandard, korrekte form er nummer 2. Ingen parantes i if-sætningen hvis ikke det er nødvendigt, alle reserverede ord med småt og en ny sætning med 2 mellemrum efter then og lignende. En anden vigtig ting, er at begin skal være på næste linje af en if, repeat eller while-sætning, altså:
if tal = 9 then
begin
  ShowMessage('Tallet er igen 9');
  // ...
end;
Man kan gøre det her, hvis man er i en else-sætning:
if tal = 9 then
begin
  // ...
end
else begin
  // ...
end;
Men den anden form er bedre og stemmer overens med kodestandarden.

Navne på funktioner, procedurer, klasser og komponenter

I procedurer og funktioners navne skal et stort bogstav forekomme hver gang, der er et nyt ord:
function MinFunktion: string;
Der skal aldrig være mellemrum i paranteserne, og parametre skal sammenkobles så vidt som muligt:
procedure MinFunktion(Param1, Param2, Param3: string; Tal: Integer);
Klassers navne skal begynde med et stort T og for dem, og også for variabler, gælder de samme navngivnings-regler som ved procedurer og funktioner:
TMinKlasse = class(TMinAndenKlasse)
En anden ting, der gør koden lettere at redigere, hvis man ellers får vænnet sig til det, er hvis man har en bestemt måde at navngive sine komponenter på. Du kan selv vælge din metode, men det er smartest at følge den originale, da de fleste programmører vil følge den. Her følger en liste over nogle af de vigtigste komponentnavne og hvilke bogstaver, de skal starte med:

Standard TButton btn
TCheckBox chk
TComboBox cbo
TEdit edt
TGroupBox grp
TLabel lbl
TListBox lbo
TMainMenu mmnu
TMemo mem
TMenuItem mnu
TPanel pnl
TPopupMenu pmnu
TRadioButton rbtn
TRadioGroup rgrp
TScrollBar sbr
Additional TBevel bvl
TBitBtn bbtn
TDrawGrid dgrd
THeader hdr
TImage img
TMaskEdit medt
TNotebook nbk
TOutline oln
TScrollBox sbo
TShape shp
TSpeedButton sbtn
TStringGrid sgrd
TTabbedNotebook tbnbk
TTabSet tbs
Dialogs TColorDialog dlgcl
TFindDialog dlgfn
TFontDialog dlgft
TOpenDialog dlgop
TPrintDialog dlgpr
TPrinterSetupDialog dlgps
TReplaceDialog dlgrp
TSaveDialog dlgsv


Eksempler: btnOK, shpBold, sbtnSkriftType osv... Det er selvfølgelig mest vigtigst at følge disse navngivnings-regler ved store projekter, men det er rart, også for andre, at bruge dem ved alle ens Delphi programmer.

Kommentarer

Brugen af kommentarer skal ikke overdrives. De mest nyttige kommentarer er dem, der forklarer hvorfor man gør netop det, man gør. Mange gange, hjælper det andre at forstå koden, men også dig selv, hvis du engang igen skal læse koden. Det er bedre end i stedet at forklare hvad der sker i koden. Hvis, der er en grund til det, kan du måske lave koden mere forståelig. Nogle gange er det dog bedst at forklare, hvad der sker i koden. Det kan være ved artikler og lignende, som netop har til formål at forklare, hvad der sker i koden. Det er derimod bedre at forklare koden i én blok under kodeblokken, man forklarer ud fra. Kommentarer kan også bruges til at notere noget undervejs i udviklings-processen. Det kan være at du vil komme tilbage til et stykke kode. Så kan du for eksempel skrive //-> eller noget andet, og når du så er færdig med koden, kan du bare slette disse kommentarer.

For en mere komplet Delphi kodestandard reference se: http://www.econos.de/delphi/cs.html


Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.

Del også gerne artiklen med dine Facebook venner:  

Kommentarer (3)

User
Bruger #2779 @ 14.12.03 02:59
En god, lille artikel, der bestemt vil hjælpe mig igennem mine kommende programmer. Kunne godt lide listen over forkortelser. Den er god at have i baghånden.

- Tak :)
User
Bruger #2606 @ 16.02.04 20:22
Det er nogle ganske fine synspunkter du har, og jeg kan give dig ret i meget af det du skriver. Desværre syntes jeg at du runder din artikel af lidt dobbelt moralsk!

For mig virker det sådan, at du starter med at skrive at det er vigtigt at man skriver ordentlig kode, som er til at forstå. Men hvor dine forkortelser kommer ind i billedet, er mig ubegribeligt. De er djævlens yngel, og til sidst bliver det så uoverskueligt, og ender med ulogiske forkortelser. (F.eks : frm, er det Form eller Frame?)

Hvis du engang ender i en større virksomhed, hvor du arbejder sammen med andre mennesker, er det utroligt vigtigt at din kode kan læses af dine kollegaer. Det burde ikke være nødvendigt at have en liste over forkortelser ved siden af, for at kunne tyde dit program.

Håber du tager det til dig som kontruktiv kritik og ligger din kodestil om inden du bliver fortabt til Forkortelsernes Mørke Side :-)
User
Bruger #3275 @ 22.06.04 09:31
Glimrende artikel! Meget godt lige at kende nogle af de forkortelser. Vil dog blive ved med at kalde en edit for ed :D. Er tit irriteret over min grimme kodestil så artiklen hjalp!
Du skal være logget ind for at skrive en kommentar.
t