![]() |
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
Passiert jedem mal und man lernt eben nie aus.
Einfach kopieren, via Strg+V im FormDesigner einfügen und F9 drücken. Man müsste nur noch beim Start die Animationen einmal mit der aktuellen Zeit synchronisieren oder besser noch über die LiveBinding-Expressions ... dann braucht man garkeinen "Code" mehr. Bei den LiveBindings-Expressions ist es so, dass man in den Bindings direkt "Code" verwenden kann, also nicht nur
Delphi-Quellcode:
, sondern dass bei der "Zuweisung" auch noch irgendwelche mathematischen Operationen auf den Wert angewendet werden sollen.
synchronisere Property pA von Objekt oA mit Property pB von Objekt oB
Code:
object Circle1: TCircle
Align = Center Size.Width = 400.000000000000000000 Size.Height = 400.000000000000000000 Size.PlatformDefault = False object Layout1: TLayout Align = Center Size.Width = 50.000000000000000000 Size.Height = 400.000000000000000000 Size.PlatformDefault = False TabOrder = 0 object Text1: TText Align = Top Text = '12' TextSettings.Font.Size = 24.000000000000000000 TextSettings.Font.StyleExt = {00070000000000000004000000} end object Text2: TText Align = Bottom Position.Y = 350.000000000000000000 Text = '6' TextSettings.Font.Size = 24.000000000000000000 TextSettings.Font.StyleExt = {00070000000000000004000000} end end object Layout2: TLayout Align = Center RotationAngle = 30.000000000000000000 Size.Width = 50.000000000000000000 Size.Height = 400.000000000000000000 Size.PlatformDefault = False TabOrder = 1 object Text3: TText Align = Top RotationAngle = -30.000000000000000000 Text = '1' TextSettings.Font.Size = 24.000000000000000000 TextSettings.Font.StyleExt = {00070000000000000004000000} end object Text4: TText Align = Bottom Position.Y = 350.000000000000000000 RotationAngle = -30.000000000000000000 Text = '7' TextSettings.Font.Size = 24.000000000000000000 TextSettings.Font.StyleExt = {00070000000000000004000000} end end object Layout3: TLayout Align = Center RotationAngle = 60.000000000000000000 Size.Width = 50.000000000000000000 Size.Height = 400.000000000000000000 Size.PlatformDefault = False TabOrder = 2 object Text5: TText Align = Top RotationAngle = -60.000000000000000000 Text = '2' TextSettings.Font.Size = 24.000000000000000000 TextSettings.Font.StyleExt = {00070000000000000004000000} end object Text6: TText Align = Bottom Position.Y = 350.000000000000000000 RotationAngle = -60.000000000000000000 Text = '8' TextSettings.Font.Size = 24.000000000000000000 TextSettings.Font.StyleExt = {00070000000000000004000000} end end object Layout4: TLayout Align = Center RotationAngle = 90.000000000000000000 Size.Width = 50.000000000000000000 Size.Height = 400.000000000000000000 Size.PlatformDefault = False TabOrder = 3 object Text7: TText Align = Top RotationAngle = -90.000000000000000000 Text = '3' TextSettings.Font.Size = 24.000000000000000000 TextSettings.Font.StyleExt = {00070000000000000004000000} end object Text8: TText Align = Bottom Position.Y = 350.000000000000000000 RotationAngle = -90.000000000000000000 Text = '9' TextSettings.Font.Size = 24.000000000000000000 TextSettings.Font.StyleExt = {00070000000000000004000000} end end object Layout5: TLayout Align = Center RotationAngle = 120.000000000000000000 Size.Width = 50.000000000000000000 Size.Height = 400.000000000000000000 Size.PlatformDefault = False TabOrder = 4 object Text9: TText Align = Top RotationAngle = -120.000000000000000000 Text = '4' TextSettings.Font.Size = 24.000000000000000000 TextSettings.Font.StyleExt = {00070000000000000004000000} end object Text10: TText Align = Bottom Position.Y = 350.000000000000000000 RotationAngle = -120.000000000000000000 Text = '10' TextSettings.Font.Size = 24.000000000000000000 TextSettings.Font.StyleExt = {00070000000000000004000000} end end object Layout6: TLayout Align = Center RotationAngle = 150.000000000000000000 Size.Width = 50.000000000000000000 Size.Height = 400.000000000000000000 Size.PlatformDefault = False TabOrder = 5 object Text11: TText Align = Top RotationAngle = -150.000000000000000000 Text = '5' TextSettings.Font.Size = 24.000000000000000000 TextSettings.Font.StyleExt = {00070000000000000004000000} end object Text12: TText Align = Bottom Position.Y = 350.000000000000000000 RotationAngle = -150.000000000000000000 Text = '11' TextSettings.Font.Size = 24.000000000000000000 TextSettings.Font.StyleExt = {00070000000000000004000000} end end object RoundRect1: TRoundRect Fill.Color = claBlack Position.X = 191.000000000000000000 Position.Y = 64.000000000000000000 RotationCenter.Y = 0.935000002384185700 Size.Width = 17.000000000000000000 Size.Height = 145.000000000000000000 Size.PlatformDefault = False object FloatAnimation1: TFloatAnimation Enabled = True Duration = 43200.000000000000000000 PropertyName = 'RotationAngle' StartValue = 0.000000000000000000 StopValue = 360.000000000000000000 end end object RoundRect2: TRoundRect Fill.Color = claBlack Position.X = 193.000000000000000000 Position.Y = 40.000000000000000000 RotationCenter.Y = 0.944000005722046000 Size.Width = 13.000000000000000000 Size.Height = 169.000000000000000000 Size.PlatformDefault = False object FloatAnimation2: TFloatAnimation Enabled = True Duration = 3600.000000000000000000 PropertyName = 'RotationAngle' StartValue = 0.000000000000000000 StopValue = 360.000000000000000000 end end object RoundRect3: TRoundRect Fill.Color = claCrimson Position.X = 196.000000000000000000 Position.Y = 24.000000000000000000 RotationCenter.Y = 0.875000000000000000 Size.Width = 8.000000000000000000 Size.Height = 201.000000000000000000 Size.PlatformDefault = False object FloatAnimation3: TFloatAnimation Enabled = True Duration = 60.000000000000000000 Loop = True PropertyName = 'RotationAngle' StartValue = 0.000000000000000000 StopValue = 360.000000000000000000 end end end |
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
OK, jetzt weiß ich, was Du meinst mit den Layouts.
Ich hatte mir auch überlegt, eine Animation zu verwenden, die Sekundenweise, bzw. Minuten oder Stundenweise aktiv ist und dann damit die Zeiger bewegt. Allerdings ist es mir mit den Expressions nicht gelungen hier eine entsprechende Anweisung für eine Initialisierung der aktuellen Uhrzeit hinzubekommen. Der Befehlssatz ist da leider etwas beschränkt ( ![]() |
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
Jupp, mit dem Standardbefehlssatz hab ich's och nicht hinbekommen. Aber bestimmt kann man den ja irgendwie erweitern.
Was ginge, war im Timer ein
Delphi-Quellcode:
im OnTimer und dann könnte man in den LiveBindings damit die Zeiger setzen,
Timer1.Tag := SecondOfTheDay(Now);
also jeweils für RotationAngle: rrHour:
Delphi-Quellcode:
(Tag div 3600) * 30
rrMin:
Delphi-Quellcode:
(Tag div 60 mod 60) * 6
rrSec:
Delphi-Quellcode:
(Tag mod 60) * 6
Ich glaub MOD und DIV gab's nicht, aber das kann man mathematisch und mit bisschen Rundung ersetzten. Now liefert auch die Millisekunden ... da vergrößert man den Integer etwas oder nimmt gleich
Delphi-Quellcode:
(falls die LiveBindings den lesen können),
TagFloat
lässt einfach das Runden weg und zeichnet Zwischenschritte. |
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
Zitat:
VCL profitiert auch von der Firemonkey Entwicklung. Sehr schön zu sehen, welche Units von XE2->10.1 das Namespace gewechselt haben... In den ersten Versionen noch FMX.* jetzt System.* Mavarik |
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
Zitat:
Fairerweise sollte ich bei VCL vs. FMX evtl. noch ergänzen, dass man sich mit FMX deutlich öfter bei Embas Quality-Central aufhält, um Bug-Reports zu schreiben (wie z.B. jetzt den hier: (Fehlerhafte Anzeige des TDateEdit-PopUps) ![]() |
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
Ich hatte auch schon 8 Jahre alte Bugs in der VCL beheben lassen.
Das ging auch ganz schnell ... k.A. warum den offensichtlichen Bug noch keiner gemeldet hatte. :roll: |
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
Es werden in der VCL schon recht viele Bugs behoben, auch wenn das viele nicht so wirklich mitzubekommen scheinen. Einer davon ist z.B. dieser hier:
![]() Allerdings wurde der nicht als gelöst markiert. Vermutlich wurde das gefixt ohne dass dies als Reaktion auf den QC-Eintrag passiert ist. Deshalb taucht so etwas dann leider in den offiziellen Bugfixlisten auch nicht auf. |
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
Liste der Anhänge anzeigen (Anzahl: 1)
Für alle FMX/Linux Freunde:
Es gibt einen neuen Blogbeitrag zum Thema ![]() (Das ist Beitrag 13, falls auf der Startseite nicht angezeigt, einmal mit F5 den Browser aktualisieren). Außerdem habe ich in diesem Zusammenhang ein paar Informationen zu meinem neuen FMX-Buch dazugeschrieben.:wink: |
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
Freut mich dich hier wieder öfters zu lesen!
|
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
Ich mag den Vintage Look der Seite.
Kein Bootstrap usw., Links im Original Look. Den Inhalt natuerlich auch:) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz