AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Verständnisprobleme mit FMX

Ein Thema von Ookami · begonnen am 6. Mai 2015 · letzter Beitrag vom 10. Mai 2015
 
Benutzerbild von Ookami
Ookami

Registriert seit: 20. Nov 2009
Ort: Baden Württemberg
77 Beiträge
 
Delphi 2009 Architect
 
#12

AW: Verständnisprobleme mit FMX

  Alt 7. Mai 2015, 19:43
Ok, das habe ich so zur Kenntnis genommen, etwas zerknirscht, da sich die Frames bislang eigentlich als sehr gut funktional erwiesen haben.
In meinem Prototypen (auf VCL-Basis) hat das sehr gut funktioniert. Daher verstehe ich das Problem nicht ganz.

Der Frame selbst wird nur einmal instanziiert, also denke ich dass das nicht wirklich das Problem sein sollte.
Ich wollte bewusst nicht mit mehreren Instanzen arbeiten.

Code:
     if FontDialogFrame=NIL then
     begin
          FontDialogFrame := TFontDialogFrame.Create(Self);
         
          FontDialogFrame.Setup;
     end;
     if FontDialogFrame<>NIL then
     begin
          FontDialogFrame.AssignLabels;

          FontDialogFrame.Position.X := LessonMenuFrame.Position.X + LessonMenuFrame.Width + 50;
          FontDialogFrame.Position.Y := LessonMenuFrame.Position.Y + 150;

          FontDialogFrame.onChangeFont := FontChange;
     end;

wenn ich den Button "Landesschrift" (linkes Bild im vorherigen Post) drücke, wird ein Event ausgelöst,

Code:
     MyFont := TMBFontFMX.Create;
     
     MyFont.FontName := MainForm.Vocabulary[cBxLanguages.ItemIndex].LanguagePack.Lang1FontName;
     MyFont.FontSize := StrToInt(MainForm.Vocabulary[cBxLanguages.ItemIndex].LanguagePack.Lang1FontSize);
     MyFont.FontStyle := MBTools.ReturnFontStyle(StrToInt(MainForm.Vocabulary[cBxLanguages.ItemIndex].LanguagePack.Lang1FontStyle));
     MyFont.FontColor := StrToInt64(MainForm.Vocabulary[cBxLanguages.ItemIndex].LanguagePack.Lang1FontColor);
     
     if Assigned(onWantToChangeFont) then onWantToChangeFont(Sender, cBxLanguages.ItemIndex, 1, hlp, MyFont);
     MyFont.Free;
Der wiederum ruft dann den "Dialog" (rechtes Bild)

Code:
Procedure TSettingsFrm.CallChangeFontFrame(Sender: TObject; Language, Track : Integer; Value : String; Font: TMBFontFMX);
begin
     FontDialogFrame.Parent := TC;
     FontDialogFrame.fFontColor := Font.FontColor;
     FontDialogFrame.Fontname := Font.FontName;
     FontDialogFrame.FontSize := Font.FontSize;
     FontDialogFrame.FontStyle := Font.FontStyle;
     FontDialogFrame.Example := Value;
     FontDialogFrame.LanguageNum := Language;
     FontDialogFrame.FontNum := Track;
     
     FontDialogFrame.ShowFrame;
end;
Der wiederum sollte dann eigentlich das ausführen, was wir da vorher gemacht haben.

Code:
procedure TFontDialogFrame.ExamplePanelEvenPaint(Sender: TObject; Canvas: TCanvas);
Var      aRect : TRectF;
begin
     aRect := TPaintBox (Sender).BoundsRect;
     
     with TPaintBox (Sender).Canvas Do
     begin
          BeginScene;
           Fill.Color := MainForm.EvenRowColor;
           FillRect(Arect, 1,1, AllCorners,1);

           Font.Family := Fontname;
           Font.Style := FontStyle;
           Font.Size  := FontSize;
           Fill.Color := FontColor;
           FillText (ARect, fExample, True, 1, [], TTextAlign.Center, TTextAlign.Center);

          EndScene;
     end;
end;
Nachdem die Hintergrundfarben ja stimmen und alle anderen Daten auch korrekt ankommen, wundere ich mich doch, warum keine der Komponenten reagiert.
bzw. die Anzeige reagiert dann, wenn ich das mache - also auskommentiere
Code:
          // Font.Family := Fontname;
          //  Font.Style := FontStyle;
          //  Font.Size  := FontSize;
aber dann zeigt es mir natürlich keinen Font mehr korrekt an.

ansonsten ist das Ergebnis:
Versuch 1: Starte ich neu und stelle gleich "Französisch" ein, kommt nix. Wechsle ich auf "Deutsch" wird es angezeigt.
Versuch 2: Starte ich neu und stelle gleich "Deutsch" ein, wird das angezeigt. Wechsle ich auf "Französisch" wird es nicht angezeigt. wieder zurück auf "Deutsch" - funktioniert.
Wolfgang
Grüße und Danke
Wolfgang

Geändert von Ookami ( 7. Mai 2015 um 19:49 Uhr) Grund: war ein bisschen konfus
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz