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/)
-   -   Neuer Blog über FireMonkey Entwicklung eröffnet (https://www.delphipraxis.net/173610-neuer-blog-ueber-firemonkey-entwicklung-eroeffnet.html)

Stevie 25. Sep 2014 07:06

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Zitat:

Zitat von bernau (Beitrag 1273719)
Zitat:

Zitat von Stevie (Beitrag 1273717)
Ja, Hydra ist toll, aber... warum?

Man baut doch keine FMX Anwendung und zieht sich dann für $499 selbst die Crossplatform Beine weg, indem man ne VCL DLL rein läd. :shock:


FMX bedeutet ja nicht unbedingt Mobile. Er hat doch klar gesagt, daß er diese für eine Windows-Anwendung zeigt.

Hab auch nix von Mobile gesagt. Ich würd seine Rechnungssoftware auch kaum auf meinem Android Phone laufen lassen :P
Aber eventuell auf einem Mac. Vielleicht versteh ich auch einfach die Begeisterung für FMX bei einer reinen Windows Anwendung nicht, die ich jederzeit mit VCL schreiben würde (und schon gar nicht eine bestehende VCL Anwendung auf FMX umstellen, wenn ich sie nicht noch mindestens auf nem OSX haben wollte) :)
Oder ich würde es andersherum machen und mit Hydra, Monkeymixer oder sonstwie nen FMX Teil in eine VCL Anwendung integrieren.

bernau 25. Sep 2014 07:55

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Zitat:

Zitat von Stevie (Beitrag 1273721)
Hab auch nix von Mobile gesagt.

Harry hat aber auch nichts von Crossplattform gesagt. Es ist ein Blogeintrag. Er hat einfach beschrieben wie es geht. Und ja, es gibt bestimmt auch Leute, die nutzen FMX nur für Windows, weil dort Dinge vorhanden sind, die mit VCL nicht gehen.

greenmile 25. Sep 2014 08:20

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Danke, Harry, wie immer sehr interessant!

Stevie 25. Sep 2014 08:54

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Zitat:

Zitat von bernau (Beitrag 1273728)
Und ja, es gibt bestimmt auch Leute, die nutzen FMX nur für Windows, weil dort Dinge vorhanden sind, die mit VCL nicht gehen.

Das zu erfahren, wäre mal einen Blog Post von Harry, der mich brennend interessieren würde. ;)
Und nein, ich mein jetzt nicht, dass ich mit FMX nen 3D Modell in meine VCL Anwendung einbinden kann. Das hab ich schon Anno Tuck mit GLScene hinbekommen.
Vor allem mit dem Hintergrund einer bestehenden großen Anwendung, die man nich ma ebend mit nem FMX Converter umstellt.

Harry Stahl 25. Sep 2014 09:48

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Zitat:

Zitat von bernau (Beitrag 1273719)
FMX bedeutet ja nicht unbedingt Mobile. Er hat doch klar gesagt, daß er diese für eine Windows-Anwendung zeigt.

Ja, genau. Von diesem Rechnungsprogramm werde ich mit Sicherheit keine mobile Version machen. Manche Dinge eignen sich definitiv nicht für mobile Lösungen.

Und Hydra bietet mir nun die Möglichkeit, die Gnostice-Komponenten zu verwenden, die mir endlich Erlösung von dem ADOBE-Active-X Gedöne bringen. Für die MAC-Seite werde ich eine MCL-Komponente zur Anzeige verwenden.

Wenn es die Gnostice-Lösung für FMX gibt, tausche ich eben beide Sachen kurzerhand aus, das geht ruck zuck.

Hydra begeistert mich auch schon fast mehr im allgemeinen Sinne und nicht nur auf FMX bezogen. Denn nun kann ich damit auch Delphi 2007-Anwendungen z.B. mit App tethering erweitern, ohne DIE GANZE Anwendung auf Unicode umstellen zu müssen. Da sind 499,-- Euro gut investiertes Geld.

Bernhard Geyer 25. Sep 2014 09:52

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Zitat:

Zitat von Harry Stahl (Beitrag 1273714)
..., konkret die Einbindung der VCL-PDF-Komponenten von Gnostice in eine Windows-FMX-Anwendung.

Überlege dir das nochmal.
Wir hatten sie ein paar Jahre im Einsatz und haben sie wegen grottenschlechter SW-Qualität irgendwann rausgeschmissen.
Ein PDF das nicht 100% erkannt werden konnte hat teilweise zu einem Kompletten Absturz der Anwendung geführt.
Gehe lieber nochmal auf die suche nach alternativen. Kann mir nicht vorstellen das sie diese grottige Implementierung jemals gefixt bekommen.

Bezüglich PDF: Nimm den TWebBrowser und lass es dort anzeigen. Geht auch mit Adobe mittlerweile ganz gut und man ist unabhängig davon was der Kunde installiert hat.

bernau 25. Sep 2014 10:26

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Zitat:

Zitat von Stevie (Beitrag 1273738)
Das zu erfahren, wäre mal einen Blog Post von Harry, der mich brennend interessieren würde. ;)

Fängt mit dem simplen stufenlosen skalieren der Form oder Teilbereiche einer Form an. Hat mit der VCL nie wirklich funktioniert. Animationen sind in FMX besser als in der VCL. Animationen können bei er Eingabe behilflich sein, da durch Animationen der Blick geführt werden kann.

Zitat:

Zitat von Stevie (Beitrag 1273738)
Vor allem mit dem Hintergrund einer bestehenden großen Anwendung, die man nich ma ebend mit nem FMX Converter umstellt.

Auch da hatte keiner von gesprochen. Es ging nicht um das Umstellen großer Anwendungen, sondern darum wie etwas funktioniert. Ob man das braucht oder nicht, steht hier nicht zur Debatte.

Der schöne Günther 25. Sep 2014 10:52

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Und von Touch (Kiosk-Systeme) wollen wir erst gar nicht anfangen.

Harry Stahl 25. Sep 2014 10:55

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1273756)
Bezüglich PDF: Nimm den TWebBrowser und lass es dort anzeigen. Geht auch mit Adobe mittlerweile ganz gut und man ist unabhängig davon was der Kunde installiert hat.

Das habe ich jahrelang so mit VCL-Windows so gemacht: Ergebnis: mindestens 3 mal nachfixen, weil was mit einer neuen Adobe-Version anders war und die Anzeige nicht mehr funktionierte. Konnte aber auch mal am Webbrowser liegen, weil es ne neuere Version war. Im Ergebnis ein Programm, dass plötzlich nicht mehr beim Kunden funktionierte und mich in Fix-Modus-Stress versetzte.

Je nach Einstellung wird die PDF-Datei auch schon mal nicht mehr in der Webbrowser-Komponente angezeigt, sondern außerhalb in einem neuen Browser-Fenster. Auch nicht sehr schön.

Nein, da bin ich froh jetzt ne andere Lösung zu haben. Von der Qualität ist mir aufgefallen, dass die Anzeige ein klein wenig schlechter ist, als im Adobe-Reader, was aber hinnehmbar ist, ich glaube keiner der Anwender wird länger oder öfter in Rechnungsdateien oder Bestellformulare reinsehen. Davon abgesehen sind die neueren Anzeige-Module aus der XtremeDocument-Studio wohl in der Qualität wie Adobe und die Komponente kann auch Docx anzeigen. Ich bin aber zunächst bei dem PDF-Toolkit geblieben, weil ich auch damit selber nun PDF-Dateien erzeugen kann, ohne auf einen im System installierten PDF-Treiber angewiesen zu sein (ich kann dann auch das Handling besser gestalten).

Harry Stahl 26. Sep 2014 23:34

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:

