Einzelnen Beitrag anzeigen

Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#14

Re: [erledigt] CheckBox in Stringgrid

  Alt 17. Mär 2006, 21:16
Stop, der Kopf ist zu wenig. Da gibts noch lästige Hürden. Hier ist das wichtige (aus OnDrawCell !) :

Delphi-Quellcode:
        if ACol in CheckBoxCols then begin
          if StrToInt (sg.Cells [ACol,ARow]) = 1 then begin
            DrawRect:=Rect;
            InflateRect(DrawRect,-1,-1);
            DrawState := ISChecked[StrToInt (sg.Cells [ACol,ARow]) = 1];
// ^ die 0/1, die aus dem DB-Original in sg steht beeinflusst, ob die
// CheckBox gecheckt ist ! D.h. sie wird im OnDrawCell je nach Wert gezeichnet !
            sg.Canvas.FillRect(Rect); // hinter Cells liegende 0/1 nicht anz.
            DrawFrameControl(sgNr.Canvas.Handle,DrawRect,DFC_BUTTON,DrawState);
          end
          else begin // unchecked : Checkbox ausblenden
            DrawRect:=Rect;
            InflateRect(DrawRect,-1,-1);
            Canvas.FillRect(DrawRect); // unchecked-0 überdecken
// canvas.TextOut(rect.Left,rect.bottom-canvas.Textheight('X')-1,' ');
          end;
        end
Damit dürfte das jetzt aber hinzukriegen sein. CheckBoxCols ist dabei ein eigenes SET OF byte um entscheiden zu können, um welche Spalten es geht (habe da einige). Und Achtung : das Beispiel zeigt so nur gecheckte Boxen an ! Außerdem muß noch das OnMouseClick ausgewertet werden, damit die DheckBox wie erwartet funktioniert.
Gruß
Hansa
  Mit Zitat antworten Zitat