Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Schriftart einer Zeile von DBGrid "fett markieren" (https://www.delphipraxis.net/8163-schriftart-einer-zeile-von-dbgrid-fett-markieren.html)

TypusMensch 29. Aug 2003 16:49


Schriftart einer Zeile von DBGrid "fett markieren"
 
Ich will eine/mehrere Zeilen (nicht Spalten) von einer DBGrid mit der Font.Syle auf fsBold schalten. Leider weiß ich nicht, wie ich das mache. Ich weiß wie ich die Spalte mache:

DBGrid1.Columns[i].Font.Style := [fsBold];

nicht aber eine Zeile....!!!! :-(

Ich hoffe mir kann da schnellstmöglich einer helfen.

Vielen Dank. Mfg Typus

woki 29. Aug 2003 18:46

Re: Schriftart einer Zeile von DBGrid "fett markieren&a
 
Hi,

Du wirst Dich in das OnDrawColumnCell einklinken müssen, und das Schreiben der Daten selbst übernehmen müssen.

Grüsse
Woki

TypusMensch 30. Aug 2003 13:31

Re: Schriftart einer Zeile von DBGrid "fett markieren&a
 
Oh mein Gott. Da habe ich wiedermal kein Plan von.

Kann wir da jemand kurze Syntax erklären... n kleines Beispiel wäre hilfreich... :roll:

TypusMensch 30. Aug 2003 13:59

Re: Schriftart einer Zeile von DBGrid "fett markieren&a
 
Hab es jetzt so. Klappt aber nicht, wenn ich Prog starte. Sind entweder alle fett markiert oder gar nicht, entsprechend dem was nun am Start im ersten Datensatz steht. :-(

Delphi-Quellcode:
procedure THaupt.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
Var i : integer;
    C: TCanvas;
begin
  if Sender is TDBGrid then
  begin
    C := TDBGrid(Sender).Canvas;
    for i := 0 to Table1.RecordCount do
      begin
      if Table1.FieldByName('Markiert').AsBoolean = True then
         C.Font.Style := [fsBold] else
         C.Font.Style := [];
      end;
    C.FillRect(Rect);
    C.TextRect(Rect, Rect.Left, Rect.Top, Column.Field.AsString);
  end;
end;

Sharky 30. Aug 2003 14:09

Re: Schriftart einer Zeile von DBGrid "fett markieren&a
 
Hai TypusMensch,

schaue dir doch mal diesen Beitrag in der Code-Library an. Der sollte dir helfen.

Nachtrag:

Hier noch einmal der Code speziell für dein Problem:

Delphi-Quellcode:
procedure TFRM_Main.DBGrid1DrawColumnCell(Sender: TObject;
 const Rect: TRect; DataCol: Integer; Column: TColumn;
 State: TGridDrawState);
begin
 if (Table1.FieldByName('Markiert').AsBoolean) then
  begin
   DBGrid1.Canvas.Font.Style := [fsbold];
  end;
 DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

TypusMensch 30. Aug 2003 14:38

Re: Schriftart einer Zeile von DBGrid "fett markieren&a
 
:cry: Sorry, aber damit kann ich noch weniger was anfangen, weil es sich auf ne StringGrid bezieht.

Worin liegt denn der Unterschied zwischen OnDrawColumnCell und OnDrawDataCell????

Wie gesagt der obenstehende Code kommt dem sehr nah, was ich auch eigentlich will, nur klappt es leider nicht voll und ganz (Problem beschrieben)...

Sharky 30. Aug 2003 14:42

Re: Schriftart einer Zeile von DBGrid "fett markieren&a
 
Zitat:

Zitat von OnlineHilfe (AKA F1)
Schreiben Sie keine Ereignisbehandlungsroutine für OnDrawDataCell. OnDrawDataCell ist veraltet und dient nur der Abwärtskompatibilität. Schreiben Sie statt dessen eine Ereignisbehandlungsroutine für OnDrawColumnCell.

Geht mein code denn nicht?

TypusMensch 30. Aug 2003 14:49

Re: Schriftart einer Zeile von DBGrid "fett markieren&a
 
Nein, leider nicht. Er startet das Programm, der erste Datensatz, den er gleich liest, das is jetzt Markiert = True, dann sind alle Zeilen fett, is die erste beim ersten datensatz markiert = false, sind alle nicht fett! Ebenfalls das gleiche wenn ich auf einen datensatz klicke, wo markiert = false, dann sind alle datensätze nicht markiert.... umgedreht genauso, bei klicken (also true = alle fett)...

ich will doch aber nicht, dass alle zeilen fett oder alle nicht fett sind. ich will doch abwechseln, dementsprechend, welcher datensatz.markiert true oder false hat.

:cry: :cry: :cry:

Sharky 30. Aug 2003 14:59

Re: Schriftart einer Zeile von DBGrid "fett markieren&a
 
Ist Table1 aus wirklich die Datenquelle die mit deinem Grid verbunden ist? Mir ist auch schon passiert das ich mich im DrawCell auf eine falsche Query bezogen habe.

TypusMensch 30. Aug 2003 15:10

Re: Schriftart einer Zeile von DBGrid "fett markieren&a
 
Oh Gott.... erst lach ich mir eins ins Fäustchen, wegen Matze's Problem mit dem Browser (HTML-HTM)

siehe Browserproblem

http://www.delphipraxis.net/images/smiles/wall_bash.gifSorry, aber hatte der DBGrid natürlich auch ne Query zugeordnet... Es tut mir leid... :roll: :oops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:28 Uhr.
Seite 1 von 2  1 2      

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