Zitat von Stevie (Beitrag 1273721)
Man baut doch keine FMX Anwendung und zieht sich dann für $499 selbst die Crossplatform Beine weg, indem man ne VCL DLL rein läd. :shock:
...
Hab auch nix von Mobile gesagt. Ich würd seine Rechnungssoftware auch kaum auf meinem Android Phone laufen lassen :P
Aber eventuell auf einem Mac. Vielleicht versteh ich auch einfach die Begeisterung für FMX bei einer reinen Windows Anwendung nicht, die ich jederzeit mit VCL schreiben würde (und schon gar nicht eine bestehende VCL Anwendung auf FMX umstellen, wenn ich sie nicht noch mindestens auf nem OSX haben wollte) :)

Noch mal zur Erläuterung: Die Hydra / Gnostice - Variante war eine Lösung, die FMX-Windows Variante besser zu machen (nämlich unabhängig von Adobe Reader).

Das bringt auch überhaupt keine Probleme für die MAC-Variante (was ja auch letztlich mein Ziel ist).

Für die MAC-Ausgabe (per $IFDEF)nehme ich derzeit die TMS-MCL-PDF-Anzeigekomponente (siehe im anliegenden Screenshot die fertige MAC-Programmlösung für diesen Part). Also auch da bin ich unabhängig von Adobe.

Falls es dann irgendwann die Gnostice-Lösung auch für den MAC nimmt, werde ich die da auch nehmen, wegen Einheitlichkeit und mehr Möglichkeiten.

Ich muss es eigentlich "nur" noch schaffen den Rechnungsdruck in allen seinen Untervarianten auf die Fastreport-Lösung zu bringen (einfache Listenausdrucke funktionieren schon, siehe weiteren Screenshot), dann bin ich auch schon fertig mit der MAC-Version des Programms. Ist da mit Fastreport im Moment aber noch ein wenig hakelig (wie gesagt, leider bin ich blutiger Anfänger im Reporting:oops:).

Harry Stahl 23. Apr 2015 21:11

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Ich glaube, zu der zuletzt geführten Diskussion ist hier immer noch eine abschließende Info zum Ergebnis der Umstellung meines VCL-Rechnungsprogramms auf FMX offen. Das möchte ich hiermit nachholen:

Die Konvertierung meines Rechnungsprogramms von VCL nach FMX ist nun schon seit einigen Monaten abgeschlossen. Seitdem läuft alles stabil wie vormals unter der VCL, sowohl unter Windows und jetzt auch auf dem MAC.

Die MAC-Version vertreibe ich nicht über den App Store, sondern außerhalb. Deswegen lief der Verkauf da etwas zögerlich an, mittlerweile sehe ich die Sache aber auch hier auf einem guten Weg.

Jedenfalls konnte das Programm als solches und auch speziell mit der integrierten QR-Code Generierung für die Bankdaten insoweit überzeugen, dass ich neben Sparkasse, Volksbanken und Reifeisenbanken, BITKOM und anderen als Partner in das Girocode Programm (vgl. www.girocode.de) aufgenommen wurde (siehe dort unter Partner, das "Hastasoft-Logo").

Ich denke, das kann man durchaus als einen Beleg ansehen, dass man mit FMX im Desktop-Bereich stabile, zuverlässige Programme schreiben kann, die ohne Zweifel vom Benutzer angenommen werden.

Insofern werde ich nun einen weiteren Schritt wagen und eines meiner "Megaseller" Programme (meine Terminverwaltung TimOnize) auf FMX umsatteln. Und das natürlich mit Delphi XE8, über Erfahrungen dazu werde ich bei Gelegenheit berichten.

Ich denke, da wird mir auch die neue ImageList in XE8 an vielen Stellen die Arbeit erleichtern. Ich habe dazu auch gleich mal einen kleinen kurzen Blogbeitrag geschrieben (Nr. 11, Delphi XE8 und FireMonkey): http://www.devpage.de/blog/firemonkey.htm

