![]() |
Zellen verbinden
Ich möchte nun zwei Zellen di untereinander sind miteinander verbinden. Ich habe folgenden Code gefunde:
Delphi-Quellcode:
wie muss ich diesen nun umändern um mein problem zu lösen?
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; |
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 |
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? |
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.
|
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 |
Re: Zellen verbinden
ownerdraw...kA was das ist.. DeddyH hat mir schon geholfen:
Delphi-Quellcode:
nur leider erscheint jetzt kein Text mehr... Jmd ne Idee???
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; |
Re: Zellen verbinden
Zitat:
In welche Methode hast du den Code geschrieben? |
Re: Zellen verbinden
in stringgriddraw cell...nur es funktioniert ja, aber der text ist weg!!!
|
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 |
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 19:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz