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