AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TStringGrid.FixedCols rechts darstellen ?

Ein Thema von madina · begonnen am 7. Mär 2009 · letzter Beitrag vom 13. Mär 2009
Antwort Antwort
Seite 1 von 2  1 2      
madina

Registriert seit: 1. Nov 2005
153 Beiträge
 
#1

TStringGrid.FixedCols rechts darstellen ?

  Alt 7. Mär 2009, 15:57
Hallo,

wie könnte ich in einem TStringGrid die FixedCols nicht links sondern rechts darstellen ?

mfg
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: TStringGrid.FixedCols rechts darstellen ?

  Alt 7. Mär 2009, 16:16
Hallo,

nein nicht mit dem Standardgrid.

Gruß Frank

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3

Re: TStringGrid.FixedCols rechts darstellen ?

  Alt 7. Mär 2009, 17:30
Wieso soll das mit dem Standardgrid nicht gehen ?

Delphi-Quellcode:
procedure sgRechts (Sender: TObject; Rect: TRect; ACol, ARow:Integer);
var st: String;
begin
  with Sender as TExtStringGrid do begin
    Canvas.FillRect(Rect);
    st := Cells[ACol,ARow];
    InflateRect(rect,-2,-2);
    DrawText(Canvas.Handle, PChar(st), StrLen(PChar(st)),Rect,DT_RIGHT);
  end;
end;
Die Prozedur muss nur im OnDrawCell des Grids aufgerufen werden.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: TStringGrid.FixedCols rechts darstellen ?

  Alt 7. Mär 2009, 17:35
Es geht ja nicht um rechtsbündigen Text, sondern darum, die fixen Spalten nicht links, sondern rechts zu haben.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: TStringGrid.FixedCols rechts darstellen ?

  Alt 7. Mär 2009, 17:37
Wenn du nicht gerade die Personal-Edition von Delphi hast kannst du doch in den Quellcode der Stringgrid-Komponente schnüffeln um den Code der linksbündigen FixedCols darstellung in eine rechtsbündige darstellung zu ändern. Die logik sollte die gleiche sein.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#6

Re: TStringGrid.FixedCols rechts darstellen ?

  Alt 7. Mär 2009, 17:55
Hier mal ein Ansatz, um die Spalte ganz rechts als Fixed zu setzen.
(Gibt noch ein Fehler beim Zeichnen wenn eine Zelle der zweitletzten Spalte selektiert wird und dann
eine andere Zelle selektiert wird.)

Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  TempRect: TRect;
begin
  with Sender as TStringGrid do
  begin
    if ACol = Pred(ColCount) then
    begin
      TempRect := Rect;
      Canvas.Brush.Color := FixedColor;
      Canvas.FillRect(TempRect);
      DrawEdge(Canvas.Handle, TempRect, BDR_RAISEDINNER, BF_RECT);
      Canvas.Brush.Color := clBlack;
      with TempRect do
      begin
        Bottom := Bottom + 1;
        Top := Top - 1;
        Left := Left - 1;
        Canvas.FrameRect(TempRect);
      end;
    end;
  end;
end;

procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  CanSelect := ACol <> Pred((Sender as TStringGrid).ColCount);
end;
Miniaturansicht angehängter Grafiken
fixed_col_right_594.jpg  
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: TStringGrid.FixedCols rechts darstellen ?

  Alt 7. Mär 2009, 18:43
Zitat:
if ACol = Pred(ColCount) then
Das sollte man vielleicht ändern inif ACol >= (ColCount - FixedRows) then
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#8

Re: TStringGrid.FixedCols rechts darstellen ?

  Alt 7. Mär 2009, 18:48
Zitat von DeddyH:
Zitat:
if ACol = Pred(ColCount) then
Das sollte man vielleicht ändern inif ACol >= (ColCount - FixedRows) then
Mein Code ist nicht universell (d.h er nimmt keine Rücksicht auf die sonstigen Einstellungen in Options etc)
Thomas
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9

Re: TStringGrid.FixedCols rechts darstellen ?

  Alt 7. Mär 2009, 18:55
wie wollt ihr das Scrollen lösen?
Das Zeichnen allein ist ja am Ende noch die kleinste Hürde. Aber sobald das Grid größer ist, funktionierst ja nicht mehr.

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#10

Re: TStringGrid.FixedCols rechts darstellen ?

  Alt 7. Mär 2009, 20:14
Zitat von Keldorn:
wie wollt ihr das Scrollen lösen?
Das Zeichnen allein ist ja am Ende noch die kleinste Hürde. Aber sobald das Grid größer ist, funktionierst ja nicht mehr.
Warum sollte es nicht mehr funktionieren? Was funktioniert nicht mehr?
Thomas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz