Delphi-PRAXiS
Seite 3 von 5     123 45      

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:14

Re: Zellen verbinden
 
jap in den oberen beiden

oki 26. Jun 2008 20:14

Re: Zellen verbinden
 
Du kannst nicht was über zells in die Zelle schreiben und im Ownerdraw ein rotes Rechteck drüber malen. Wenn dann alles im ownerdraw.

Razor90 26. Jun 2008 20:17

Re: Zellen verbinden
 
aha...und wie schreib ich dann im ownerdraw??? Hab jetzt schon ne fertige unti wo die ganzen verwiese auf die zellen sind...

oki 26. Jun 2008 20:22

Re: Zellen verbinden
 
Sorry, das war Blödsinn was ich mit der Zelle gesagt hab. Das haut schon hin.

Speicher mal den Text in eine lokale Variable (String) und übergib die mal mit PChar() in DrawText.

Razor90 26. Jun 2008 20:24

Re: Zellen verbinden
 
so in etwa???
Delphi-Quellcode:
form15.stringgrid1.cells[1,0]:=PChar('Verbrauch')
das hat nix gebracht...

oki 26. Jun 2008 20:26

Re: Zellen verbinden
 
Nee,

Delphi-Quellcode:
  MyStr := (Sender as TStringGrid).cells[Col, Row];
  DrawText((Sender as TStringGrid).Canvas.Handle,
                 PChar(MyStr),
                 -1,
                 R,
                 DT_CENTER or DT_VCENTER or DT_SINGLELINE);

taaktaak 26. Jun 2008 20:30

Re: Zellen verbinden
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also, habe das mal nachgestellt:

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

  var r: TRect;
begin
 if aRow=1 then
  if acol=1 then
   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);
    DrawText(Canvas.Handle,
                 PChar('Hallo ich bin es, der hier was schreibt'),
                 -1,
                 R,
                 DT_CENTER or DT_VCENTER or DT_wordbreak);
                 end;

                 sm('');


end;
Damit wird in Spalte 1 (also 2te) der Text in die beiden(!) Zellen der FixedRows (0+1)geschrieben. Ist aber der 3D-Effekt eaktiviert, dann wird dieser Effekt offenbar beim Zeichenen der nächsten Zell für die Zelle davor "gemalt" deswegen erscheint eine weiße Trennlinie im "zusammengeführten" Feld.

// hier mal ein kleines Bild vom Ergebnis

Razor90 26. Jun 2008 20:32

Re: Zellen verbinden
 
tut mir leid...ich bin noch neuling und hab jetzt gar keine ahnung was ich mit deinem ebend geposteten befehl machen sol...hab das jetzt wie bei ondrawcell neu eingefügt und mystr als string deklariert...was nung? wie mach ich die textausgabe aus meinen record (array)?

oki 26. Jun 2008 20:35

Re: Zellen verbinden
 
Irgentwie gehen hier die ganzen Formatierungen über den Haufen. Ich seh schon nicht mehr durch.

@taaktaak: Was ist
Delphi-Quellcode:
                 sm('');
Ich glaub, das liegt an dem direkten Zellenzugriff in DrawText. Der Text muss in eine Variable. Oder ic hseh nicht mehr durch.

Gruß oki

taaktaak 26. Jun 2008 20:37

Re: Zellen verbinden
 
Ahh, sorry, ein ShowMessage() für schreibfaule Menschen ... Ist hier unwichtig, war nur zum Stoppen der einzelnen Schritte


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:24 Uhr.
Seite 3 von 5     123 45      

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