AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi In StringGrid-Zeilen mit einem Balken navigieren
Thema durchsuchen
Ansicht
Themen-Optionen

In StringGrid-Zeilen mit einem Balken navigieren

Ein Thema von LOMBI · begonnen am 24. Sep 2006 · letzter Beitrag vom 26. Okt 2006
Antwort Antwort
Seite 2 von 3     12 3      
marabu

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

Re: In StringGrid-Zeilen mit einem Balken navigieren

  Alt 24. Sep 2006, 19:43
Die vermeintlichen Änderungen sind bei mir so von D7 vorgegeben - du musst natürlich die von D3 vergebene Signatur benutzen. Ich wollte nur zeigen, wie die Bedingung formuliert werden muss um den von dir gewünschten gelben Balken zu erhalten. Bei D3 scheint der Header wegen der Überdeckung der Eigenschaften Col und Row mit den gleichnamigen Parametern noch nicht korrigiert worden zu sein. Du kannst die aktuellen Werte zwischenspeichern:

Delphi-Quellcode:
procedure TFRechn.StringGridRedatDrawCell(Sender: TObject;
  Col, Row: Integer; Rect: TRect; State: TGridDrawState);
var
  aCol, aRow: Integer;
begin
  aCol := Col;
  aRow := Row;
  with Sender As TStringGrid do
  begin
    if (ARow = Row) and (ACol >= FixedCols)
      then Canvas.Brush.Color := clYellow
      else Canvas.Brusch.Color := clWhite;
    Canvas.FillRect(Rect);
  end;
end;
Immernoch beschleicht mich das Gefühl, dass du Spalten und Zeilen verwechselst. Du schreibst 8 feste Titelspalten und jede weitere Zeile...

marabu
  Mit Zitat antworten Zitat
LOMBI
(Gast)

n/a Beiträge
 
#12

Re: In StringGrid-Zeilen mit einem Balken navigieren

  Alt 25. Sep 2006, 19:51
Guten Abend marabu,

Deinen Code habe ich umgesetzt. Im StringGrid ist ein gelber
Balken vorhanden, der auf Click in eine andere Zeile wechselt.

Was ich jetzt vermisse, ist meine feste Titelleiste oben mit den Bezeichnungen der Spalten.

FixedColor := clRed;
Font.Color := clBlack;

Delphi-Quellcode:
procedure TFRechn.FormCreate(Sender: TObject);
begin
  with StringGridRedat do
    begin
      ColCount := 8; /Bezeichnung der Spalten
      RowCount := 1;
      Cells [0,0] := 'PosNr';
      Cells [1,0] := 'Art-Nr';
      Cells [2,0] := 'Bezeichnung';
      ...
      Cells [7,0] := 'Gesamtpreis';
  end;
Wie kommt bitte die Titelleiste mit den Bezeichnungen
ins StringGrid? Ebenso kann ich dem StringGrid keine
Artikeldaten hinzufügen. Die neuen Zeilen bleiben alle leer!

Gute Nacht!
  Mit Zitat antworten Zitat
marabu

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

Re: In StringGrid-Zeilen mit einem Balken navigieren

  Alt 26. Sep 2006, 18:51
Hallo Lombi,

in Beitrag #4 hast du angegeben, dass du die Eigenschaft FixedRows auf null gesetzt hast. Diese Eigenschaft muss auf eins gesetzt werden, damit eine Titelzeile sichtbar ist. Eine Nebenbedingung ist, dass RowCount größer als FixedRows sein muss, sonst funktioniert das nicht. Was das Hinzufügen von Datenzeilen angeht musst du mal deinen aktuellen nicht funktionierenden Code zeigen.

Grüße vom marabu
  Mit Zitat antworten Zitat
LOMBI
(Gast)

n/a Beiträge
 
#14

Re: In StringGrid-Zeilen mit einem Balken navigieren

  Alt 27. Sep 2006, 10:38
Hallo marabu,

bitte schau Dir mal die Demo an. Mit OnDrawCell werden meine Spalten-
bezeichnungen nicht angezeigt.

Gruß
Lombi

Geändert von LOMBI (26. Aug 2010 um 16:03 Uhr)
  Mit Zitat antworten Zitat
marabu

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

Re: In StringGrid-Zeilen mit einem Balken navigieren

  Alt 27. Sep 2006, 19:30
Hallo Lombi,

du schreibst ja auch gar keinen Text raus. Hinter FillRect() gehört noch diese Zeile:

 Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, Cells[ACol, ARow]); Durch FillRect() hast du die bereits ausgegebenen Texte wieder überpinselt. Deshalb nochmal mit TextRect() oder TextOut() ausgeben.

