AGB  ·  Datenschutz  ·  Impressum  







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

stringgrid Zellenrahmen

Ein Thema von Matthias-k · begonnen am 26. Sep 2005 · letzter Beitrag vom 29. Sep 2005
Antwort Antwort
Seite 1 von 2  1 2      
Matthias-k

Registriert seit: 7. Jul 2005
Ort: Freiberg
75 Beiträge
 
Delphi 7 Professional
 
#1

stringgrid Zellenrahmen

  Alt 26. Sep 2005, 12:06
hi leutz, ich weis, das crosspostings nicht gern gesehen sind, aber ich komm echt nich mehr weiter.

ich habe bereits im DF gepostet, doch dort kam leider keine reaktion.

der link zu dem topic ist folgender:

http://www.delphi-forum.de/topic_tms...den_48985.html

kann mir einer von euch da weiterhelfen?

wäre echt wichtig!

danke! matthias
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: stringgrid Zellenrahmen

  Alt 26. Sep 2005, 13:33
Hai Matthias,

Du erwartest aber jetzt nicht wirklich das ich eine Frage im DF lese um sie dann hier beantworten zu können?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Matthias-k

Registriert seit: 7. Jul 2005
Ort: Freiberg
75 Beiträge
 
Delphi 7 Professional
 
#3

Re: stringgrid Zellenrahmen

  Alt 26. Sep 2005, 14:34
[original text aus dem DF]

ich benutze ein stringgrid zum anzeigen von daten.

die daten sind zeilenweise angeordnet.

zum einen weis ich nicht, wie ich meinem programm sagen kann, das nur mehrere zellen einer zeile gleichzeitig markiert werden können,
und wenn ich mehrere zellen nebeneinander mit dem gleichen inhalt habe, wie ich diese zellen zusammenhängend mit einem rahmen umranden kann!

lässt dich das überhaupt machen? ich kenn die tms komponenten nicht und bin dabei, sie zu testen! hat einer von euch nähere erfahrungen mit diesen kompos?

[end Originaltext aus dem DF]

So! Tschuldige bitte, das ich es mir erlaubt habe, ein Crossposting zu eröffnen!

matthias
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: stringgrid Zellenrahmen

  Alt 26. Sep 2005, 14:53
Hi Matthias,

cross posting ist schlimm, wenn du deine Frage gleich in mehreren Rubriken der DP einstellst - was du machst, das ist etwas komplizierter, glaube ich.

Die von dir gewünschte Umrandung dürfte schwierig (bis unmöglich) sein, da ja nur das Zeichnen einzelner Zellen nach außen gereicht wird. Einfacher ist da sicher eine Einfärbung der Selektion. Auch verstehe ich nicht, ob du die Ausweitung der Selektion auf mehr als eine Zeile verhindern musst, oder ob es genügt die entsprechenden Actions zu deaktivieren, wenn der Selektionsblock mehr als eine Zeile enthält.

Grüße vom marabu
  Mit Zitat antworten Zitat
Matthias-k

Registriert seit: 7. Jul 2005
Ort: Freiberg
75 Beiträge
 
Delphi 7 Professional
 
#5

Re: stringgrid Zellenrahmen

  Alt 26. Sep 2005, 15:09
Hi marabu,

die frage steht nicht in mehreren rubriken, sondern noch in einem anderen forum.

aber um zum thema zurückzukommen:

der user soll einen bestimmten bereich der zellen auswählen können! aber nur ein einer zeile! deshalb das verhindern der selektion von mehreren zeilen.

das komplette farbliche färben der zellen bringt mir insofern nichts, weil ich 2 zellbereiche nicht voneinander trennen kann!

ich versuche grad, da wir hier im besitz der sourcen des tms grids sind, den selektionsrahmen nachzuvollziehen.

dieser rahmen lässt sich optional zuschalten, screenshot ist angehängt.

das element hat keinen focus, die selektion bleibt aber erhalten! und so möchte ich es auch haben.

weil müller soll sich durch den rahmen von schulze trennen!

ich hoffe, ihr versteht, was ich mein!

matthias
Miniaturansicht angehängter Grafiken
stringgrid_316.jpg  
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: stringgrid Zellenrahmen

  Alt 26. Sep 2005, 15:33
Zitat von Matthias-k:
die frage steht nicht in mehreren rubriken, sondern noch in einem anderen forum.
Diesen feinen Unterschied habe ich versucht herauszuarbeiten - entschuldige mein schlechtes Deutsch.

Was dein TMSGrid angeht, da kann ich dir nicht helfen, da ich keinen Zugriff auf diese (kommerzielle?) Komponente habe. Viel Erfolg.

marabu
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#7

