AGB  ·  Datenschutz  ·  Impressum  







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

Datenformular Oberfläche

Ein Thema von VkPenguin · begonnen am 7. Okt 2012 · letzter Beitrag vom 11. Okt 2012
 
VkPenguin

Registriert seit: 23. Dez 2011
150 Beiträge
 
Delphi XE7 Architect
 
#25

AW: Datenformular Oberfläche

  Alt 9. Okt 2012, 00:22
Mein bisheriges OnDrawCellEvent (Der Umweg über "sg", da ich mehrere Stringgrids hab, die ich gleich Formatieren möchte):
Delphi-Quellcode:
sg := TStringGrid (Sender);
if (((((ARow+1) mod 2 <> 0) And (ARow<>0) AND (ACol<>0))) OR (((ACol+1) mod 2 <> 0) And (ACol<>0) AND (ARow<>0))) then
begin //Färbe jede zweite Zelle zur Übersicht ein (Außer die Erste Spalte/Reihe)
sg.canvas.brush.color := cl3DLight;
sg.canvas.FillRect(Rect);
end;
if ((ARow>=sg.Selection.Top) AND (Arow<=Sg.Selection.Bottom) AND (ACol>=sg.Selection.Left) AND (ACol<=Sg.Selection.Right)) then
Begin //Färbt die makierten Felder
sg.canvas.brush.color := $FACE87;
sg.canvas.FillRect(Rect);
End;
if ((Arow=sg.Row) ANd (ACol=sg.Col)) then
Begin //Färbt das selektierte Feld
sg.canvas.brush.color := $0045FF;
sg.canvas.FillRect(Rect);
End;
Wenn ich ein Feld mit Text(z.B. "TEST" oder "111222333") selektiere verschwindet der Text, da er von dem OnDrawCell-Event übermalt wird. Sobald ich die Selektion aufhebe ist der Text aber wieder sichtbar, der Inhalt geht also nicht verloren, wird nur überzeichnet.

Der Inhalt der Felder kann je nachdem sowohl vom Nutzer als auch vom Programm selbst verändert werden.

Ich schätze mal, ich verstehe nicht ganz richtig, was du mit "Alles was dort erscheinen soll..." meinst, aber einen ähnlichen Gedanken hatte ich auch schon, daher stand probehalber mal
Delphi-Quellcode:
for X:=0 To Sg.ColCount do
 Begin
 for Y:=0 To Sg.RowCount do
   Begin
   if Sg.Cells[X,Y]<>'then sg.Cells[X,Y]:=sg.Cells[x,Y];
   End;
 End;
am Ende des Events, da ich mir erhofft hatte, durch die "Änderung" des Inhalts würde der Text nocheinmal neu (-> Über die Farbe) geschriben. Es führt aber nur dazu, dass die gesamte Tabellendarstellung flimmert (Wahrscheinlich, da dadurch dasselbe Event immer wieder aufgerufen wird).
  Mit Zitat antworten Zitat
 


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 20:27 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-2025 by Thomas Breitkreuz