Thema: Delphi Stringgrid

Einzelnen Beitrag anzeigen

NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#8

Re: Stringgrid

  Alt 8. Okt 2009, 04:54
Hab gerade mal geschaut ich finde für dein Vorhaben geht ein ListView mit Columns.
Hab grad mal getestet mit OnDrawItem kannst du dir das super zeichnen.
du musst im Listview den Style auf Report stellen, Columns hinzufügen und RowSelect True machen.
Ich hab jedem Colums die Größe von 48 gegeben (2 mal 24 Stunden) und dan Mo,Di usw als Columns gemacht
Und fügst bei Items ein paar Namen ein.

Als Erkläreung:

Rect ist jeweils von der Zeile, da Rowselect an ist.
In Item sind die Informatione von dem Eintrag drin wie Caption (also den Namen des jeweiligen)
State brauchst du nur, wenn du noch die Farbe beim Select der Zeile ändern willst.
Bei OnDrawItem fügst du als Test folgen Code ein:

Delphi-Quellcode:
procedure TForm2.ListView1DrawItem(Sender: TCustomListView; Item: TListItem;
  Rect: TRect; State: TOwnerDrawState);
begin
// Das Rect.Top und Rect.Bottom jeweils, damit du in der Zeile bleibst.
ListView1.Canvas.Rectangle(30,Rect.Top,100,Rect.Bottom); //Ein Rechteck als beispiel
ListView1.Canvas.Brush.Style := bsClear; //Damit der ´Hintergrund vom Text nicht das Rechteck überdeckt
ListView1.Canvas.TextOut(30 +2,Rect.Top,Item.Caption); //Text zeichnen
//Du kannst ja mal über weitere Zeichenoptionen in der Hilfe nach der Klasse TCanvas nachschauen.
//Findest bestimmt etwas
end;

end.
So das müsste denke ich dir weiter helfen. In den Subitems kannst du z.b. die Daten von der Zeit oder Anfangstag oder so reinstellen.
Die Subitems kannst du dan über Item.Items abfragen soviel ich weiß.

Gruß NickelM
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  Mit Zitat antworten Zitat