Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Zellen verbinden (https://www.delphipraxis.net/116317-zellen-verbinden.html)

Razor90 26. Jun 2008 20:39

Re: Zellen verbinden
 
hey...
taaktaak, das is genau das richtige!!!! Danke

taaktaak 26. Jun 2008 20:41

Re: Zellen verbinden
 
Jooo, aber das mit dem 3D-Effekt ist natürlich Mist. Da muss ich noch mal etwas grübeln....

oki 26. Jun 2008 20:41

Re: Zellen verbinden
 
Grrr wieder roter Kasten :cry: :cry:

Die Textausgabe machst du mit DrawText. So wie schon geschrieben.

Ich mach noch mal den Code fertig.

So hier:
Delphi-Quellcode:
procedure TfoTest05.StringGrid1DrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);

var r: TRect;
    MyStr : String;
begin
if aRow=1 then begin
  if acol=1 then begin
    with TStringgrid(Sender) do begin
      R := Classes.Rect(Rect.Left+1,
                        Rect.Top - (Rect.Bottom - Rect.Top),
                        Rect.Right-1,
                        Rect.Bottom-1);

      Canvas.Brush.Color := clRed;
      Canvas.FillRect(R);
      MyStr := Cells[ACol, ARow-1];
      DrawText(Canvas.Handle,
               PChar(MyStr),
               -1,
               R,
               DT_CENTER or DT_VCENTER or DT_wordbreak);
    end;
  end;
end;

Razor90 26. Jun 2008 20:46

Re: Zellen verbinden
 
cool...langsam wirds genau so wie ich es mir vorgestellt hab...VIELEN DANK!! wenn ich jetzt auf das obere feld klicke verschwindet die markierung....es soll gar nich rot sein, sonder clBtnFace...

oki 26. Jun 2008 20:48

Re: Zellen verbinden
 
so denne, ändere clred in clBtnFace

Razor90 26. Jun 2008 20:49

Re: Zellen verbinden
 
hab ich schon gemacht ;)

oki 26. Jun 2008 20:51

Re: Zellen verbinden
 
nur mal am Rande. Der Fehler war, dass der Text in Zeile 0 steht. Das Verbinden wird aber in Zeile 1 vorgenommen. Somit muß der Zellzugriff ARow-1 sein.

Razor90 26. Jun 2008 20:54

Re: Zellen verbinden
 
wenn ich das mache sind die zellen nicht mehr verbunden, also 0 und 1 sollen verbunde werden

taaktaak 26. Jun 2008 20:54

Re: Zellen verbinden
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, die Lösung unter Berücksichtigung des 3D-Effekt (fast OK):

Delphi-Quellcode:
procedure TfoTest05.StringGrid1DrawCell(Sender: TObject; ACol,
       ARow: Integer; Rect: TRect; State: TGridDrawState);

var r: TRect;
begin
 if aRow=1 then
  if acol=2 then // << in Spalte 2 wird der Inhalt von Spalte 1 gezeichnet
   with TStringgrid(Sender) do begin

    R := Classes.Rect(Rect.Left-ColWidths [ACol-1], // << !!!
                      Rect.Top -RowHeights[ARow-1], // << !!
                      Rect.Left-2,
                      Rect.Bottom-1);

    Canvas.Brush.Color := clRed;
    Canvas.FillRect(R);
    DrawText(Canvas.Handle,
                 PChar('Hallo ich bin es, der hier was schreibt'),
                 -1,
                 R,
                 DT_CENTER or DT_VCENTER or DT_WORDBREAK);
    end;
  end;
end;
Jetzt zeichnen wird eine Spalte SPÄTER - nachdem das Grid den 3D-Effekt gemalt hat - unsren Text in die VORHERGEHENDE Spalte! Jetzt sind nur noch winzige Punkte vom 3d-Effekt an den Aussenseiten zu sehen!

oki 26. Jun 2008 20:58

Re: Zellen verbinden
 
und wo ist dein Text?


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:10 Uhr.
Seite 4 von 5   « Erste     234 5      

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