Einzelnen Beitrag anzeigen

Robert_G
(Gast)

n/a Beiträge
 
#6

Re: StringGrid onColSizeChange?=! schön wärs :)

  Alt 1. Mai 2004, 22:52
Den Vergleich mit der DefaultWdith halte ich nicht für sooo gut. Es würde auch zünden, wenn sich die Breite nicht nochmal geändet hat.

Ich glaube man kommt hier leider nicht um eine Private Variable herum.
Du könntest im PRIVATE-Teil des Forms sowas deklarieren:
  fPrevColWidths :array of integer; Dann noch im OnCreate des Forms:
Delphi-Quellcode:
var
  i: Integer;
begin
  with DeinGrid do
  begin
    SetLength(fPrevColWidths, ColCount);
    for i := 0 to pred(ColCount) do
      fPrevColWidths[i] := ColWidths[i];
  end;
end;
Im OnMouseUp Des StringGrids:
Delphi-Quellcode:
var
  lCol, lRow: Integer;
begin
  with Sender as TStringGrid do
  begin
    // Über welcher Zelle ist die Maus?
    MouseToCell(X, Y, lCol, lRow);

    // Nur für die Titelzeile...
    if lRow < FixedRows then
      //...und nur wenn die Spaltenbreite von der vorherigen abweicht
      if ColWidths[lCol] <> fPrevColWidths[lCol] then
      begin
        try
          // Hier kannst du darauf reagieren...
          // ...

          //das muss auf jeden fall ausgeführt werden
          //(sonst weißt du beim nächsten Mal nicht, ob sich die Breite wieder geändert hat)
        finally
          fPrevColWidths[lCol] := ColWidths[lCol];
        end;
      end;
  end;
end;
  Mit Zitat antworten Zitat