Durch CustomControl werden andere Controls nicht gezeichnet

Rund um die LCL und andere Komponenten
EugenE
Beiträge: 440
Registriert: So 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
CPU-Target: 64Bit
Kontaktdaten:

Durch CustomControl werden andere Controls nicht gezeichnet

Beitrag von EugenE »

Hey Leute,

ich habe ja die Komponente TGradButton erstellt, diese funktioniert auch soweit nur wenn man diese Komponente auf ein TForm legt und danach einen TButton irgendwo daneben, das Projekt speichert und wieder aufmacht wird das TButton nicht gezeichnet, erst beim MouseEnter wird diese gezeichnet so langsam habe ich keine Ahnung mehr woran es liegen könnte -.-

Warum mache ich diesen Thread auf? Weil ich glaube damit wird dieser Fehler mehr Public als wenn der Fehler nur im TGradButton-Thread besprochen wird, ab jetzt lieber nur in diesem Thread :)

Hier nen Screenshot (von alexander) des Fehlers:
[img]http://www.lazarusforum.de/files/thumbs/t_bildschirmfoto_120.png[/img]

Habe mir zB die VisualStringTree, oder TPanel angeschaut da diese ja auch von TCustomControl abgeleitet sind aber keine Unterschiede gefunden -.- und bei denen funktioniert es ja auch :'(

Weiß jemand woran es liegen könnte? oder muss man noch welche Propertys einstellen etc?^^

Ist das ein Fehler von mir oder ein Bug? von dem TCustomControl?

Hoffe der Fehler wird bald gefunden sonst macht es keinen Spaß mehr Komponente zu Proggen :-D

MfG,
EugenE

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Ich hab das im Designer schon ab und zu mal gesehn, vieleicht hat das auch was mit dem Speicherverbrauch o.ä. zu tun ?!
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

EugenE
Beiträge: 440
Registriert: So 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von EugenE »

Das sagt mir garnix ?!

Vom TGradButton-Thread:
Vieleicht hat das ja auch was mit deinen CreateParams zu tun ?

Und was davon? habe es auch mal ohne Probiert brachte nix :(

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Hast du bei dir die Paint Methode überschrieben ? und steht sie auch unter der richtigen Sichtbarkeitstufe(ich meine das war public)?

Was rufst du denn bei OnMouseDown alles auf ?
MFG
Michael Springwald

EugenE
Beiträge: 440
Registriert: So 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von EugenE »

public
...
procedure Paint; override;

procedure TGradButton.MouseDown(Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
FState:=bsDown;
Paint;

inherited;
end;

aber nurmal so was hat den Paint unter public und OnMouseDown mit dem NICHT zeichnen anderer Komponenten im Designer Mode zu tun?^^

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Naja im Grunde nicht viel. du hast aber geschrieben das es beim Anklicken gezeichnet wird.
Darum mein verdacht das die Paint Methode Falsch eingebaut ist. Aber sie sieht richtig aus.

Ich kenne das gleiche Problem mit Standard Komponenten die ich z.b. auf eine PageControll lege oder so.
Muss wohl doch was Interner Fehler von Lazarus sein. Evlt. ist es ja in der 1.0 Version von Lazarus ja behoben *G*.

Ich habe auch eine eigene Komponente erstellt und dort tritt dein Fehler nicht auf.
Nagut sie stellt auch nur ein Viereck dar. Weil ich eine erweitere Paintbox brauchte.
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

rufst du das inherited der Paint auf ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

EugenE
Beiträge: 440
Registriert: So 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von EugenE »

jop nachm zeichnen des buttons aber das inherited Paint hat ja nur den OnPaint aufruf mehr nich

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Ja aber das ist wichtig. Das muss am Anfang deiner Paint Methode stehen. gleich als allererstes.

Die leitest ja von TCunstomControll ab. D.H. es muss die gererbete Methode Paint zuerst aufgerufen werden.
Es sei den das ist für dein Zweck nicht angebracht.
MFG
Michael Springwald

EugenE
Beiträge: 440
Registriert: So 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von EugenE »

Procedure TCustomControl.Paint;
begin
if Assigned(FOnPaint) then FOnPaint(Self);
end;

ich habe es am ende da wenn ich es am anfang hinpacke werden die Komponenten die auf dem Button liegen zb andere buttons ( bin noch am experimentieren ) erst gezeichnet und dann zeichnet sich der button drüber

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Das Währe doch auch richtig oder nicht ?
Andere Komponenten werden zuerst gezeichnet, dann wird deine gezeichnet.
MFG
Michael Springwald

EugenE
Beiträge: 440
Registriert: So 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von EugenE »

ja die anderen die auch auf der TGradButton liegen werden gezeichnet, aber was hat das damit zu tun das die Buttons , die nicht auf dem Tgradbutton liegen, NICHT gezeichnet werden?

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Du meinst die Buttons werden nicht gezeichnet wenn dein Button drüber liegt ?

Es könnte mit diesem EVENT zusammen hängen. Was ja zuerst ausgelöst werden sollte. Bevor du deine eigene Zeichen Funktion ausführst. Was anders kann ich mir beim besten willen nicht mehr vorstellen. und was macht das für einen sinn mehrer Buttons übereinander zu legen ?
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Wiso denn mehrer Butons ? Wie wärs z.b. mit nem Button auf nem Panel ? Wie wärs mit ein mal nachdenken vor dem Posten ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

EugenE
Beiträge: 440
Registriert: So 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von EugenE »

Mitlerweile habe ich alles versucht
neue Komponente erstellt, bei dieser passiert das nicht, ok , kopiere ich das meiste auf diese neue komponente, funktioniert, lazarus an/aus funktioniert immernoch, packe ich einmal das alte TGradButton drauf, danach normalen Button drauf, Laz An/Aus, funktioniert nicht mehr

alte TGradButton weg, die neue Komponente drauf, buttons drauf, Laz An/Aus, Buttons werden nicht gezeichnet? O.o???

So langsam habe ich kein bock mehr für diesen scheiß fehler, saß daran jetzt schon min. 48 Stunden dranne >.<"

Gibt anscheinend keine lösung für diesen !§§"$%§$% Fehler!!

Dann packt man halt meinen Button am schluss drauf und feddich -.-, denn ich kann nix für diesen Bug

Antworten