![]() |
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
Zitat:
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. |
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
Zitat:
|
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
Danke, Harry, wie immer sehr interessant!
|
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
Zitat:
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. |
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
Zitat:
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. |
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
Zitat:
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. |
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
Zitat:
Zitat:
|
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
Und von Touch (Kiosk-Systeme) wollen wir erst gar nicht anfangen.
|
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
Zitat:
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). |
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:
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:). |
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. ![]() 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): ![]() |
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: |
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. |
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
Das war aufschlussreich, danke dir :thumb:
|
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):
![]() |
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
So, ich habe mal Franks (aka Mavarick)
![]() ![]() |
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); |
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:
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). |
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
Zitat:
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:
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);
|
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. |
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:) |
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
Danke Euch beiden für die freundliche Rückmeldung..:)
|
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: ![]() |
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
Zitat:
Da gibt es doch sicherlich bessere Möglichkeiten... :stupid: Mavarik |
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
Nur ein kleiner Hinweis, dass ich ein neues Video zu FMX veröffentlicht habe:
![]() (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. |
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
+1 :thumb:
|
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 |
AW: Neuer Blog über FireMonkey Entwicklung eröffnet
Zitat:
![]() 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... |
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: ![]() Zum Download des Frames gehts hier lang: ![]() (dort gibt es auch eine kurze Dokumentation des Frames) |
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:
![]() |
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: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:42 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-2025 by Thomas Breitkreuz