![]() |
Frage zu TStringGrid
Hi,
ich habe folgende frage zu einer celle in einem StringGrid. Wie kann ich z.b. in einer bestimmen zelle ein Dynamisch erstelltes objekt (z.b. eine ProgressBar oder Button oder sonstwas) darstellen. Im moment geht es mir um eine ProgressBar. Aber ich möchte die frage allgemein halten, wer weiss was mir noch einfällt :) Ich habe ja mit folgenden code zugriff beim zeichen. In diesem fall um Text zu zentrieren. Kann man an dieser stelle dem irgendwie "sagen" er soll ein anderes objekt darstellen? Vielen dank im voraus
Delphi-Quellcode:
procedure TForm1.DrawTradedCells(Sender: TObject; ACol, ARow: Integer;Rect: TRect; State: TGridDrawState);
var s: string; begin if ( ARow>0 ) then begin if ( (ACol=1) OR (ACol=3) OR (ACol=4)) then begin s := Table.Cells[ACol, ARow]; // Text der Zelle holen Table.Canvas.FillRect(Rect); // Zelle leer überzeichnen DrawText(Table.Canvas.Handle, PChar(s), Length(s), Rect, DT_SINGLELINE or DT_Center or DT_VCENTER); // Text zentriert zeichnen end; end; end; {TForm1.DrawTradedCells(Sender: TObject; ACol, ARow: Integer;Rect: TRect; State: TGridDrawState)} |
AW: Frage zu TStringGrid
|
AW: Frage zu TStringGrid
Danke, klappt. So kann man ihm ja (so wie ich das sehe) jedes objekt "unterjubeln". Genau sowas hab ich gesucht.
|
AW: Frage zu TStringGrid
Hmm,
ne kleine hilfe bräuchte ich aber noch. Und zwar hatte ich das eben mit der "normalen" ProgressBar probiert. Das klappte. Nun habe ich mal andere probiert (z.b. RzProgressBar, JvgProgress, JvStarfield usw.) und die liegen komigerweise HINTER dem Grid. Mache ich da was falsch? Danke im Voraus |
AW: Frage zu TStringGrid
Kannst Du sie mit BringToFront nach vorne holen?
|
AW: Frage zu TStringGrid
Nein, leider nicht. Ich habe grade gemerkt das wenn ich diese sachen im Editor aufs grid lege, liegen sie auch dahinten. Auch wenn ich unter "Elements/nach vorne setzen" mache bleibt es dahinter.
Ich es habe auch andersrum probiert. Das Grid nach hinten legen. Keine wirkung. |
AW: Frage zu TStringGrid
Hmmm... man könnte noch versuchen, das Grid als Parent zu deklarieren, vielleicht bringt das etwas.
|
AW: Frage zu TStringGrid
Schon versucht. Das war meine erste idee. Sachen die mir einfallen probier ich immer erst aus, bevor ich poste. Die dinger bleiben dahinter :gruebel:
|
AW: Frage zu TStringGrid
Merkwürdig :gruebel:
|
AW: Frage zu TStringGrid
Jo, ich peil das erst recht nicht warum das so ist. Aber man kann es auch im editor sehen. Ich habe mein Grid und will dann z.b. JvgProgress drauflegen. Geht nicht. Es liegt dahinter. Mit "normalen" sachen geht es. z.b. Buttons, Radio, Groupboxen usw.
Ich hab grad mal ein Panel draufgelegt, und dadrauf ein JvgProgress, nun scheint es oben zu liegen. Aber das muss ich grad "richtig" testen, ob es wirklich oben ist. Das wär mir ja egal wenn ich erst ein Panel und dann die sachen auf das panel legen muss. EDIT: Rückmeldung. So klappt es. Also die sachen die man eigentlich nicht sieht einfach auf ein Panel legen, und dann das Panel an die Position.... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz