Autor Beitrag
jolomino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 58



BeitragVerfasst: Di 08.02.05 00:26 
Hallo, ich versuche verzweifelt eine Gauge in einem StringGrid zu setzen, in einem ListView habe ich es auch geschaft und dachte ich könnte es halt auf ein StringGrid umsetzen.

Listiew Code:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
procedure TForm1.Button1Click(Sender: TObject);
var
  r: TRect;
  pb: TProgressBar;
  mgauge : TGauge;
begin
  Listview1.Columns.Add.Width := 100;
  Listview1.Columns.Add.Width := 200;
  Listview1.ViewStyle         := vsReport;
  Listview1.Items.Add.Caption := 'Text';

  r := Listview1.Items[0].DisplayRect(drBounds);
  r.Left  := r.Left + Listview1.columns[0].Width;
  r.Right := r.Left + Listview1.columns[1].Width;

mGauge := TGauge.Create(self);
mGauge.Parent := listview1;
mgauge.BoundsRect := r;
mGauge.Progress := 0;
Listview1.Items[0].Data := mGauge;

end;


Und nun der Versuch mit nem StringGrid:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
procedure TForm6.Button1Click(Sender: TObject);
var mGauge: TGauge;
begin
mGauge := TGauge.Create(Stringgrid1);
mGauge.Parent := stringgrid1;
mGauge.Progress := 0;
stringgrid1.Objects[2,2] := mGauge;
end;

procedure TForm6.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
  var tmpGauge : TGauge;
begin
if (Acol = 2) AND (Arow = 2) then
begin
  if stringgrid1.Objects[2,2] <> nil then
  begin
   tmpGauge := (stringgrid1.Objects[2,2] as TGauge);
   with tmpGauge do
   begin
    Left := Rect.Left;
    Top := Rect.Top;
    Width := Rect.Right - Rect.Left;
    Height := Rect.Bottom - Rect.Top;
   end;
  end;
end;
end;


Das Problem beim StringGrid ist halt, dass die Gauge nicht in der Zelle gesetzt wird, sondern am oberen linken Rand des Grids und die Gauge verdeckt mehrere Zellen.
Hat einer von Euch eine Lösung?

Gruss Jolomino
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 08.02.05 09:57 
Ja hast du es denn mal mit nem Haltepunkt in Zeile 21 versucht? Ich meine, dann würdest du ja erstmal sehen, ob in Rect das Richtige steht.

Steht da das richtige, dann versuch mal in Zeile 19 das ohne with ... do, denn obwohl das eigentlich so richtig ist, könnte es ja sein, dass Delphi das fälschlicherweise aufs Formular bezieht. (Ich weiß, eigentlich sollte das hier nicht passieren, aber man weiß ja nie...)
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 08.02.05 10:03 
Moin!

Vorschlag: Du zeichnest den Balken im OnDraw des StringGrid einfach selbst, ohne die Kompo zu nehmen, soo schwer ist es nun auch wieder nicht, eine Gauge zu zeichnen. Wenn du default-drawing machst, brauchst du nur auf die Zellen zu reagieren, die eine Gauge enthalten sollen, die restlichen sollten dann einfach normal gezeigt werden. :wink:

cu
Narses
jolomino Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 58



BeitragVerfasst: Di 08.02.05 11:33 
danke leute, hab den fehler gefunden. das StringGrid1DrawCell ergeignis war nicht mehr da, keine ahnung warum.
aber jetzt funktioniert es bestens :D

gruss jolomino
jolomino Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 58



BeitragVerfasst: Di 08.02.05 20:15 
eine frage habe ich jetzt aber doch noch :D
wenn ich mein stringgrid lade, möchte ich das in jeder zeile die gauge in der spalte x implementiert wird. wie stelle ich das an? diese gaugen sollen natürlich nachher auch über idhttponwork ansprechbar sein :?:

gruss jolomino
jolomino Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 58



BeitragVerfasst: Mo 14.02.05 18:46 
hallo, auch wenn dieses als schiebethread gewertet wird, brauche ich zu den letzten thread echt eure hilfe...bin voll aufgeschmissen :?
also, kann mir echt keiner helfen?

gruss jolomino