AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Trackergeeignete Tabellenkomponente

Ein Thema von Magic94 · begonnen am 23. Apr 2012 · letzter Beitrag vom 28. Apr 2012
Antwort Antwort
Seite 2 von 2     12   
Magic94

Registriert seit: 21. Nov 2010
31 Beiträge
 
Delphi 7 Personal
 
#11

AW: Trackergeeignete Tabellenkomponente

  Alt 24. Apr 2012, 16:16
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)
Angehängte Dateien
Dateityp: zip Project1.zip (263,0 KB, 6x aufgerufen)
  Mit Zitat antworten Zitat
Magic94

Registriert seit: 21. Nov 2010
31 Beiträge
 
Delphi 7 Personal
 
#12

AW: Trackergeeignete Tabellenkomponente

  Alt 24. Apr 2012, 23:22
Habe ein weiteres Problem bei der DrawCell Methode. Der Text wird unsichtbar beim "markieren" / blau drübermalen.
http://tenac.webhop.net/images/stringgrids.jpg
Miniaturansicht angehängter Grafiken
stringgrids.jpg  
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#13

AW: Trackergeeignete Tabellenkomponente

  Alt 25. Apr 2012, 00:13
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.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#14

AW: Trackergeeignete Tabellenkomponente

  Alt 25. Apr 2012, 01:09
*) Manche Grids unterlassen den Standard-Handler ganz, ob das TStringGrid das auch tut weiss ich grad nicht.
es gibt 2-3 Vorgehensweisen

- 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)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Magic94

Registriert seit: 21. Nov 2010
31 Beiträge
 
Delphi 7 Personal
 
#15

AW: Trackergeeignete Tabellenkomponente

  Alt 28. Apr 2012, 01:34
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.
Das habe ich auch verstanden das es übermalt wird^^, mich interessiert viel eher WIE ich das neu zeichne, da ich sowas noch nie gemacht habe.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#16

AW: Trackergeeignete Tabellenkomponente

  Alt 28. Apr 2012, 02:49
Delphi-Referenz durchsuchenTCanvas.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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Magic94

Registriert seit: 21. Nov 2010
31 Beiträge
 
Delphi 7 Personal
 
#17

AW: Trackergeeignete Tabellenkomponente

  Alt 28. Apr 2012, 04:17
Delphi-Referenz durchsuchenTCanvas.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.
nee das ist total ekelig, das muss auch einfacher gehen. Da ist man ja ewig nur die Koordinaten am ausrechnen. Ausserdem bekomm ich schon bei einer Zahl die ich aktualisiere ein elendes Flackerkonzert. Es müssen aber 32 gleichzeitig (bzw in direkter Abfolge) neu gezeichnet werden

Geändert von Magic94 (28. Apr 2012 um 04:20 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#18

AW: Trackergeeignete Tabellenkomponente

  Alt 28. Apr 2012, 13:11
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 Delphi-Referenz durchsuchenTCanvas.TextRect den Text dort reinzuschreiben.

Falls das doppelte Zeichnen stört, dann kann man es mit Delphi-Referenz durchsuchenDoubleBuffered versuchen
oder man schaltet das Zeichnen vom Delphi ab (Delphi-Referenz durchsuchenTCustomGrid.TDefaultDrawing=False), aber dabei muß man dann natürlich alle Zellen selber zeichnen.


Und z.B. über Hier im Forum suchenStringGrid1DrawCell TextOut lassen sich einige Beispiele finden.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (28. Apr 2012 um 13:14 Uhr)
  Mit Zitat antworten Zitat
Magic94

Registriert seit: 21. Nov 2010
31 Beiträge
 
Delphi 7 Personal
 
#19

AW: Trackergeeignete Tabellenkomponente

  Alt 28. Apr 2012, 13:45
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:
Pattern.Canvas.TextOut(Rect.Left+1,Rect.Top,Patter n.Cells[1,trackerpos]);
macht jetzt folgendes:
http://tenac.webhop.net/images/problem.jpg

Geändert von Magic94 (28. Apr 2012 um 13:57 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#20

AW: Trackergeeignete Tabellenkomponente

  Alt 28. Apr 2012, 13:50
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 Delphi-Referenz durchsuchenTWinControl.DoubleBuffered und nicht TForm.DoubleBuffered.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:43 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