AGB  ·  Datenschutz  ·  Impressum  







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

Fragen zum Färben einer Stringgrid-Zeile

Ein Thema von stefankr · begonnen am 20. Apr 2015 · letzter Beitrag vom 21. Apr 2015
 
stefankr

Registriert seit: 9. Mai 2010
24 Beiträge
 
#1

Fragen zum Färben einer Stringgrid-Zeile

  Alt 20. Apr 2015, 16:51
Hallo liebe Experten!

Ich möchte ein kleines Programm erstellen, bei dem Daten in einem Stringgrid angezeigt werden. Wenn ich auf eine Zeile des Stringgrids doppelklicke, öffnet sich an der Stelle ein PopUp-Menü mit verschiedenen Optionen, z.B. die Daten in der angeklickten Stringgrid-Zeile an einer anderen Stelle des Programms öffnen, um sie bearbeiten zu können.

Nach dem Doppelklick auf die Zeile soll diese eingefärbt werden, damit man sofort sieht, welche Zeile gerade in Verwendung ist. Das habe ich mit folgendem Code in etwa erreicht:

Delphi-Quellcode:
procedure TForm1.StringGrid1DblClick(Sender: TObject);
begin
  Form1.StringGrid1.OnDrawCell := StringGrid1DrawCell;
  GridColorCell := true;
  StringGrid1.Repaint;
  PopupMenu1.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y);
  Form1.StringGrid1.OnDrawCell := nil;
end;


procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var i: Integer;
begin
  if GridColorCell then
    begin
    Form1.StringGrid1.Canvas.Brush.Color:=clGreen;

    If aRow = Form1.StringGrid1.Row then
      with Form1.StringGrid1 do
      begin
        for i := (ColCount-5) to (ColCount) do
        begin
          Canvas.FillRect(Rect);
          Canvas.TextRect(Rect, Rect.Left+2, Rect.Top+5, Cells[ACol, ARow]);
        end;
      end;
    end;
end;
Wenn ich das ausführe, sieht es nach dem Doppelklick auf eine Zeile aus wie in der angehängten Bilddatei. Jetzt meine Fragen:

- Wenn ich dann einen Einzelklick auf irgendeine weiße Zelle ausführe, wird diese mit dem gepunkteten Rahmen angezeigt, und eine der grünen Zellen wird auch weiß, wie im zweiten angehängten Bild. Wie kann ich das verhindern? Ich möchte am liebsten, dass bei Einzeklicks nichts selektiert wird.
- Wie erreiche ich es, dass die weißen Zwischenräume zwischen den grünen Zellen verschwinden? Die angewählte Zeile soll durchgängig farbig sein.

Vielen Dank im Voraus für Eure Hilfe!
Angehängte Grafiken
Dateityp: jpg stringgrid.jpg (51,4 KB, 58x aufgerufen)
Dateityp: jpg stringgrid2.jpg (45,0 KB, 45x aufgerufen)
  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 18:32 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