TGradButton gefällig?
-
- Lazarusforum e. V.
- Beiträge: 7180
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Ich habe den Button jetzt auch mal Installiert. Eigentlich sieht er nicht schlecht aus, aber wie gesagt auch bei mir ist dieser Grafik Fehler aber nur in den Modus:rtRight
Ich habe Linux, KDE 4.0 oder Hörer(da bin ich mir jetzt nicht so sicher)
Lazarus 9.0.25
Edit01:
Ich habe mir mal deinen Soruce-Code angeschaut. Also hier mal einige Hinweise von mir:
01 - Die Methode Paint von TGradButton
Da erstellt du jedes mal ein TBitmap, mach das nur einmal... das ist unnötige Resorucen Verschwendung
Darüber gibst du die Variable wieder frei, das musst du eigentlich auch nur einmal machen beim erstellen und beim löschen der Komponente
02 - bei meinen letzten Test hatte CopyRect einige Fehler unter Linux aufjedenfall ob das immer noch so ist weiß ich nicht. Nimm lieber hier die Methode Draw oder bitblt
Ich habe Linux, KDE 4.0 oder Hörer(da bin ich mir jetzt nicht so sicher)
Lazarus 9.0.25
Edit01:
Ich habe mir mal deinen Soruce-Code angeschaut. Also hier mal einige Hinweise von mir:
01 - Die Methode Paint von TGradButton
Da erstellt du jedes mal ein TBitmap, mach das nur einmal... das ist unnötige Resorucen Verschwendung
Darüber gibst du die Variable wieder frei, das musst du eigentlich auch nur einmal machen beim erstellen und beim löschen der Komponente
02 - bei meinen letzten Test hatte CopyRect einige Fehler unter Linux aufjedenfall ob das immer noch so ist weiß ich nicht. Nimm lieber hier die Methode Draw oder bitblt
MFG
Michael Springwald
Michael Springwald
-
- 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:
Die neuerstellung des TBitmap habe ich gemacht weil wenn das Bitmap nur im Create und Destroy habe UND dann die größe des TBitmaps verändere ( zB im Designer ) bleibt die damalige größe, kp ob es schon in den Bugs aufgelistet ist aber aufjedenfall ist es zurzeit noch nötig
Ich nutze kein CopyRect weil ich weiß nicht wie ich da transparent "kopieren" kann also kopiere ich pixel für pixel auf ein neues TBitmap und ich glaube da liegt auch der Fehler
Kann es sein das unter Linux ein neues TCanvas nicht mit einer Farbe gefüllt wird? das könnte diese schönen Farben im Text ( xD ) erzeugen
Edit1:
Anscheinend geht es jetzt auch ohne neuerstellung des TBitmaps wird im nächsten Release dann weggemacht
Ich nutze kein CopyRect weil ich weiß nicht wie ich da transparent "kopieren" kann also kopiere ich pixel für pixel auf ein neues TBitmap und ich glaube da liegt auch der Fehler
Kann es sein das unter Linux ein neues TCanvas nicht mit einer Farbe gefüllt wird? das könnte diese schönen Farben im Text ( xD ) erzeugen
Edit1:
Anscheinend geht es jetzt auch ohne neuerstellung des TBitmaps wird im nächsten Release dann weggemacht
-
- 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:
Hey Leute
habe versucht euer Problem mit einem Cache beseitigen das jeder Hintergrund, Glyph, und Text erst generiert wird und danach gezeichnet wird
- Hintergründe - funktioniert
- Texte - müsste funktionieren
- Glyphen - funktioniert nicht mehr, warscheinlich weil ich ImageList nutze
und
der IDE BUG ist wieder da -.-*
Ich habe kA wie ich die beiden Fehler beseitigen kann -.-, vllt ist auch meine Logik falsch, hoffe ihr könnt mir helfen
habe versucht euer Problem mit einem Cache beseitigen das jeder Hintergrund, Glyph, und Text erst generiert wird und danach gezeichnet wird
- Hintergründe - funktioniert
- Texte - müsste funktionieren
- Glyphen - funktioniert nicht mehr, warscheinlich weil ich ImageList nutze
und
der IDE BUG ist wieder da -.-*
Ich habe kA wie ich die beiden Fehler beseitigen kann -.-, vllt ist auch meine Logik falsch, hoffe ihr könnt mir helfen
- Dateianhänge
-
- gradbutton.rar
- (84.62 KiB) 89-mal heruntergeladen
-
- 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:
So neuer Versuch für die Linux-Bugs hoffe es funktioniert jetzt
- Dateianhänge
-
- gradbutton.rar
- (91.53 KiB) 86-mal heruntergeladen
-
- Lazarusforum e. V.
- Beiträge: 7180
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Die Geschwindigkeit ist gut, aber leider ist der Caption nicht mehr lesbar.
Im Anhang findest du ein Bild davon.
und haufenweise Hinweise in der Ausgabe hier sind mal einige:
das sind noch ein paar mehr *G*
Im Anhang findest du ein Bild davon.
und haufenweise Hinweise in der Ausgabe hier sind mal einige:
csDesigning=False
[HINT] TWinControl.CreateWnd creating Handle during loading CheckGroup1:TCheckGr
oup csDesigning=False
[HINT] TWinControl.CreateWnd creating Handle during loading CheckGroup2:TCheckGr
oup csDesigning=False
[HINT] TWinControl.CreateWnd creating Handle during loading RadioGroup1:TRadioGr
oup csDesigning=False
[HINT] TWinControl.CreateWnd creating Handle during loading RadioGroup2:TRadioGr
oup csDesigning=False
[HINT] TWinControl.CreateWnd creating Handle during loading RadioGroup3:TRadioGr
oup csDesigning=False
[HINT] TWinControl.CreateWnd creating Handle during loading RadioGroup4:TRadioGr
oup csDesigning=False
[HINT] TWinControl.CreateWnd creating Handle during loading LabeledEdit1:TLabele
dEdit csDesigning=False
[HINT] TWinControl.CreateWnd creating Handle during loading :TGradButton csDesig
ning=False
GetAdjustment 085BB3E8=LCLWinapiWidget [FPr] LCLObject=B7AC4BB0=:TGradButtonHandleAllocated>
[HINT] TWinControl.CreateWnd creating Handle during loading :TGradButton csDesig
ning=False
GetAdjustment 085C2118=LCLWinapiWidget [FPr] LCLObject=B7AC6340=:TGradButtonHandleAllocated>
[HINT] TWinControl.CreateWnd creating Handle during loading :TGradButton csDesig
ning=False
GetAdjustment 085C6F98=LCLWinapiWidget [FPr] LCLObject=B7AC78C0=:TGradButtonHandleAllocated>
[HINT] TWinControl.CreateWnd creating Handle during loading :TGradButton csDesig
ning=False
GetAdjustment 085C69F0=LCLWinapiWidget [FPr] LCLObject=B7AC8E40=:TGradButtonHandleAllocated>
[HINT] TWinControl.CreateWnd creating Handle during loading :TGradButton csDesig
ning=False
GetAdjustment 085D1A70=LCLWinapiWidget [FPr] LCLObject=B7ACA3C0=:TGradButtonHandleAllocated>
[HINT] TWinControl.CreateWnd creating Handle during loading :TGradButton csDesig
ning=False
GetAdjustment 085D7AB0=LCLWinapiWidget [FPr] LCLObject=B7ACBB10=:TGradButtonHandleAllocated>
[HINT] TWinControl.CreateWnd creating Handle during loading :TGradButton csDesig
ning=False
GetAdjustment 085DC168=LCLWinapiWidget [FPr] LCLObject=B7ACD090=:TGradButtonHandleAllocated>
[HINT] TWinControl.CreateWnd creating Handle during loading :TGradButton csDesig
ning=False
GetAdjustment 085E0820=LCLWinapiWidget [FPr] LCLObject=B7ACE610=:TGradButtonHandleAllocated>
das sind noch ein paar mehr *G*
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 7180
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Ich habe eine Lösung für das Problem gefunden:
So hat es bei mir aufjedenfall geklappt !! Der Button ist jetzt schön schnell und Funktioniert auch soweit. Ich werde ihn mal weiter testen !
Edit01:
habe ich erstmal ein Glyph ausgewählt kann ich es auch nicht mehr ändern.
Code: Alles auswählen
procedure TRotatedText.SetText(Value: String);
var
TextSize : TSize;
begin
if FText <> Value then
begin
FText:=Value;
TextSize := FBitmap.Canvas.TextExtent(FText);
FBitmap.Width:=TextSize.cx;
FBitmap.Height:=TextSize.cy;
// Hierdran hat es gelegen
FBitmap.Canvas.FillRect(0,0,FBitmap.Width,FBitmap.Height);
FBitmap.Canvas.TextOut(0,0,FText);
Inherited LoadBitmap(FBitmap);
end;
end;
So hat es bei mir aufjedenfall geklappt !! Der Button ist jetzt schön schnell und Funktioniert auch soweit. Ich werde ihn mal weiter testen !
Edit01:
Code: Alles auswählen
und bei TRotatedGlyph auch nochmal:
procedure TRotatedGlyph.Update;
var
TempBitmap : TBitmap;
begin
TempBitmap := TBitmap.Create;
TempBitmap.Width:=FNormalGlyph.Glyph.Width;
TempBitmap.Height:=FNormalGlyph.Glyph.Height;
// unter Linux ist das hier ganz wichtig.
TempBitmap.Canvas.FillRect(0,0,TempBitmap.Width,TempBitmap.Height);
FNormalGlyph.Draw(TempBitmap.Canvas,Rect(0,0,TempBitmap.Width,TempBitmap.Height),
Point(0,0), FButtonState, false, 0);
LoadBitmap(TempBitmap);
TempBitmap.Free;
end;
habe ich erstmal ein Glyph ausgewählt kann ich es auch nicht mehr ändern.
MFG
Michael Springwald
Michael Springwald
-
- 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:
Die aktuelle Version von TGradButton kann jetzt auch per von dem CCR-SVN geladen werden.
Viel Spaß damit
Code: Alles auswählen
svn co https://lazarus-ccr.svn.sourceforge.net ... dcontrols/ gradcontrols
Viel Spaß damit
- Maik81SE
- Beiträge: 308
- Registriert: Fr 30. Sep 2011, 14:07
- OS, Lazarus, FPC: Debian 12 (L 3.0.0.3 FPC 3.2.2); Windows 10 (L 3.99.0.0 FPC 3.2.0)
- CPU-Target: x86-64; arm; avr
- Wohnort: Lübeck
- Kontaktdaten:
Re: TGradButton gefällig?
wollte ihn mir auch gerade mal anschauen, da ich einige AnalogButton benödige und dies als Vorlage nutzen wollte, bzw zu schauen, wie du einige Aspekte gelöst hast, aber der Link scheint wohl eine Leiche zu sein.
Code: Alles auswählen
label.caption:= 'gnublin.no-ip.info'
windows 10 (L 3.99.0.0 FPC 3.2.0)
-
- Beiträge: 576
- Registriert: Sa 22. Okt 2016, 23:12
- OS, Lazarus, FPC: W10, L 2.2.6
- CPU-Target: 32+64bit
- Wohnort: Dresden
Re: TGradButton gefällig?
Guggst du hier: https://sourceforge.net/p/lazarus-ccr/s ... dcontrols/
LG Maik
Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)
Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)
- Maik81SE
- Beiträge: 308
- Registriert: Fr 30. Sep 2011, 14:07
- OS, Lazarus, FPC: Debian 12 (L 3.0.0.3 FPC 3.2.2); Windows 10 (L 3.99.0.0 FPC 3.2.0)
- CPU-Target: x86-64; arm; avr
- Wohnort: Lübeck
- Kontaktdaten:
Re: TGradButton gefällig?
danke und Grüße in meine Geburtsstadtsstvmaster hat geschrieben: ↑Mi 9. Dez 2020, 19:50Guggst du hier: https://sourceforge.net/p/lazarus-ccr/s ... dcontrols/
Code: Alles auswählen
label.caption:= 'gnublin.no-ip.info'
windows 10 (L 3.99.0.0 FPC 3.2.0)