Registriert seit: 26. Dez 2002
Ort: Berlin
140 Beiträge
Delphi 5 Standard
|
StringGrid Spalten Zentrieren, Linksbündig,Rechtsbündig und
4. Aug 2009, 19:26
ich habe es geschaft in meinem StringGrid die Spalten zu Zentrieren oder Links bzw.Rechtsbündig anzeigen zu lassen
Delphi-Quellcode:
procedure TMDIChild.grdArtikelDrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var InhaltZelle: string;
begin
with (Sender as TStringgrid) do
begin
InhaltZelle := cells[acol, arow];// Zellinhalt in Variable auslesen
canvas.fillrect(rect);// Zelle mit aktueller Hintergrundfarbe "übermalen"
// 1. Spalte zentriert und mit Abstand nach oben
if (acol = 0) then
canvas.textrect(rect, (rect.Left + rect.Right -
canvas.textwidth(InhaltZelle)) div 2, rect.top + 3, InhaltZelle);
// 2. Spalte zentriert und mit Abstand nach oben
if (acol = 1) then
canvas.textrect(rect, (rect.Left + rect.Right -
canvas.textwidth(InhaltZelle)) div 2, rect.top + 3, InhaltZelle);
// 3. Spalte zentriert und mit Abstand nach oben
if (acol = 2) then
canvas.textrect(rect, (rect.Left + rect.Right -
canvas.textwidth(InhaltZelle)) div 2, rect.top + 3, InhaltZelle);
// 4. Spalte zentriert und mit Abstand nach oben
if (acol = 3) then
canvas.textrect(rect, (rect.Left + rect.Right -
canvas.textwidth(InhaltZelle)) div 2, rect.top + 3, InhaltZelle);
// 5. Spalte zentriert und mit Abstand nach oben
if (acol = 4) then
canvas.textrect(rect, (rect.Left + rect.Right -
canvas.textwidth(InhaltZelle)) div 2, rect.top + 3, InhaltZelle);
// 6. Spalte zentriert und mit Abstand nach oben
if (acol = 5) then
canvas.textrect(rect, (rect.Left + rect.Right -
canvas.textwidth(InhaltZelle)) div 2, rect.top + 3, InhaltZelle);
// 7. Spalte linksbündig mit Abstand nach links und oben
if (acol = 6) then
canvas.textout(rect.left + 3, rect.top + 2, InhaltZelle);
// 8. Spalte linksbündig mit Abstand nach links und oben
if (acol = 7) then
canvas.textout(rect.left + 3, rect.top + 2, InhaltZelle);
// Alle anderen Spalten rechtsbündig mit Abstand nach rechts und oben
if (acol > 7) then
canvas.textrect(rect, rect.Right - canvas.textwidth(InhaltZelle) - 4,
rect.top + 2, InhaltZelle);
end; // von with
end; // der Prozedur
jetzt versuche ich es schon eine ganze zeit lang das die Spalten auch eine optimale breite bekommen
wie muß ich dabei rangehen ?
könnt ihr mir hier helfen ?
|
|
Zitat
|