Re: stringgrid Zellenrahmen

  Alt 26. Sep 2005, 16:01
muss es denn ein rahmen sein? zeichne doch die jeweiligen zellen im ondrawcell ereignis einfach mit einer anderen farbe!

etwa so z.b...mal ins blaue (höhö) getippt

Delphi-Quellcode:
procedure TForm1.StringGridDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
...
  if StringGrid.Cells[ACol,ARow]='Müllerthen
  begin
    StringGrid.Canvas.Brush.Color := clBlue;
    StringGrid.Canvas.FillRect(Rect);
    DrawText(StringGrid.Canvas.Handle,pChar('Müller'),Length('Müller'),Rect,DT_Left);
  end;
...
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#8

Re: stringgrid Zellenrahmen

  Alt 26. Sep 2005, 16:54
noch ne idee, erst eine zelle schwarz malen, dann mit einem kleineren rechteck nochmals übermalen!


Delphi-Quellcode:
procedure TForm1.StringGridDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  aRect:TRect;
  str:string;
begin
  str:='Müller';

  if (StringGrid.Cells[ACol,ARow]=str) then
  begin
    StringGrid.Canvas.Brush.Color := clBlack;
    StringGrid.Canvas.FillRect(Rect);
    StringGrid.Canvas.Brush.Color := clBlue;
    aRect.Left:=Rect.Left+2;
    aRect.Top:=Rect.Top+2;
    aRect.Right:=Rect.Right-2;
    aRect.Bottom:=Rect.Bottom-2;

    if ACol<StringGrid.ColCount then
      if (StringGrid.Cells[ACol+1,ARow]=str) then
        aRect.Right:=Rect.Right;
    if ACol>StringGrid.FixedRows then
      if (StringGrid.Cells[ACol-1,ARow]=str) then
        aRect.Left:=Rect.Left;

    StringGrid.Canvas.FillRect(aRect);
    DrawText(StringGrid.Canvas.Handle,
               pChar(str),
               Length(str),
               Rect,DT_Center or DT_VCENTER or DT_SINGLELINE);
  end;

end;
...du musst nur noch wenn die ganzen daten eingefügt wurden, dass grid neu zeichnen lassen...
Miniaturansicht angehängter Grafiken
gridbsp_612.png  
  Mit Zitat antworten Zitat
Matthias-k

Registriert seit: 7. Jul 2005
Ort: Freiberg
75 Beiträge
 
Delphi 7 Professional
 
#9

Re: stringgrid Zellenrahmen

  Alt 27. Sep 2005, 07:52
hi ibp,

eine komplett färbung der zellen ist nicht das, was ich brauche!

weil damit ist eine trennung der bereichen nicht möglich!

diese komplette färbung der zelle habe ich bereits drin, doch nach meiner meinung nach und nach der meinung mehrerer anderer will ich das jetzt anders lösen!

ich schau mir mal an, wie die selektion um die zellen gezeichnet wird.

matthias

//edit: tja, scheiße, wenn die message die gesammte nacht auf dem arbeitsrechner liegt, und man vergisst auf "absenden" zu gehn!
ich teste deine lösung mal, das schaut interesannt aus! vieleicht ist es das, was mich und die kunden zufrieden stellt!
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#10

Re: stringgrid Zellenrahmen

  Alt 27. Sep 2005, 08:51
oops habe tms nicht gelesen, habe die kompo auch seit letzter woch und bin gerade daran sie in ein projekt einzupassen.
schau dir doch mal diese events an, damit lässr sich bestimmt etwas machen....

Zitat:
property OnGetCellBorderProp: TGridBorderPropEvent read FOnGetCellBorderProp write FOnGetCellBorderProp;

Description

Event triggered to query the border pen settings for each border of a cell.

TAdvToolBar and TAdvMenus
Zitat:
Unit AdvGrid
TGridBorderPropEvent=procedure(Sender: TObject; ARow, ACol: Integer; LeftPen, TopPen, RightPen, BottomPen: TPen) of object;

TAdvToolBar and TAdvMenus
Zitat:
Event handler is called to set border style for each cell.

property OnGetCellBorder: TGridBorderEvent read FOnGetCellBorder write FOnGetCellBorder;

Description

Can be used to specify what cell borders must be displayed in the grid.

TCellBorder = (cbTop,cbLeft,cbRight,cbBottom);

TCellBorders = set of TCellBorder

TAdvToolBar and TAdvMenus

Zitat:
Unit AdvGrid
TGridBorderEvent=procedure(Sender: TObject; ARow, ACol: Integer; APen: TPen; var Borders: TCellBorders) of object;

TAdvToolBar and TAdvMenus
  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 21:00 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