Einzelnen Beitrag anzeigen

Sievo

Registriert seit: 24. Sep 2010
Ort: 48480 Spelle
21 Beiträge
 
Turbo Delphi für Win32
 
#1

Verknüpfung StringGrid

  Alt 27. Sep 2010, 13:29
Delphi-Version: 5
Hallo alle zusammen!

Ich steht wiedermal vor einem Problem!

Ich habe folgenden Quelltext:

Delphi-Quellcode:
function TForm1.GetStartCell(vehiclenum: integer; startdate: TDate): TPoint;
var ActCol, ActRow: integer;
begin
  result := Point(-1, -1);
  for ActCol := 1 to Auftragseingabe.ColCount - 1 do
  begin
    if Auftragseingabe.Rows[0][ActCol] = DateToStr(startdate)
    then
    begin
      result.X := ActCol;
      for ActRow := 1 to Auftragseingabe.RowCount - 1 do
      begin
        if Auftragseingabe.Cols[0][ActRow] = 'LKW ' + IntToStr(vehiclenum)
        then
        begin
          result.Y := ActRow;
          break;
        end;
      end;
      break;
    end;
  end;
end;




procedure TForm1.Button1Click(Sender: TObject);

 var select: TGridRect;
    SelStart: TPoint;
begin
  SelStart := GetStartCell(StrToIntDef(Fahrzeugnummer.Text, -1),
                                       StrToDate(Startdatum.Text));
  if (SelStart.X > -1) and (SelStart.Y > -1)
  then
  begin
   
    select.Left := SelStart.X + StrToIntDef(Auftragslaenge.Text, 0) - 1;
    select.Right := SelStart.X;
    select.Top := SelStart.Y;
    select.Bottom := SelStart.Y;
    Auftragseingabe.Selection := select;
  end;
end;
Das Funktioniert auch also er Selektiert die gesuchten Zeilen.

Mein Problem ist ich möchte das er in diese Zeilen aus dem Editfeld "Kundennummer" den Eintrag schreibt.
Also Im sinne von 'KundenNr. + Kundennummer.text'

Dann hab ich noch einen 2 Quellcode.

Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  with TStringGrid(Sender).Canvas do begin
       if (ACol=1) and (ARow=1) then begin
          Brush.Color:= clRed;
          FillRect(Rect);
       end;
  end;
end;
Er makiert aber halt nur wie oben die Zelle 1 Spalte 1 Reihe!
Ich möchte aber gerne das er die aus dem Quellcode der Selektierung ausgewählten felder Rot färbt und halt die Kundennummer rein schreibt.

Wenn ich das jetzt aber versuche auf die selektierten Felder zu bringen dann färbt er auch alle die Felder ein die ich mit der Maus anklicke und das soll er nicht!
Also hab ich mir gedacht diesen Brush befehl auf die ausgefüllten Felder mit dem Eintrag
"KundenNr + Kundennummer.text" an zu wenden. Aber wie mach ich dieses?

Vorstellen könnte ich mir das so:

Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  with TStringGrid(Sender).Canvas do begin
       if (stringgrid1.cell := 'Kundennr + "Kundennummer.text"') and
       (stringgrid1.row := 'Kundennr + "Kundennummer.text"')
  then begin
          Brush.Color:= clRed;
          FillRect(Rect);
       end;
  end;
end;
Ich hoffe Ihr könnt mir helfen!

Gruß Sievo
  Mit Zitat antworten Zitat