Stevie 23. Apr 2015 21:57

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Magst du noch ein Statement zu der investierten Zeit und den Nerven und der Menge an manuell erforderlichem Nachgefrickel abgeben?
Denn am Ende zählt nicht, dass es irgendwann geklappt hat, sondern welchen Aufwand (Kosten!) das ganze verursacht hat.
Und welcher Wartungsaufwand durch manuelle Änderungen in Zukunft möglicherweise entsteht.

Ansonsten erinnert mich das an den Chef einer kleinen Firma, wo ich vor Jahren ein Praktikum gemacht habe, die mit WinDev entwickelten.
Er saß mindestens einen halben Tag daran, dem WinDev Treeview beizubringen, die Expand buttons vernünftig anzuzeigen...
In der Zeit hätt er die ganze Anwendung fertig haben können :wall:

Harry Stahl 23. Apr 2015 22:47

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Also Nerven hat das auf jeden Fall gekostet, aber wo in Sachen Programmierung gibt es schon etwas im easy going style?

Ich mache für alle meine Programme für jede Änderung einen öffentlichen Change-Log und schreibe da neben Erweiterungen und Optimierungen auch ganz brutal und offen meine gemachten Fehler rein. Die Liste habe ich gerade mal durchsehen, man kann ca. 20 Fehler-Korrekturen noch als "Spätfolgen" der Umstellung zuordnen. So an Extra-Zeit kann man also so um die 30 Stunden dafür anrechnen.

Seit Ende Januar war keine Fehlerkorrektur mehr nötig, derzeit laufen von den Kunden nur Erweiterungswünsche rein (die ich aber alle erst in einer neuen Version 4 in ca. 2 Monaten reinpacken werde, dann wohl auch mit XE8).

XE7 hat in der ganzen Sache extrem mehr Stabilität reingebracht (im Verhältnis zu XE5 wo ja noch dutzende Workarounds fällig waren).

Da mit der Umstellung von VCL auf FMX gleichzeitig eine Reihe von Programm-Erweiterungen verbunden waren, ist es gar nicht so einfach zu sagen, wie groß der Teil der Umstellungsarbeiten war. Außerdem arbeite ich hier nicht kontinuierlich an einem Projekt, sondern parallel an mehreren. Ich kann das nur schätzen. Würde mal sagen, so insgesamt 80 Stunden.

Stevie 24. Apr 2015 07:44

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Das war aufschlussreich, danke dir :thumb:

Harry Stahl 22. Mai 2016 21:21

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Zwar kein neuer schriftlicher Blogbeitrag, aber falls es jemand interessiert, wie man mit 3 Zeilen Code eine Analoge Uhr programmieren kann, kann sich dieses Video ansehen (in englisch):

https://youtu.be/QL5SdJAiWGE

Harry Stahl 15. Okt 2016 15:12

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
So, ich habe mal Franks (aka Mavarick) Anregung aufgegriffen und zum Thema VCL vs. Firemonkey einen neuen Beitrag auf meinem Blog veröffentlicht: Firemonkey vs. VCL (Additions to the FMX-side), wo ich die Fähigkeiten der FMX-Seite in Abgrenzung zu VCL ein wenig mehr beleuchtet habe.

himitsu 15. Okt 2016 16:15

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Bei deiner Uhr kommst du mit LiveBinding-Expressions auf 0 bis 1 Codezeilen. :zwinker:
In die TLayout noch auf die Gegenseite ein TLabel und schon brauchst du 6 TLayout weniger.
Aber vorallem im Code ... Warum diese Stringoperationen?

Delphi-Quellcode:
//rrHout.RotateAngle := 30 * HourOf(Now) + 6 * MinuteOf(Now) / 12;
rrHout.RotateAngle := 30 * HourOf(Now) + MinuteOf(Now) / 2;
rrMin.RotateAngle := 6 * MinuteOf(Now);
rrSec.RotateAngle := 6 * SecondOf(Now);

Harry Stahl 15. Okt 2016 16:53

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:

Zitat von himitsu (Beitrag 1350982)
Bei deiner Uhr kommst du mit LiveBinding-Expressions auf 0 bis 1 Codezeilen. :zwinker:
In die TLayout noch auf die Gegenseite ein TLabel und schon brauchst du 6 TLayout weniger.
Aber vorallem im Code ... Warum diese Stringoperationen?

Delphi-Quellcode:
//rrHout.RotateAngle := 30 * HourOf(Now) + 6 * MinuteOf(Now) / 12;
rrHout.RotateAngle := 30 * HourOf(Now) + MinuteOf(Now) / 2;
rrMin.RotateAngle := 6 * MinuteOf(Now);
rrSec.RotateAngle := 6 * SecondOf(Now);


OK, Deine Frage bezieht sich auf Beitrag 55 (siehe oben).

Den Code brauche ich, um die Zeiger zu bewegen und die richtige Uhrzeit anzuzeigen (wenn Du eine schönere Lösung kennst, ist die immer Willkommen).

Was Du mit Deinem Hinweise zum TLayout meinst, ist mir nicht ganz klar. Davon abgesehen, ist das mit dem TLayout eh nur zur Demonstration. In einer anderen Version der Uhr, die ich in meinem in Arbeit befindlichen Buch für Delphi Berlin vorstelle, gibt es nur ein TLayout für einen Stundenabschnitt (siehe Bild in Anlage), das dann zur Laufzeit einfach entsprechend dupliziert wird, dann spart man sich eine Reihe von Layout-Arbeiten, die man ja im Video hinlänglich sehen kann (die gesamte Design-Arbeit, die dann noch zu leisten ist, wird in Bild2 verdeutlicht).

himitsu 15. Okt 2016 21:54

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Zitat:

Zitat von Harry Stahl (Beitrag 1350986)
das dann zur Laufzeit einfach entsprechend dupliziert wird, dann spart man sich eine Reihe von Layout-Arbeiten

Dann hast du aber wieder mehr Code im Code :lol:

Ich meinte es einfach so, wie du es schon gemacht hast, nur eben nicht nur ein Label "12" in das TLayout, sondern auch noch ein Label "6"
und das dann nur 5 Mal kopieren statt 11 Mal.

Zitat:

Zitat von Harry Stahl (Beitrag 1350986)
Den Code brauche ich, um die Zeiger zu bewegen und die richtige Uhrzeit anzuzeigen (wenn Du eine schönere Lösung kennst, ist die immer Willkommen).

OK :stupid:
Zitat:

Delphi-Quellcode:
rrSec.RotateAngle := 6 * StrToInt(FormatDateTime('ss', Now));

Du erstellst einen String und wandelst diesen dann wieder in eine Zahl, aber man kann das auch direkt mathematisch lösen.
Delphi-Quellcode:
rrSec.RotateAngle := 6 * (Trunc(Now * SecsPerDay) mod 60);

Aber natürlich gibt es schon eine schöne Funktion, welche das verständlicher erledigt.
Delphi-Quellcode:
rrSec.RotateAngle := 6 * SecondOf(Now);

Harry Stahl 15. Okt 2016 22:34

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Upps, manchmal ist man doch echt blind. Hatte gar nicht mitbekommen, dass Du schon meinen Code abgewandelt hattest.

Super!!:thumb::thumb::thumb:

Die HourOF, MinuteOF und SecondOf (TDateTime) kannte ich noch gar nicht! Müssen irgendwie an mir vorbeigegangen sein.:oops:

Wer Sie auch noch nicht kannte: man muss die Unit DateUtils (die kannte ich natürlich) einbinden.

