Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi StringGrid DragMode Color (https://www.delphipraxis.net/183666-stringgrid-dragmode-color.html)

Sir Rufo 28. Jan 2015 09:21

AW: StringGrid DragMode Color
 
Zitat:

Zitat von PaddyVII (Beitrag 1288027)
Ich meinte das mit Recall..das versteh ich vom prinzip her schoon, vom code her nicht ganz...seii n bisschen nachsichtig mit mir, bin noch nicht soo lang am Programmieren mit delphi, bin erst im ersten ausbilungsjahr...:oops:

Verstehst du wie so eine Edit-Komponente oder StringGrid-Komponente intern funktioniert?
Wenn Nein, warum verwendest du diese dann?

Du verwendest diese, weil du das Gefühl hast, die macht das was du möchtest, egal wie sie dies macht. Du verlässt dich darauf, dass die zugesicherten Eigenschaften auch gebracht werden.

Genau so arbeitet man mit dem
Delphi-Quellcode:
TBrushRecall
oder mit der der (in der Handhabung) vereinfachten Form über
Delphi-Quellcode:
TRecallFactory
.

Die Unit in die
Delphi-Quellcode:
uses
aufnehmen und in jeder Methode, wo du an dem Brush rumwurschtelst rufst du als Erstes ein (passend zu deinem Code)
Delphi-Quellcode:
TRecallFactory.Construct( stringgrid.Canvas.Brush );
auf. Nun kannst du dich darauf verlassen, dass dieser Brush beim Verlassen der Methode wieder genau so ist, wie der beim Betreten der Methode war. Du räumst also hinter dir auf und verlässt den Ort so, wie du ihn vorgefunden hast.

PaddyVII 28. Jan 2015 09:30

AW: StringGrid DragMode Color
 
Okay, danke das klingt schon einleuchtender....d.h mit dem TBrushRecall stellt es (nachdem ich die grid verlassen habe) den Ursprungszustand der Grid wieder her, als ich sie betreten habe...Kann ich das soo verstehn??

Jumpy 28. Jan 2015 09:54

AW: StringGrid DragMode Color
 
Du verlässt ja nicht das Grid, sondern es geht nur um die OnPaint/OnDraw oder wie auch immer das heißt Methode.

@Sir Rufo: Ich hab das immer wie in meinem ersten Post geschrieben gemacht, weil ich das so öfters in Beispielen auch hier in der DP gesehen habe und das TBrushRecall nicht kannte. Aber jetzt wo ich das kenne werde ich das sicher öfters nutzen, denn wenn man mehr als nur die Farbe ändern will muss man sich ja auch mehr merken. Wunderbarerweise habe ich das auch in meinem D6 gefunden.
Nur diese TRecallFactory hab ich nicht in D6 gesehen. Ab welche Delphiversion gibt es denn die bereits fertig? Oder muss man die generell, wie in deinem Beispiel selber bauen?

Sir Rufo 28. Jan 2015 10:17

AW: StringGrid DragMode Color
 
Zitat:

Zitat von PaddyVII (Beitrag 1288032)
Okay, danke das klingt schon einleuchtender....d.h mit dem TBrushRecall stellt es (nachdem ich die grid verlassen habe) den Ursprungszustand der Grid wieder her, als ich sie betreten habe...Kann ich das soo verstehn??

Da wir mit dem Recall ja nicht das Grid ansprechen, sondern vom Grid, den Canvas und davon den Brush, wird genau dieser (Brush) wieder auf den Zustand gebracht, wie er beim Recall Aufruf war.

@Jumpy

Die RecallFactory habe ich selber gebaut um dieses Backup/Restore mit genau einer Zeile hinzubekommen. Und wie du siehst benutze ich dafür die Generics, die es mWn bei Delphi 6 noch nicht gibt ;)

Ergo, wird das so nix, da musst du dir etwas ähnliches bauen, was aber kein Problem sein sollte.

PaddyVII 28. Jan 2015 10:46

AW: StringGrid DragMode Color
 
Was ich grade bemerkt hab...

es geht auch

Delphi-Quellcode:
stringGrid.repaint
damit ruft es die Zeichenroutine automatisch wieder auf

Jumpy 28. Jan 2015 11:41

AW: StringGrid DragMode Color
 
Das bekämpft mMn das Symptom aber nicht die Ursache. Oder ist es umgekehrt?

PaddyVII 28. Jan 2015 12:05

AW: StringGrid DragMode Color
 
najaa, es ruft immerhin die draw Methode auf von demher, denkich, wenn man da den richtigen code stehn hat, dann ist das schon realativ nützlich...


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:54 Uhr.
Seite 2 von 2     12   

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