Autor Beitrag
OliverN_26
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 252

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: Di 25.12.07 15:04 
Habs heut mit dem StringGrid :-)

Kann mir einer sagen, wie ich die Rahmen farbe einer Zelle in einem StringGrid ändern kann?

Zweck:
Mir geht es um eine Zeile, in der ich nur die 1.Zelle besetzt habe. In den restlichen Zeilen möchte ich (da sie nicht genutzt werden)
einfach die Rahmenfarbe(rechts,links,unten) ändern, damit es so aussieht, als ob es nur 1 Zelle ist.

Danke


Moderiert von user profile iconChristian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Di 25.12.2007 um 14:33
Jerk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 251

Vista Ultimate, Ubuntu
Turbo Delphi 2006
BeitragVerfasst: Di 25.12.07 15:39 
Gridlinewidth auf 0 setzen und mittels Canvas in dem gewünschten Feld einen neuen Rahmen zeichnen.
OliverN_26 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 252

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: Di 25.12.07 19:41 
Ok. Danke. Das bringt mich schon mal ein kleines Stück weiter.
Das mach ich mit "Canvas.Pen" oder ?

Aber wie zeichne ich denn einen Rahmen?
Wie sage ich denn dass er z.B. nur rechte, linke und untere Seite zeichnen soll?

MfG
Jerk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 251

Vista Ultimate, Ubuntu
Turbo Delphi 2006
BeitragVerfasst: Di 25.12.07 19:59 
Da das ja drei linien sind würd ich LineTo vorschlagen.
Wenn es mehr wird kann man fast schon überlegen nen komplettes viereck zu zeichnen und die störende Linie einfach weiß zu überzeichnen sodass sie weg ist :p

Zeichnen kann man in nem Stringgrid z.B. so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
 procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
...
Procedure TForm1.StringGrid1DrawCell(Sender: TObject; aCol, aRow: Integer;
  Rect: TRect; State: TGridDrawState);
Begin
  With Sender As TStringGrid Do
  Begin
   If (aCol < FixedCols) Or (aRow < FixedRows) Then Exit;  // Wenn du auf "gesperrten" Feldern nicht zeichnen willst
   Canvas.moveto(90,100);
   Canvas.LineTo(100,100);
  end;
end;

Procedure Tform1.Button1Click(Sender: Tobject);
begin
Stringgrid1.repaint;
end;
OliverN_26 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 252

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: Di 25.12.07 20:45 
Alles klar ... Danke :-)