AW: Trackergeeignete Tabellenkomponente
Liste der Anhänge anzeigen (Anzahl: 1)
hab jetzt schon was mit dem StringGrid gebastelt ;-)
sieht recht vernünftig aus find ich: (bisher tuts nur wirklich "Play".. der Rest ist noch mitten in der Mache und sollte nicht viel bringen ausser ein paar Fehler) |
AW: Trackergeeignete Tabellenkomponente
Liste der Anhänge anzeigen (Anzahl: 1)
Habe ein weiteres Problem bei der DrawCell Methode. Der Text wird unsichtbar beim "markieren" / blau drübermalen.
http://tenac.webhop.net/images/stringgrids.jpg |
AW: Trackergeeignete Tabellenkomponente
Du musst den Text selbst nochmals neu zeichnen nachdem dein FillRect()/Rect() unterwegs war, da das das natürlich übermalt hat. Die On*Draw*-Events treten i.A. nach* Zeichnen durch den Default-Handler (bzw. "Drawer") auf - d.h. du bist der letzte der malt bevor es auf den Bildschirm geht.
*) Manche Grids unterlassen den Standard-Handler ganz, ob das TStringGrid das auch tut weiss ich grad nicht. |
AW: Trackergeeignete Tabellenkomponente
Zitat:
- die Standardausgabe kommt vor dem OnDrawEvent und man würde alles übermalen - es gibt entweder die Standardausgabe oder das OnDrawEvent - die Standardausgabe kommt nach dem Event (und läßt sich teilweise/ganz abschalten) ... hier kann man z.B. die BrushColor oder PenColor ändern (da diese vor dem Event gesetzt wurden) und der Standardhandler würde dann mit den geänderten Farben arbeiten Der TCustomGrid/TDrawGrid/TStringGrid arbeitet so: 1: Font setzen (wenn DefaultDrawing=True) 2: Hintergrund zeichnen (wenn DefaultDrawing=True) 3: Text zeichnen (im TStringGrid und wenn DefaultDrawing=True) 4: OnDrawCell 5: FocusRect zeichnen (wenn DefaultDrawing=True) |
AW: Trackergeeignete Tabellenkomponente
Zitat:
|
AW: Trackergeeignete Tabellenkomponente
TCanvas.TextOut ?
Und vergiß nicht den State auszuwerten, denn darin siehst du, was du noch zeichnen mußt, wie z.B. die blaue Selection und Dergleichen. |
AW: Trackergeeignete Tabellenkomponente
Zitat:
|
AW: Trackergeeignete Tabellenkomponente
All zu viel ausrechnen muß man nicht, denn das übernimmt Delphi für einen.
Über den Parameter Rect bekommt man die Position der Zelle sehr praktisch geliefert. Und nein, TextOut, TextRect und Co. ist der korrekte Weg ... Delphi mach intern auch nichts Anderes, als mit TCanvas.TextRect den Text dort reinzuschreiben. Falls das doppelte Zeichnen stört, dann kann man es mit DoubleBuffered versuchen oder man schaltet das Zeichnen vom Delphi ab (TCustomGrid.TDefaultDrawing=False), aber dabei muß man dann natürlich alle Zellen selber zeichnen. Und z.B. über StringGrid1DrawCell TextOut lassen sich einige Beispiele finden. |
AW: Trackergeeignete Tabellenkomponente
danke danke danke :)
Das mit Doublebuffered hab ich schon probiert, da ich aber das XPMan in dem Programm verwende zeichnen sich ekelige ränder um Buttons, oder verschwinden einfach ganz. Das geht also schonmal nicht :( EDIT 1: DefaultDrawing auf False, Rect benutzt und schon klappt alles wie gewünscht :) EDIT 2: Naja nicht ganz. Zitat:
http://tenac.webhop.net/images/problem.jpg |
AW: Trackergeeignete Tabellenkomponente
DoubleBuffered hat halt einige Probleme, vorallem bei transparenten Komponenten.
Das Prinzip hinter DoubleBuffered ist ein OffScreenBitmap, in welches die Komponente gezeichnet und was dann auf einmal auf dem Bildschirm ausgegeben wird. Und da die Bitmaps standardmäßig erstmal einen schwarzen Hintergund haben, wird dann alles Transparentes natürlich auch schwart, da dieses Bitmap keine Transparenz kennt. Außerdem kann es bremsend wirken und bei RDP-Verbindungen ist sowas auch eher hinderlich. Man kann das DoubleBuffered aber auch nur für eine bestimmte Komponente aktivieren und nicht unbedingt gleich für die ganze Form. Es heißt ja eigentlich TWinControl.DoubleBuffered und nicht TForm.DoubleBuffered. :wink: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz