Delphi-PRAXiS

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/)
-   -   Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel (https://www.delphipraxis.net/185453-enttaeuschung-kein-image-panel-individueller-farbumschag-bei-fontcolor-und-panel.html)

Sel2012 12. Jun 2015 09:39

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:

Sir Rufo 12. Jun 2015 09:50

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.

himitsu 12. Jun 2015 10:23

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.

Mavarik 12. Jun 2015 10:28

AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
 
Zitat:

Zitat von Sel2012 (Beitrag 1304912)
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?

42!

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

Mavarik 12. Jun 2015 10:32

AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
 
Zitat:

Zitat von himitsu (Beitrag 1304917)
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.

Na zum glück... Firemonkey funktioniert halt ganz anders... Wäre ja auch fatal, wenn die GPU beim Rendern erst mal eine CPU Routine aufrufen müsste um eine Farbe zu ermitteln. Besondern, wenn da noch ein Filter usw. drüber liegen würde...

himitsu 12. Jun 2015 10:34

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:

Wenn das Bild nicht vorhanden ist, wird es aus der nächst kleineren Auflösung hoch skaliert.
Hochscaliert?

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)

Sel2012 12. Jun 2015 10:51

AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
 
Zitat:

Zitat von Sir Rufo (Beitrag 1304914)
Die Lösung heißt: Schau in die Dokumentation!

Vielen Dankfür den Versuch einer Antwort. Ich will bestimmt nicht eine Komplettlösung, aber hätte doch gern etwas gezieltere Hinweise.
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...)

Photoner 12. Jun 2015 10:54

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

Harry Stahl 12. Jun 2015 11:13

AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
 
Zitat:

Zitat von Sel2012 (Beitrag 1304912)
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:

Sir Rufo hat durchaus Recht, es steht alles in der Dokumentation. Es ist leider nur etwas müßig, das rauszusuchen und typischerweise ist man erst noch so in der VCL-Denke gefangen, dass man sich am Anfang etwas schwer tut.

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.

Harry Stahl 12. Jun 2015 11:18

AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
 
Zitat:

Zitat von himitsu (Beitrag 1304917)
Jupp, Rahmen weg vom TPanel, geht nicht. Dafür gibt TLayout.

Das stimmt so nicht. Man kann auch für das TPanel einen benutzerdefinierten Stil anlegen, wo man für den Panelstyle die "Stroke" Eigenschaft auf "None" setzt, dann hat das TPanel keinen Rahmen.

Harry Stahl 12. Jun 2015 11:39

AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
 
Zitat:

Zitat von himitsu (Beitrag 1304917)
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.

Auch hierzu muss man ergänzen, dass es zwar nicht über Canvas.brush.color geht, aber eben z.B. so:

Delphi-Quellcode:
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;
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.

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.

BadenPower 12. Jun 2015 11:48

AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
 
Zitat:

Zitat von Sel2012 (Beitrag 1304925)
Die ganze Doku durchzuackern, finde ich nicht besonders hilfreich.

Wenn ich etwas neues habe und dies auch benutzen und verstehen will, dann ist dies aber genau der richtige Weg, welcher dauerhaft zum Ziel führt.

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.

Sel2012 12. Jun 2015 12:25

AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
 
Zitat:

Zitat von Photoner (Beitrag 1304926)
ich finde die Samples ganz nützlich
C:\Users\Public\Documents\RAD Studio\12.0\Samples\FireMonkeyMobile\Delphi\PhotoE ditorDemo

Vielen Dank für den Tipp. Ich habe nur XE5. Über die Hälfte der Samples bekomme ich nicht zum Laufen. Nach welchen Kriterien einige laufen, andere nicht, kann ich nicht erkennen. Deshalb wäre erklärte Theorie schön.
Obige, vom Namen her interessante Datei gibt es noch nicht unter XE5.

...dann ackere ich mal systematisch...:-D

himitsu 12. Jun 2015 12:50

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:

Zitat von Harry Stahl (Beitrag 1304929)
Das stimmt so nicht. Man kann auch für das TPanel einen benutzerdefinierten Stil anlegen, wo man für den Panelstyle die "Stroke" Eigenschaft auf "None" setzt, dann hat das TPanel keinen Rahmen.

Man muß aber erstmal einen eigenen Stil anlegen.
"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.

Sel2012 12. Jun 2015 13:04

AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
 
[QUOTE=Sel2012;1304938]
Zitat:

Zitat von Photoner (Beitrag 1304926)
C:\Users\Public\Documents\RAD Studio\12.0\Samples\FireMonkeyMobile\Delphi\PhotoE ditorDemo

Obige, vom Namen her interessante Datei gibt es noch nicht unter XE5.

Doch, habe sie gefunden unter Ordner <Müll> für ausrangierte unklare Fälle. Ein Design wird nicht angezeigt. Beim Hochladen läuft/zählt sich die Datei tot. Wo steht etwas zu solcher Situation?
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?

mkinzler 12. Jun 2015 13:10

AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
 
Z.B. von Harry Stahl

http://www.amazon.de/s/ref=nb_sb_nos...rds=firemonkey

Harry Stahl 12. Jun 2015 14:39

AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
 
Zitat:

Zitat von Sel2012 (Beitrag 1304938)
Ich habe nur XE5.

OK, kein Problem mit XE5 geht das alles natürlich auch. Gerade fiel mir noch ein, dass ich schon vor längerer Zeit zu dieser typischen Neueinsteiger-Frage mal ein kurzes Video gemacht habe, bei Bedarf hier der Link:

https://www.youtube.com/watch?v=ri933tgWe04

Sel2012 12. Jun 2015 18:01

AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
 