himitsu 15. Okt 2016 22:39

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:
synchronisere Property pA von Objekt oA mit Property pB von Objekt oB
, sondern dass bei der "Zuweisung" auch noch irgendwelche mathematischen Operationen auf den Wert angewendet werden sollen.
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

Harry Stahl 16. Okt 2016 16:37

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 (http://docwiki.embarcadero.com/RADSt...n_LiveBindings).

himitsu 16. Okt 2016 20:14

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:
Timer1.Tag := SecondOfTheDay(Now);
im OnTimer und dann könnte man in den LiveBindings damit die Zeiger setzen,
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:
TagFloat
(falls die LiveBindings den lesen können),
lässt einfach das Runden weg und zeichnet Zwischenschritte.

Mavarik 17. Okt 2016 10:57

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Zitat:

Zitat von Harry Stahl (Beitrag 1350978)
So, ich habe mal Franks (aka Mavarick) Anregung aufgegriffen und zum Thema VCL vs. Firemonkey einen neuen Beitrag auf meinem Blog veröffentlicht: Firemonkey vs. VCL (Additions to the FMX-side), wo ich die Fähigkeiten der FMX-Seite in Abgrenzung zu VCL ein wenig mehr beleuchtet habe.

Vielleicht noch ein Hinweis:

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

Harry Stahl 17. Okt 2016 23:50

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Zitat:

Zitat von Mavarik (Beitrag 1351069)
Zitat:

Zitat von Harry Stahl (Beitrag 1350978)
So, ich habe mal Franks (aka Mavarick) Anregung aufgegriffen und zum Thema VCL vs. Firemonkey einen neuen Beitrag auf meinem Blog veröffentlicht: Firemonkey vs. VCL (Additions to the FMX-side), wo ich die Fähigkeiten der FMX-Seite in Abgrenzung zu VCL ein wenig mehr beleuchtet habe.

Vielleicht noch ein Hinweis:

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

Genau guter Hinweis.

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) https://quality.embarcadero.com/browse/RSP-16126):wink:

himitsu 18. Okt 2016 01:53

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:

jaenicke 18. Okt 2016 06:19

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:
http://qc.embarcadero.com/wc/qcmain.aspx?d=105991
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.

Harry Stahl 21. Apr 2017 15:31

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

Delphi 10.2 mit Linux-Unterstützung

(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:

Darlo 21. Apr 2017 19:08

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Freut mich dich hier wieder öfters zu lesen!

delphirocks 22. Apr 2017 08:30

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:)

Harry Stahl 22. Apr 2017 13:55

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Danke Euch beiden für die freundliche Rückmeldung..:)

Harry Stahl 12. Aug 2017 14:33

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Habe einen neuen Blogbeitrag (Nr. 14) erstellt, der einen weiteren Weg zu Integration einer FMX-App in ein VCL-Fenster aufzeigt.

Auf der Blog-Seite gibt es dazu eine Erläuterung in deutscher und englischer Sprache, den Source-Code und ein kurzes Video dazu:

http://www.devpage.de/blog/firemonkey.htm

Mavarik 13. Aug 2017 13:40

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Zitat:

Zitat von Harry Stahl (Beitrag 1378639)
Habe einen neuen Blogbeitrag (Nr. 14) erstellt, der einen weiteren Weg zu Integration einer FMX-App in ein VCL-Fenster aufzeigt.

Auf der Blog-Seite gibt es dazu eine Erläuterung in deutscher und englischer Sprache, den Source-Code und ein kurzes Video dazu:

http://www.devpage.de/blog/firemonkey.htm

Sleep(2000) und dann 5 Versuche mit sleep(1500)?

Da gibt es doch sicherlich bessere Möglichkeiten... :stupid:

Mavarik

Harry Stahl 19. Feb 2020 21:19

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Nur ein kleiner Hinweis, dass ich ein neues Video zu FMX veröffentlicht habe:

