Nou dat ziet er goed uit - al behoorlijk wat werk!
Resize Window
Nu is het misschien tijd om je wat te vertellen over het resizen van een window.
Je zult gemerkt hebben dat het venster groter en kleiner gemaakt kan worden en dat is soms ongewenst.
Je kunt het uitzetten door de property "BorderStyle" van Form1 op "bsSingle" te zetten.
Een andere methode, als een beetje resizen wel wilt toestaan, is door van Form1 de properties onder "Constraints" in te vullen (Min/Max hoogte en breedte). Hierdoor voorkom je, als een beetje resizen toegestaan is, dat het venster te groot of the klein wordt.
Bij het resize komt natuurlijk een potentieel probleem. Soms wil je een component "vast" zetten zodat het meebeweegt en/of van omvang veranderd als je een form resized. Zo kan het wenselijk zijn dat de TPageControl netjes mee gaat met het verkleinen of vergroten.
Hiervoor gebruiken we de property (van visuele componenten) "Anchors".
Bij een anchor kun je b.v. alles op true zetten. Als dan een form groter wordt dan zie je de breedte en hoogte mee veranderen.
Als je nu LEFT en TOP of FALSE zet, dan zie je dat een component zich vast zet tegen de rechterkant en de onderkant en niet in grootte veranderd maar mee beweegt.
Overigens heeft Lazarus een zeer geavanceerde Anchor tool die het ook nog eens mogelijk maakt om componenten aan elkaar te koppelen zodat ze van elkaar afhankelijk gaan zijn - maar dat is iets voor veel later.
Ook handig is de zogenaamde "Borderspacing" waarmee je ruimte binnen en buiten bepaalde componenten op een vaste waar kunt zetten - handig bij het plaatsen van componenten in dat component en goed voor een consistent beeld.
Velden met tekst
Als ik naar jouw velden kijk dan zie ik b.v. een datum veld waar als voorbeeld tekst "Eerste" staat.
Uiteraard niet een goede waarde, en slechts een indicatie voor de gebruiker.
Wat je zou kunnen doen, is in het OnChange event (of misschien beter ook nog eens bij het OnKeyUp event) zoiets te plaatsen:
if Edtit.Text='Eerste' then
Edit.Font.Color := clSilver
else
Edit.Font.Color := clBlack;
Waardoor de font kleur veranderd als de gebruiker hier iets gaat invoeren.
Uiteraard is het leuker om de tekst "Eerste" meteen te verwijderen als de gebruiker het veld in gaat.
Doe dat door b.v. in het OnEnter event dit te doen:
if Edit.Text='Eerste' then Edit.Text:='';
En weer terug zetten als de gebruiker niets heeft gedaan, door in het onExit event:
if Edit1.Text='' then Edit1.text:='Eerste';
Ik adviseer hier eens mee te spelen, vooral in een nieuw project, zodat als het fout gaat, je niet al je werkt in de knoei helpt ... 