AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zwei zellen quer verbinden

Ein Thema von Razor90 · begonnen am 27. Jun 2008 · letzter Beitrag vom 27. Jun 2008
Antwort Antwort
Seite 1 von 2  1 2      
Razor90

Registriert seit: 18. Jun 2008
80 Beiträge
 
#1

Zwei zellen quer verbinden

  Alt 27. Jun 2008, 14:46
Hallo, ein neuer Tag, ein neues Problem..
Ich möchte zwei zellen in einer stringgrid verbinden. Aber nur diese beiden Zellen, die nebeneinander sind [1,0] und [2,0].
Habe auch schon rumprobiert, aber leider mir dem ondrawcell keine erfahrung...vll könnt ihr mir weiterhelfen. hier mein ansatz
Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
 Rect: TRect; State: TGridDrawState);
var R:TRect;


begin

    if aRow=0 then
    if acol=2 then
   with sender as tstringgrid do begin

      rect.left:= Rect.left-ColWidths[ACol];
    Canvas.Brush.Color := clBtnFace;
    Canvas.Brush.Style := bsSolid;
    Canvas.FillRect( Rect );
  end;
  end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Zwei zellen quer verbinden

  Alt 27. Jun 2008, 14:52
Schau nochmal im anderen Thread.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Razor90

Registriert seit: 18. Jun 2008
80 Beiträge
 
#3

Re: Zwei zellen quer verbinden

  Alt 27. Jun 2008, 15:01
ja tut mir leid wenn ich doppelposts mache, aber ich kann das nicht... Ich weiß gar nicht was überhaupt mit rect.left, rect.right gemacht wird...man zeichnet ja schließlich ein rechteck, aber wie das hier genau funzt versteh ich nicht....ich kenne nur rectangle(x1,y1,x2,y2);...könnt ihr mir vll schnell ne lösung sagen???
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Zwei zellen quer verbinden

  Alt 27. Jun 2008, 15:10
So schwer ist das ja nun auch wieder nicht. Da ich Deine Delphi-Version nicht kenne, hier mal die Online-Hilfe von Delphi 5 zum Ereignis OnDrawCell:
Zitat:
Das Ereignis OnDrawCell tritt ein, wenn eine Zelle des Gitters gezeichnet werden muß.

type
TDrawCellEvent = procedure (Sender: TObject; ACol, ARow: Longint; Rect: TRect; State: TGridDrawState) of object;
property OnDrawCell: TDrawCellEvent;

Beschreibung

Mit einer Ereignisbehandlungsroutine für OnDrawCell können Sie den Inhalt aller Zellen des Gitters anzeigen. Mit den Methoden der Eigenschaft Canvas können Sie die Zelle zeichnen. Der Parameter Rect beschreibt die Position der Zelle in der Zeichenfläche. Die Parameter Col und Row beschreiben den Zeilen- und Spaltenindex der Zelle, die gezeichnet werden soll. Der Parameter State gibt an, ob die Zelle den Eingabefokus hat, ob sie markiert ist und ob sie fixiert ist (in diesem Fall bleibt sie auch bei einem Bildlauf an ihrer Position).

Ist keine Ereignisbehandlungsroutine für OnDrawCell zugewiesen, werden alle Zellen des Gitters leer angezeigt. Hat die Eigenschaft DefaultDrawing den Wert True, wird der Hintergrund der Zelle angezeigt, bevor das Ereignis OnDrawCell eintritt. Nachdem die Ereignisbehandlungsroutine für OnDrawCell den Inhalt der Zelle gezeichnet hat, wird die markierte Zelle mit einem Fokusrechteck versehen. Wenn DefaultDrawing False ist, ist die Ereignisbehandlungsroutine für OnDrawCell für den Hintergrund der Zelle und für die visuelle Kennzeichnung von ausgewählten und fokussierten Zellen zuständig.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Zwei zellen quer verbinden

  Alt 27. Jun 2008, 15:14
Ein TRect emthält die Koordinaten eines Rechteckes
Left ist also X1; Top Y1; Right X2; Bottom Y2
Markus Kinzler
  Mit Zitat antworten Zitat
Razor90

Registriert seit: 18. Jun 2008
80 Beiträge
 
#6

Re: Zwei zellen quer verbinden

  Alt 27. Jun 2008, 15:17
und was würde das für mich bedeuten? hab die gleiche hilfe, kann damit aber nichts anfange...
rect:=rect.left[1],rect.right[2],rect.top[1],rect.bottom[1]....oda wie mach ich das???
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Zwei zellen quer verbinden

  Alt 27. Jun 2008, 15:21
Canvas.Rectangle( r.Left, r.Top, r.Right, r.Bottom);
Markus Kinzler
  Mit Zitat antworten Zitat
Razor90

Registriert seit: 18. Jun 2008
80 Beiträge
 
#8

Re: Zwei zellen quer verbinden

  Alt 27. Jun 2008, 15:23
aber wo leg ich dann jetzt die koordinaten hin? oda bzw. wo geb ich die ein? habt ihr vll ein beispiel?
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#9

Re: Zwei zellen quer verbinden

  Alt 27. Jun 2008, 15:29
Moin, Moin.
Überlege doch einmal: Als Rect wird dir das "normale" Rechteck übergeben, das gezeichnet werden soll. Wenn du z.B. zur linken benachbarten Zelle verbinden willst, dann musst du Rect.Left also nach links verschieben. Genau um die Breite der linken Nachbarzelle und der Linienbreite zwischen den Zellen. Probier doch mal ein wenig ...
Ralph
  Mit Zitat antworten Zitat
Razor90

Registriert seit: 18. Jun 2008
80 Beiträge
 
#10

Re: Zwei zellen quer verbinden

  Alt 27. Jun 2008, 15:32
so ein mist...ich kapier das nich...
Delphi-Quellcode:
begin

    if aRow=0 then
    if acol=2 then
   with sender as tstringgrid do begin

     rect:=rect.left+rect.right;
    Canvas.Brush.Color := clBtnFace;
    Canvas.Brush.Style := bsSolid;
    Canvas.FillRect( Rect );
  end;
  end;
falsche typen oda sowas meint er jetzt....was soll ich denn machen???
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:03 Uhr.
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