Registriert seit: 8. Nov 2006
1.360 Beiträge
Delphi 10.3 Rio
|
Re: Zelle teilen
18. Dez 2007, 21:20
Vielleicht sollte ich sagen das ich noch diesen code habe der was drüber zeichnet könnte es dadurch schwerder werden
Delphi-Quellcode:
procedure TForm7.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var Celltext :string;
Farbe :boolean;
Textformat :cardinal;
n :integer;
begin
Textformat:= DT_SINGLELINE;
with (Sender as TStringGrid) do
begin
Celltext:= Cells[ACol, ARow];
Farbe:= True; //Standardeinstellung der Zellen ist einfarbig
if (Cells[ACol,ARow] = 'fa') or (Cells[ACol,ARow] = 'FA')then
begin
Canvas.Brush.Color:= ClRed; //Zellenfarbe
Canvas.Font.Color:= ClWhite; //Schriftfarbe
Canvas.Font.Style:= Canvas.Font.Style + [fsBold]; //Text fett
end;
if (Cells[ACol,ARow] = 'np') or (Cells[ACol,ARow] = 'NP')then
begin
Canvas.Brush.Color:= ClBlue; //Zellenfarbe
Canvas.Font.Color:= ClWhite; //Schriftfarbe
Canvas.Font.Style:= Canvas.Font.Style + [fsBold]; //Text fett
end;
if (Cells[ACol,ARow] = 'aa') or (Cells[ACol,ARow] = 'AA')then
begin
Canvas.Brush.Color:= ClGreen; //Zellenfarbe
Canvas.Font.Color:= ClWhite; //Schriftfarbe
Canvas.Font.Style:= Canvas.Font.Style + [fsBold]; //Text fett
end;
if (Farbe) then
begin
//Hintergrund überschreiben
SetBkMode(StringGrid1.Canvas.Handle, OPAQUE);
Canvas.FillRect(Rect)
end;
if (ACol = 1) or (ACol = 0) then
begin
//Text wird zentriert
Textformat:= Textformat or DT_CENTER or DT_VCENTER ;
Canvas.Font.Style:= Canvas.Font.Style + [fsBold]; //Text fett
end;
if (ACol > 1) then //Zentrieren für alle Zellen
begin
//Text wird zentriert
Textformat:= Textformat or DT_CENTER or DT_VCENTER;
end;
//Hier wird nun der Text ausgegeben
DrawText(Canvas.Handle, PChar(Celltext), Length(celltext), Rect,Textformat);
end;
begin //Linien zwischen Zellen erzeugen
n:=0 ;
repeat
n:=n+4;
if (ARow = n) and (ACol >= StringGrid1.FixedCols) then
begin
StringGrid1.Canvas.Pen.Color := clBlack; // Linienfarbe
StringGrid1.Canvas.Pen.Width := 2; // Stärkt der Linie
StringGrid1.Canvas.MoveTo(Rect.Left,Rect.Bottom);
StringGrid1.Canvas.LineTo(Rect.Right,Rect.Bottom);
end;
until n= 24;
end;
end;
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...
Surft Ihr mit dem Taschenrechner?"
|
|
Zitat
|