unit DatPanel;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
const
AnzLabelsProPanel = 8 ;
// Anzahl der Label (Zeilen) pro Panel
LabelHeight = 13 ;
// Höhe der Label (Zeilen); an Textgröße anpassen
RandObenuUnten = 4 ;
// Rand oben und unten (jeweils Wert - Rand komplett = 2*Wert)
LabelAbstandlinks = 0 ;
// Abstand links vom Label zum Panel (O = kein li. Rand)
FarbeLabelOdd = clSilver ;
// Farbe der ungeraden Labels
FarbeLabelEven = clMedGray ;
// Farbe der geraden Labels
type TDatPanel =
class(TPanel)
private
fLabel :
Array [0..AnzLabelsProPanel - 1]
of TLabel ;
function GetMinPanelHeight: Integer ;
public
constructor Create(AOwner: TComponent);
override ;
procedure Resize;
override ;
property MinPanelHeight : Integer
read GetMinPanelHeight ;
end ;
implementation
constructor TDatPanel.Create(AOwner: TComponent);
var
i : integer ;
begin
inherited ;
for i := 0
to AnzLabelsProPanel -1
do begin
fLabel[i] := TLabel.Create(self);
with fLabel[i]
do begin
Parent:= self ;
// Zuweisung des Parent extrem wichtig!
AutoSize := false ;
// Keine automatsiche Größenanpassung
Top := i * LabelHeight + RandObenuUnten ; Left := LabelAbstandlinks ; Height := LabelHeight ;
Font.Size := 8 ;
Caption := '
TestLine: ' + IntToStr(i+1) ;
Name := '
DatLabel' + IntToStr(i) ;
Tag := i ;
if odd(i)
then fLabel[i].Color := FarbeLabelOdd
else fLabel[i].Color := FarbeLabelEven ;
end ;
end ;
end;
function TDatPanel.GetMinPanelHeight: Integer;
begin
Result := AnzLabelsProPanel * LabelHeight + 2 * RandObenuUnten ;
end;