Grüße vom marabu
  Mit Zitat antworten Zitat
LOMBI
(Gast)

n/a Beiträge
 
#16

Re: In StringGrid-Zeilen mit einem Balken navigieren

  Alt 28. Sep 2006, 16:05
Hallo marabu!

zwei Kleinigkeiten fehlen noch in meinem StringGrid:

1.) RowCount := 2; FixedRows := 1; für die Titelzeile
Beim Ausführen des Prog ist die Titelzeile und schon eine weitere
Zeile vorhanden (RowCount:= 2), d.h. die Eingabe der ersten Artikel-
position (über Edits) beginnt nicht unmittelbar unter der Titelzeile.

2.) Wie bitte bekomme ich FixedColor := clInfoBk; in die Titelzeile?

Viele Grüße
Lombi
  Mit Zitat antworten Zitat
marabu

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

Re: In StringGrid-Zeilen mit einem Balken navigieren

  Alt 28. Sep 2006, 20:45
Hallo Lombi,

dein zweites Problem ist am einfachsten zu lösen:

Delphi-Quellcode:
procedure TDemoForm.StringGridDrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
  with Sender as TStringGrid do
  begin
    if (ARow < FixedRows) or (ACol < FixedCols) then
      Canvas.Brush.Color := clInfoBk else
      // ...
  end;
end;
Bei deinem ersten Problem hilft nur ein eigenes book keeping. Du musst um die Optik zu erhalten einen eigenen RowCount pflegen und den RowCount des Grid nie unter 2 fallen lassen. Beim Löschen der letzten Zeile musst du dann die Cells von Row[1] alle leeren und beim Hinzufügen der ersten Zeile schreibst du deine Werte einfach in die bereits existierende Row[1].

Gute Nacht

marabu
  Mit Zitat antworten Zitat
LOMBI
(Gast)

n/a Beiträge
 
#18

Re: In StringGrid-Zeilen mit einem Balken navigieren

  Alt 5. Okt 2006, 16:09
Verzweifelt suche ich noch nach einer Lösung für das eigene book keeping.

Die Procedure löscht die 1.Zeile im StringGrid, nimmt aber auch die Titel-
zeile weg.

Delphi-Quellcode:
procedure DeleteFirstRow(const: Grid : TStringGrid; RowNumber : Integer);
var
  i: Integer;
begin
  for i := RowNumber to Grid.RowCount -2 do
  Grid.Rows[i].Assign(Grid.Rows [i -1]);
  Grid.Rows [Grid.RowCount -1].Clear;
  Grid.RowCount := Grid.RowCount-1;
end;

procedure TFRechn.BtnNeuClick(Sender: TObject);
...
DeleteFirstRow(StringGridRedat, 1);
...
Gruß
Lombi
  Mit Zitat antworten Zitat
marabu

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

Re: In StringGrid-Zeilen mit einem Balken navigieren

  Alt 5. Okt 2006, 18:27
Hallo Lombi,

nicht verzweifeln. Ich habe dir eine Demo angehängt, die dir mit möglichst wenig Code das Prinzip zeigt. Hoffentlich kannst du sie unter D3 übersetzen.

Grüße vom marabu
Angehängte Dateien
Dateityp: zip sg-demo_841.zip (2,2 KB, 8x aufgerufen)
  Mit Zitat antworten Zitat
LOMBI
(Gast)

n/a Beiträge
 
#20

Re: In StringGrid-Zeilen mit einem Balken navigieren

  Alt 25. Okt 2006, 18:19
@marabu

Herzlichen Dank für Deine Demo.

Delphi-Quellcode:
procedure TFormKundenListe.BtnKundeNeuClick(Sender: TObject);
var
  s: TStrings;
  iCol: Integer;
begin
  with FormKunden, QueryKunden, GridKunden do
    begin
      FormKunden.ShowModal;
      Append;
      FieldByName('Name1').AsString := EditName1.Text;
      ...
      if LineCount > 0 then
        begin
          iCol := Col;
          InsertRow(GridKunden, icol);
          Row := Pred(Row);
        end;
          ***********************************************
          for iCol := FixedCols to Pred(ColCount) do
          Cells[iCol, Row] := IntToStr(Random(90) + 10);
          SetFocus;
         ************************************************
       end;
         LineCount := LineCount + 1;
       end;
Durch was muß ich bitte die markierte Stelle im Code ersetzen, um meine Kundendaten ins Grid zu bekommen?

Beste Grüße
Lombi
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 23:39 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