![]() |
Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Nachdem es mir gelang mit Delphi/RAD Studio passable Anwendungen zu erstellen und ich diese "irgendwie" mit dem genialen (?)FireMonkey aufs Smartboard portieren wollte, war ich maßlos enttäuscht, dass so simple, wie wichtige Standardroutinen nicht ebenso simpel funtionieren.
Was bedeutet z.B. die Kreation von TImage oder TPanel? Der Objektinspektor ist völlig verödet. Wo steht, wie ein Bild importiert werden kann? Nach welchem Schema kann ich das gezielt suchen? Ganz wichtig wäre (wohl nicht nur für mich) die individuelle Änderung der Schrift- oder Hintergrundfarbe in Panels. Fehlanzeige. Ist das für Programmierprofis kein Thema? Was bietet Embarcadero für Lösungen an? :cry: :cry: |
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Die Lösung heißt: Schau in die Dokumentation!
FMX ist völlig anders als VCL und erfordert daher auch ein Einarbeiten in dieses neue und andere Framework. Spezielle Darstellungen werden dort nun per Styles vorgenommen und statt einem Panel nimmt man ein Layout/Rectangle/Frame/etc. |
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Jupp, Rahmen weg vom TPanel, geht nicht. Dafür gibt TLayout.
(leider hat man vergessen TLayout und Co. auch in der VCL zur Verfügung zu stellen) Auch andere Komponenten gibt es doppelt. So gibt es z.B. eine ScrollBox jeweils mit und ohne Rahmen, anstatt dort einfach nur zwei Styles zur Verfügung zu stellen. Hintergrundfarben und Co. sind halt auch nicht so leicht. Aber man kann sich für eine Komponente (z.B. TEdit) einen CustomStyle erstellen lassen, dort in den Hintergrund ein TRectangle einfügen, diesen Style eventuell noch den gewünschten Edits zuweisen, falls man nicht "Alle" oder "nur Dieses" meint. Und wenn jetzt kann man über das TRectangle die Hintergrundfarbe es TEdits bestimmen. :roll: In OnPaint/OnPainting einfach Canvas.Brush.Color zuzuweisen geht auch nicht, so wie man es vielerorts aus der VCL kannte. Find ich zwar auch ein bissl umständlich und blöd, aber so isses nunmal. Der StyleEditor scheint ein paar macken zu haben. z.B. konnte ich oftmals erstellte Komponenten nicht wieder löschen, ohne gleich den ganzen Style zu löschen und alles neu zu machen. Und da der Style auch noch binär in der DFM steht, kann man das Eine auch nicht einfach manuell entfernen. Oder beim Umstellen des Align bekommen das die 8 Selektion-Pünktchen nicht mit ... erst wenn man sie anklickt. :stupid: Im Formdesigner fehlen die netten Ausrichtungshilfslinien. Bei FMX darfst du also vergessen und komplett neu anfangen. Aber sei froh, daß du nicht auch schon FMX v1 und FMX v2 gelernt hast, denn zwischendurch wurde viel daran umgebaut. |
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Zitat:
Kreation von TImage? Firemonkey unterstütz die unterschiedlichen Plattformen die Teilweise eine Vervielfältigung der Auflösung bieten... Apple nennt das Retina-Display. Er wäre nun Fatal, wenn man je nach Auflösung immer mit anderen Werten rechnen müsste, daher haben die mit und ohne Retina-Display Handys alle 320px horizontal (Außer die 6 und 6+). Um jetzt Bilder aber auf diesen Displays richtig (mit optimaler Auflösung) anzeigen zu können, muss man die Bilder dann auch in doppelter Auflösung erzeugen. Daher hat ein Image jetzt einen Container für Bilder mit anderen Auflösungen. 1x, 2x usw... Wenn das Bild nicht vorhanden ist, wird es aus der nächst kleineren Auflösung hoch skaliert. Ja ja, Firemonkey ist schon genial... Bei Android ist das nicht anders (Abgesehen von 320px) da gibt es auch Auflösung 1,5x 2,5x usw... Mavarik |
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Zitat:
|
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Kann Delphi denn diese OnPaint-Ereignissroutinen nicht einfach für das GPU Accelerated Computing kompilieren? :lol:
Zitat:
Man könnte sich jetzt fragen, ob es andersrum nicht vielleich besser wäre. Bei Fotos auf jeden Fall, aber bei Bildern mit scharfen Kannten eventuell doch nicht. (mit Interpolation isses da aber eh in beiden Richtungen blöd) |
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Zitat:
Ich fragte: "Wo steht, wie ein Bild importiert werden kann? Nach welchem Schema kann ich das gezielt suchen?" Die ganze Doku durchzuackern, finde ich nicht besonders hilfreich. Ich würde aber gern - auch, um von diesem Hilfegesuch wegzukommen - eine Stelle finden, wo diese "Fälle" griffig und nachvollziehbar erklärt werden. Wo steht z.B., wozu ein TImage überhaupt dienen kann? Oder das Fragment eines Panels? Ein Auto kauft man auch nicht nur mit einem Bremspedal, aber ohne Bremsleitung. Hilfreich wäre, wenn Programmierprofis Tipps für Fundorte zur eigenstänigen Erarbeitung von Beispielen geben könnten. (Vielleicht habe ich bei Embarcadero noch nicht die Stecknadel im Heuhaufen gefunden...) |
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
ich finde die Samples ganz nützlich
C:\Users\Public\Documents\RAD Studio\[XX.Y]\Samples Hier bin ich z.B. fündig geworden: C:\Users\Public\Documents\RAD Studio\12.0\Samples\FireMonkeyMobile\Delphi\PhotoE ditorDemo |
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Zitat:
Aber wenn man die Unterschiede erst einmal verinnerlicht hat, geht es ganz leicht. Es gibt da durchaus auch Literatur, die einem vom Umstieg von VCL nach FMX hilft.:wink: Leider hast Du nicht dabei geschrieben, mit welcher Delphi-Version Du arbeitest, bei meiner Antwort unterstelle ich daher mal XE8: Bitmaps lädst Du über den Objektinspektor in das TImage über die Eigenschaft "MultiResBitmap". Die Farbe vom TPanel kannst Du z.B. verändern, indem Du mit der rechten Maustaste darauf klickst und dann "Benutzerdefinierten Stil bearbeiten" auswählst und dann für den Panelstyle1 in der Eigenschaft "Fill" die gewünschte Hintergrundfarbe wählst. Das TPanel hat unter FireMonkey keine Texteigenschaft, Du kannst daher z.B. ein TLabel oder ein TText in das Panel einfügen, als Ersatz für die alte "Caption" Eigenschaft. |
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Zitat:
|
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Zitat:
Delphi-Quellcode:
Das zeichnet das Panel in Gelb, egal was man für einen Stil zugewiesen hat. Allerdings muss man dann auch alles andere, was sich im Panel befindet, selber zeichnen, für das TPanel dann vielleicht nicht so sinnvoll. Aber hilfreich zu wissen, wenn man z.B. in einem Listbox-Item eine andere Hintergrundfarbe benötigt, oder gleich mehrere unterschiedliche Hintergrundfarben innerhalb des gleichen ListBoxItems.
procedure TForm14.Panel1Paint(Sender: TObject; Canvas: TCanvas;
const ARect: TRectF); begin canvas.BeginScene; canvas.Fill.Kind := TBrushKind.bkSolid; Canvas.Clearrect (Arect, TAlphaColorRec.Yellow); canvas.EndScene; end; Generell ist es möglich, mit dem FMX-Canvas wie zu VCL-Zeiten zu arbeiten. Wo FMX gewisse Einschränkungen hat, zeichne ich das eine oder andere eben selber über den Canvas (z.B. bei mehreren TString-Columns in einem StringGrid, die unterschiedliche Ausrichtungen haben (also Links,- rechtsbündig oder zentriert)). Insgesamt finde ich es aber als Erleichterung, das nicht mehr tun zu müssen (über den Canvas arbeiten). Unter der VCL habe ich fast alle Grids oder Listboxen per Ownerdraw gezeichnet, unter FMX benötige ich das fast nicht mehr. |
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Zitat:
Immer wieder habe ich das Gefühl, dass man schnell irgendetwas "Großes" erschaffen möchte, ohne sich mit den Grundlagen und seinen zur Verfügung gestellten "Werkzeugen" zu beschäftigen. |
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Zitat:
Obige, vom Namen her interessante Datei gibt es noch nicht unter XE5. ...dann ackere ich mal systematisch...:-D |
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Und bei dem Demo-Verzeichnis kann es nicht schaden regelmäßig Mal ein Update zu machen.
z.B. SVN-Clienten installieren und Auschecken oder sich das Demoverzeichnis als Projektgruppe in die IDE holen und dort das eingebaute SVN der IDE benutzen. Zitat:
"nativ" sind es halt zwei Komponenten. > Eine für den Rahmen > TPanel > und Eine für das Layout (innerliche Gruppierung) > TLayout In der VCL muß man auch erstmal "mühsam" vom TPanel den Rahmen und die Caption wegmachen, da wäre ein TLayout auch nett ... passend zu den GridLayouts. |
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
[QUOTE=Sel2012;1304938]
Zitat:
Dann doch lieber ein Buch, von dem ich mir eine gewisse aufbauende Systematik verspreche. In der Online-Hilfe kann ich nicht erkennen, der Reihe nach zu lesen, oder? |
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
|
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Zitat:
![]() |
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
[QUOTE=Harry Stahl;1304957]
Zitat:
Exemplarisch zeigt mein neuester Versuch, dass das Mobile-Tutorium eher Frust als Erkenntnisse bringt. ----------------------------------------------------------------------------- auf ms-help://embarcadero.rs_xe5/rad/Mobile-Tutorial'3A_Aufnehmen_und_Teilen_von_Bildern_(iOS_ und_Android).html steht: Legen Sie im Formular-Designer die folgenden Komponenten ab: TToolBar Ziehen Sie drei TButton-Komponenten auf die Symbolleiste. Jede Schaltfläche verwendet andere Symbole. Legen Sie die Eigenschaft StyleLookup der drei Schaltflächen auf cameratoolbuttonbordered, searchtoolbuttonbordered bzw. actiontoolbuttonbordered fest. Die Eigenschaft StyleLookup ist im Button nicht vorhanden! Oder gibt es "Selbstverständlichkeiten", die nicht beschrieben, aber dennoch ausgeführt werden müssen? Genau das wären die Überfliegernachlässigkeiten, die so oft die "Arbeit nach Anleitung" so schwierig machen. Wie schon geschrieben, blockiert der Ladevorgang den ganzen Rechner. Soweit zur Information im Mobile-Tutorium. |
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Tipp: So groß sind die Videos nicht. Bei Aldi kann man sich für 10,-- Euro schon eine Mobile-Datenkarte kaufen, die 1,5 GB Datenvolumen innerhalb eines Monats erlaubt. Zur not kann man sich so die Videos ansehen. Zitat:
Übrigens zur Frustvermeidung noch ein weiterer Tipp: Wenn es um Android-Entwicklung geht, auf keinen Fall mit dem Emulator arbeiten, das ist alles viel zu langsam und zu umständlich. Das beste ist, ein Android-Device (Tablet, Smartphone) anzuschließen und das Programm direkt dort ausführen zu lassen. |
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Zitat:
Man kann ja auch mit
Delphi-Quellcode:
sich ein (Fmx-)Objekt aus dem Style holen und dann dort Farbe etc. setzen - funktioniert auch soweit. Bei TPanel ist es allerdings so, dass der Style nur aus einem TRectangle besteht und obige Funktion findet dieses Objekt (panelstyle) nicht, da es scheinbar nur in Unterobjekten sucht. An den Panelstyle (oberstes Objekt) kommt man zwar auch mittels
FindStyleResource('...')
Delphi-Quellcode:
heran, aber da dieses protected ist, muss man sich eine Klasse ableiten, die dies veröffentlicht und dann einen harten Typecast machen. Funktioniert; aber ist das so gewollt oder gibt es eine andere/bessere Möglichkeit?
TStyledControl.FResourceLink
|
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Eine andere / bessere Variante, um an den Original-Panelstyle ranzukommen, kenne ich auch nicht. Wenn man sich mal die FindStyleRessource-Implementierung ansieht, bin ich mir gar nicht so sicher, ob das evtl. ein Fehler ist, die Style-Ressource hier in diesem Falle nicht zurückzuliefern..
Aber statt hier mit Hacks zu arbeiten, kann man sich auch einfach eine 2. StyleRessource erstellen (mit den notwendigen Abweichungen) und dann dem Object (also hier dem Panel) einfach diesen Style (Eigenschaft StyleLookup) zuweisen (also z.B. ein PanelStyleRed, ein PanelStyleBlue). |
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Zitat:
Zitat:
|
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
[QUOTE=Harry Stahl;1304932]
Zitat:
Auslöser der Aktion soll Button1 sein (Procedure Button1Click). Panel1 wurde aus der Tool-Palette kreiert. Wer erkennt wo, dass es sich um Panel1 handelt? Panel1.canvas. nützt nix. Das ist so ein Beispiel, dass nur den Schluss zulässt, dass Dummis hier nichts zu suchen haben. Aber wer hilft angemessen,d.h. ausreichend ausführlich? Danke für die Geduld. |
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Zitat:
|
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Zitat:
Dem OnPaint wird das Canvas mitgegeben, auf das man draufmalen kann. |
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
[QUOTE=Olli73;1305040][QUOTE=Sel2012;1305038]
Zitat:
Danke! |
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Zitat:
Dank (23:01 by Olli73) habe ich die Ereignisse erweitern können. |
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Liste der Anhänge anzeigen (Anzahl: 1)
[QUOTE=Harry Stahl;1304932]
Zitat:
Aus der Ruhelage (Blau) werden über Button1 oder Button2 andere Farben gewählt. Das klappt ganz stabil. Die Zuordnung / Farbwahl findet über <if> statt. Ich wüsste aber gern den Code für den Aufruf von procedure TForm2.Panel1Paint(Sender: TObject; Canvas: TCanvas;const ARect: TRectF); direkt über z.B. Button1Click. |
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Dann musst Du diesen Status irgendwie hinterlegen und dann im Paint-Event auswerten und entsprechend reagieren.
|
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Zitat:
Ich suche sowas: procedure machwas(zahl: integer); begin zahl := zahl+5; end; procedure aufruf; var einezahl: integer; begin einezahl := 5; machwas(einezahl); end; Nur eben ausgelöst mit Button1Click. <machwas(einezahl);> müsste nur an procedure Panel1Paint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); angepasst werden. Aber wie? const ARect: TRectF); |
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Nein, das ist keine gute Idee, im Button-Klick-Event direkt auf das Panel zeichnen zu wollen. Der richtige Ort ist hier immer das OnPaint-Event selber. Du kannst allenfalls einen Wert im Button-Event setzten, und ein Repaint der Komponente auslösen, wo dann der Wert berücksichtigt wird.
Das nur als Antwort. Aber generell möchte ich zur Sicherheit nur einmal sagen, dass das von mir gezeigte Beispiel nur als Antwort auf Himitsus Bemerkung zum Canvas-zeichnen unter FMX war. Ich würde das nur in besonderen Spezialfällen nutzen. Viel einfacher wäre, Du definierst Dir benutzerdefinierte Styles (mit unterschiedlichen Farben) und weist dann dem Panel einfach die unterschiedlichen Styles zu. Oder Du verwendest direkt das TRectangle, da kannst Du ganz einfach zur Laufzeit (auch im Button-Klick-Event) die Eigenschaft "Fill" mit der gewünschten Farbe setzen. |
AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
Den Status ( Werte für Auswertung oder absolute Farbe) z.B. in .Tag ablegen und dann im Paint auswerten
In Klick-Event des Buttons:
Delphi-Quellcode:
Im Paint:
Panel1.Tag := TAlphaColor.Blue;
Panel1.Repaint;
Delphi-Quellcode:
if Sender.Tag <> 0 then
begin canvas.BeginScene; canvas.Fill.Kind := TBrushKind.bkSolid; Canvas.Clearrect (Arect, (Sender as TComponent).Tag); canvas.EndScene; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:37 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