AGB  ·  Datenschutz  ·  Impressum  







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

FireMonkey Problem

Ein Thema von arnof · begonnen am 16. Jul 2018 · letzter Beitrag vom 23. Feb 2019
Antwort Antwort
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.561 Beiträge
 
Delphi 12 Athens
 
#1

AW: FireMonkey Problem

  Alt 16. Jul 2018, 23:10
Hi,

ich mache gerade eine Anwendung die "überall" laufen soll, also in Firemonkey.

Nun erster Test mit Win = ok, Anroid Zugriffverletzung ......

Tokyo 10.2.x:

Warum: TMultiView, ich lasse es erscheinen und dann

Delphi-Quellcode:
procedure TCommonCustomForm.TriggerControlHint(const AControl: IControl);
var
  LHintString: string;
  LControl: IControl;
begin
  if AControl.HasHint then
    LControl := AControl
  else
    LControl := nil;
  if LControl <> FLastHinted then
  begin
    if Application.ShowHint and (LControl <> nil) then
    begin
      SetLastHinted(AControl);
      LHintString := AControl.GetHintString;
      if (AControl.GetHintObject = nil) or not (AControl.GetHintObject is THint) then
      begin
        SharedHint.SetHint(GetShortHint(LHintString));
SharedHint ist nil, dann knall es .....

Hint bei Button der auf dem Multiview ist entfernt nun gehts .....
Generell ist es kein Problem die Hint-Properties gesetzt zu haben, die werden auf den mobilen Plattformen einfach nicht berücksichtigt.

Ich weiß zwar nicht, was Du da überhaupt machst, aber Du solltest es genau so machen: Wenn Dein Code auf einer mobilen Plattform läuft, dann braucht er doch gar nicht ausgeführt werden, da dort keine Hints angezeigt werden. Kannst Du ja dann den Code mit den entsprechenden IFDEFS außen vor lassen...
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.767 Beiträge
 
Delphi 12 Athens
 
#2

AW: FireMonkey Problem

  Alt 16. Jul 2018, 23:33
Generell ist es kein Problem die Hint-Properties gesetzt zu haben, die werden auf den mobilen Plattformen einfach nicht berücksichtigt.
In diesem Fall ist das aber ein Fehler in FMX. Der Zugriff auf SharedHint kann nil zurückliefern, da dort bei Bedarf THint.CreateNewInstance aufgerufen wird (eben um eine Instanz zu erzeugen). Allerdings sagt die Hilfe zu CreateNewInstance:
Zitat:
Returns an instance created by the first available registered class. This method can return nil if there are no classes registered or none of the registered classes can create a THint instance.
Es werden aber nur für Windows und MacOS solche Klassen registriert. Deswegen liefert SharedHint auf allen anderen Systemen nil und der Aufruf in TriggerControlHint verursacht eine Zugriffsverletzung.

Mein Code-Schnipsel weiter oben soll das beheben, in dem er eine Dummy-Klasse registriert, die in dem oben angesprochenen Fall einspringt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.561 Beiträge
 
Delphi 12 Athens
 
#3

AW: FireMonkey Problem

  Alt 18. Feb 2019, 16:35
Das Problem ist anscheinend immer noch nicht gefixt (also auch nicht in 10.3.1).

Nach einer verzweifelten Suche von mehreren Stunden nach einem unerklärlichen Fehler habe ich hier endlich dieses Problem für IOS und Android ausfindig machen können.

Wurde das von jemanden gemeldet?
Wenn nein, würde ich einen Eintrag machen.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.165 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: FireMonkey Problem

  Alt 23. Feb 2019, 14:09
QC inkl. Workaround

Mavarik
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:54 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