https://youtu.be/bbuVp-IfSxQ
(Wie man Images im Main-Menu unter FMX auch verwenden kann, wenn Styles verwendet werden, die Borderstyling haben).

Das ist der erste von insgesamt 100 (immer ganz kurzen) Tipps, die ich in unregelmäßigen Abständen per Video rüber bringen will. Da ich das nicht jedes mal hier posten möchte (ich will ja niemanden nerven), die Empfehlung bei Bedarf den Kanal zu abbonieren oder mir bei Twitter zu folgen (Dev_Harry_Stahl).

Video-Sprache wird immer Englisch sein, das ist der internationalen Community geschuldet.

Rollo62 20. Feb 2020 06:58

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
+1 :thumb:

Sherlock 20. Feb 2020 07:11

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Sehr schön. Nur eine blöde Frage von mir. Ist die Ursache für das Verhalten, das Du da reparierst, Allgemeinwissen? Ich wußte zB nicht, daß es dieses Problem gibt, und ich wüßte auch nicht, wie und warum es zu lösen ist.

Sherlock

Harry Stahl 20. Feb 2020 18:08

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Zitat:

Zitat von Sherlock (Beitrag 1457970)
Sehr schön. Nur eine blöde Frage von mir. Ist die Ursache für das Verhalten, das Du da reparierst, Allgemeinwissen? Ich wußte zB nicht, daß es dieses Problem gibt, und ich wüßte auch nicht, wie und warum es zu lösen ist.

Sherlock

Das Problem hatte ich schon vor längerer Zeit gemeldet:

https://quality.embarcadero.com/brow...1869?filter=-2

Da aber nichts passiert ist, habe ich eben selber eine Lösung entwickelt (wie für viele andere Dinge).

Die Ursache ist mir nicht bekannt, manche Sachen sind in FMX schwer zu debuggen, da Plattform bedingt die benutzten Units sich erst zu Laufzeit ergeben und vieles per Messages erledigt wird. Wenn man dann nicht weiß, wo die Message von welchem Messagehandler verarbeitet wird kann man es nicht debuggen.

Ich denke mal, wer Anwendungen (auch) für Windows entwickelt und Icons im Hauptmenü verwendet (PopUp-Menüs betrifft das nicht), dem wird die Problematik schon aufgefallen sein...

Harry Stahl 25. Mai 2020 18:19

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Liste der Anhänge anzeigen (Anzahl: 1)
Diesmal habe ich einen neuen Blogbeitrag in Form eines Videos erstellt, das zeigt, wie man mit Hilfe von Frames eine Color Selection box erstellt, die z.B. besser geeignet ist, um eine Textfarbe oder einen Texthintergrund zu wählen.

Zum Video gehts hier lang: https://youtu.be/5nZr-C5D-qs

Zum Download des Frames gehts hier lang: https://www.devpage.de/FrameColorPicker.htm
(dort gibt es auch eine kurze Dokumentation des Frames)

Harry Stahl 6. Jun 2020 18:43

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Wer Bedarf für eine einfache Erweiterung eines FMX-Memos mit Zeilennummern und farblicher Hervorhebung der aktiven Zeile hat, kann sich dieses kurze Video (6 Min) ansehen:

https://youtu.be/mqX-dwJI7Ic

Harry Stahl 12. Mai 2023 13:23

AW: Neuer Blog über FireMonkey Entwicklung eröffnet
 
Habe ja hier zu dem Thema schon länger nichts gepostet, aber aus dem Feedback des letzten Videos ist doch zu entnehmen, dass das behandelte Thema (Verschieben oder Größenänderung von Controls auf einer FMX-Form) doch wohl einigen Entwicklern nicht bekannt war.

Daher hier ein Link zu dem Video, mit der Hoffnung es könnte dem einen oder anderen vielleicht eine nützliche Hilfe sein: https://youtu.be/fUo0qtPjsE4


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:03 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