Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

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 18:04


Zellen verbinden
 
Ich möchte nun zwei Zellen di untereinander sind miteinander verbinden. Ich habe folgenden Code gefunde:
Delphi-Quellcode:
   If gdFixed In State Then Exit;
     If ARow > 1 Then Exit; }
     with sender as tstringgrid do begin
     If aCol < Pred(ColCount) Then
      Rect.Right := Rect.Right + 2 GridlineWidth;
    y:= Rect.Top +2;
    x:= Rect.Left +2;
    for i:= 1 to aCol-1  do
      x:= x - ColWidths[i] - GridlineWidth;

   end;
wie muss ich diesen nun umändern um mein problem zu lösen?

mkinzler 26. Jun 2008 18:32

Re: Zellen verbinden
 
Wo hast du den Code denn gefunden? Denn funktionieren tut er bestimmt nicht.
Überlege mal wie du grundsätzlich vorgehen würdest und versuch das auf Delphi zu übertragen

oki 26. Jun 2008 18:57

Re: Zellen verbinden
 
Zellen von Was? [edit] obwohl mir bei dem Codeschnipsel die Augen weh tun hab ich den dezenten Hinweis auf StringGrid gefunden. Somit ist die erste Frage abgehakt. [/edit oki]
Warum verbinden?
Mit welchem Ziel?

Razor90 26. Jun 2008 19:14

Re: Zellen verbinden
 
Es handelt sich um eine Stringgrid. Den Text, denn ich in eine Zelle schreiben möchte passt dort nicht rein, weshalb ich gerne unterienader in zwei Zellen schreiben würde.

oki 26. Jun 2008 19:19

Re: Zellen verbinden
 
Also, Zellen verbinden wie in Exel kannst du nicht. Dir bleibt dann nur die Möglichkeit ein OwnerDraw durchuführen und die Zellen zur Laufzeit zu übermalen und den Text in das vergrößerte Rect zu schreiben. Oder du vergrößerst die Zeilenhöhe. Aber dann musst du für den Zeilenumbruch auch wieder auf den Canvas schreiben.

Gruß oki

Razor90 26. Jun 2008 19:35

Re: Zellen verbinden
 
ownerdraw...kA was das ist.. DeddyH hat mir schon geholfen:
Delphi-Quellcode:
begin
  if (ARow=1) then //Zeilen 1 und 2 verbinden
    with Sender as TStringGrid do
      begin

        R := Classes.Rect(Rect.Left,
                          Rect.Top - (Rect.Bottom - Rect.Top),
                          Rect.Right,
                          Rect.Bottom);
        Canvas.Brush.Color := clRed;
        Canvas.FillRect(R);
        DrawText(Canvas.Handle,
                 PChar(Cells[ACol, ARow]),
                 -1,
                 R,
                 DT_CENTER or DT_VCENTER or DT_SINGLELINE);
      end;
end;
nur leider erscheint jetzt kein Text mehr... Jmd ne Idee???

mkinzler 26. Jun 2008 19:42

Re: Zellen verbinden
 
Zitat:

ownerdraw...kA
= Selberzeichnen, was ja Detlefs Code macht.
In welche Methode hast du den Code geschrieben?

Razor90 26. Jun 2008 19:46

Re: Zellen verbinden
 
in stringgriddraw cell...nur es funktioniert ja, aber der text ist weg!!!

oki 26. Jun 2008 19:54

Re: Zellen verbinden
 
DT_SINGLELINE erzeugt einen einzeiligen Text im Rect. Du wolltest doch mehrzeilig schreiben.

Und da wird wohl was mit deinem Rect nicht stimmen.

Wo hat DeddyH dir geholfen? ich sehe keinen Beitrag.

oki

Razor90 26. Jun 2008 19:57

Re: Zellen verbinden
 
per pn^^ ich mach den text dann per hand zweizeilig, also mit stringgridlcells[x,y]:='';, das krieg ich hin...nur warum steht jetzt überhaupt nix mehr da????


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 Uhr.
Seite 1 von 5  1 23     Letzte »    

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