[QUOTE=Harry Stahl;1304957]
Zitat:

Zitat von Sel2012 (Beitrag 1304938)
...ein kurzes Video gemacht habe...

Danke. Wenn mein Dorfnetz in einem Monat wieder zumutbar läuft, sehe ich mir das gerne an.

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.

Harry Stahl 12. Jun 2015 19:43

AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Sel2012 (Beitrag 1304985)
[Danke. Wenn mein Dorfnetz in einem Monat wieder zumutbar läuft, sehe ich mir das gerne an.

Mein Video ist da ja nicht so wichtig. Aber ein vernünftiger Internetzugang wäre schon von Bedeutung, weil auch in XE5 schon unter der Registerkarte "Beginnen Sie hier" einige Code-Beispiele mit dazu verlinkten Videos angezeigt werden.

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:

Zitat von Sel2012 (Beitrag 1304985)
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?

Also ich sehe diese Eigenschaft hier, siehe Screenshot in der Anlage.

Ü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.

Olli73 13. Jun 2015 14:49

AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
 
Zitat:

Zitat von Harry Stahl (Beitrag 1304932)
Delphi-Quellcode:
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;
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.

Hinweis und Zusatzfrage:

Man kann ja auch mit
Delphi-Quellcode:
FindStyleResource('...')
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
Delphi-Quellcode:
TStyledControl.FResourceLink
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?

Harry Stahl 13. Jun 2015 17:47

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

Olli73 13. Jun 2015 18:48

AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
 
Zitat:

Zitat von Harry Stahl (Beitrag 1305028)
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..

Danke für die Bestätigung.

Zitat:

Zitat von Harry Stahl (Beitrag 1305028)
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).

Ja, das ist die einfachere/bessere Variante.

Sel2012 13. Jun 2015 20:31

AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
 
[QUOTE=Harry Stahl;1304932]
Zitat:

Zitat von himitsu (Beitrag 1304917)

Delphi-Quellcode:
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;

Es ist, als würde ich bei Null anfangen. Beim <Ausführen> klemmt's (ohne Fehlermeldung).
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.

Sel2012 13. Jun 2015 21:22

AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Sel2012 (Beitrag 1304985)
Die Eigenschaft StyleLookup ist im Button nicht vorhanden!

Also ich sehe diese Eigenschaft hier, siehe Screenshot in der Anlage.

Bei mir nicht (grübel, grübel). Siehe Anlage.

Olli73 13. Jun 2015 22:01

AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
 
Zitat:

Zitat von Sel2012 (Beitrag 1305038)
Zitat:

Zitat von Sel2012 (Beitrag 1304985)
Die Eigenschaft StyleLookup ist im Button nicht vorhanden!

Also ich sehe diese Eigenschaft hier, siehe Screenshot in der Anlage.

Bei mir nicht (grübel, grübel). Siehe Anlage.

Da fehlt aber so einiges. Klick mal im Objektinspektor mit der rechten Maustaste auf "Eigenschaften" und dann auf "-> Ansicht -> Alle"

himitsu 13. Jun 2015 22:29

AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
 
Zitat:

Wer erkennt wo, dass es sich um Panel1 handelt?
Die Parameter des Events hast du gesehn?

Dem OnPaint wird das Canvas mitgegeben, auf das man draufmalen kann.

Sel2012 14. Jun 2015 10:14

AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
 
[QUOTE=Olli73;1305040][QUOTE=Sel2012;1305038]
Zitat:

Zitat von Sel2012 (Beitrag 1304985)
Die Eigenschaft StyleLookup ist im Button nicht vorhanden!

Da fehlt aber so einiges. Klick mal im Objektinspektor mit der rechten Maustaste auf "Eigenschaften" und dann auf "-> Ansicht -> Alle"

Hurra, toll! Da muss man wirklich drauf gestoßen werden. Habe wohl tausend verkehrte Seiten gelesen. Warum ein Großteil der Ereignisse ausgeblendet wurde, bleibt wohl ein Geheimnis. Wäre nicht im Traum darauf gekommen, dass es für <Eigenschaften> einen Rechtsklick gibt.
Danke!

Sel2012 14. Jun 2015 10:18

AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
 
Zitat:

Zitat von himitsu (Beitrag 1305041)
Zitat:

Wer erkennt wo, dass es sich um Panel1 handelt?
Die Parameter des Events hast du gesehn?
Dem OnPaint wird das Canvas mitgegeben, auf das man draufmalen kann.

Ja, Danke.
Dank (23:01 by Olli73) habe ich die Ereignisse erweitern können.

Sel2012 14. Jun 2015 14:27

AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
 
Liste der Anhänge anzeigen (Anzahl: 1)
[QUOTE=Harry Stahl;1304932]
Zitat:

Zitat von himitsu (Beitrag 1304917)
Delphi-Quellcode:
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;
Das zeichnet das Panel in Gelb,...

Es geht auch ganz simpel(siehe Anhang) Anfängerglück (?):
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.

mkinzler 14. Jun 2015 14:54

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.

Sel2012 14. Jun 2015 15:12

AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel
 
Zitat:

Zitat von mkinzler (Beitrag 1305059)
Dann musst Du diesen Status irgendwie hinterlegen und dann im Paint-Event auswerten und entsprechend reagieren.

Tschulligung, das ist so, als würde ich mit meinem Goldfisch reden (bitte nicht böse sein - Programmierer können wohl nicht anders kommunizieren).
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);

Harry Stahl 14. Jun 2015 15:16

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.

mkinzler 14. Jun 2015 15:34

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:
  Panel1.Tag := TAlphaColor.Blue;
  Panel1.Repaint;
Im Paint:
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