Page 3 of 3 FirstFirst 1 2 3
Results 31 to 44 of 44

Thread: Scherm beveiliging uitschakelen met code ?

  1. #31
    Als ik die regel gebruik, dan krijg ik de melding dat Form3 niet bestaat (dat klopt, ik weet nog niet hoe ik er een form bij kan plaatsen).
    En als ik die regel wijzig in Form1, dan krijg ik weer dezelfde melding als hierboven (zie post #25).

  2. #32
    Maak eens gewoon een nieuw project met één leeg form en zet deze regel (incl. de 2 uses-units) dan eens onder de application.initialize... En verder niets.

    Werkt het dan wel?

  3. #33
    Ik lees hier iets dat ik niet ken, namelijk "application.initialize"

    Ik ken diverse Events van het Form, zoals FormActivate etc.
    Maar "application.initialize" zegt mij niets, dus mogelijk gaat het daar fout.

  4. #34
    Quote Originally Posted by MMSoft View Post
    Ik lees hier iets dat ik niet ken, namelijk "application.initialize"
    Ik ken diverse Events van het Form, zoals FormActivate etc.
    Maar "application.initialize" zegt mij niets, dus mogelijk gaat het daar fout.
    Dat begrijp ik nou weer niet. Je schrijft zelf dit in jouw post (waar ik ook zei dat je hem mist plaatsen)...
    Quote Originally Posted by MMSoft View Post
    ik gebruik nu alleen nog maar deze regels:
    Code:
     Application.Initialize;
     SharedActivity.getWindow.addFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON);
     //Application.CreateForm(TForm3, Form3);
     Application.Run;
    En krijg nog steeds dezelfde melding.
    Die application.initialize staat in je dpr (project) source. Maar je had die al gevonden want je geeft hier zelf al aan daar regels gewijzigd te hebben.

    Of had je dit in je form-unit gezet?? Ja... dan gaat het goed mis

  5. #35
    Ik was bezig in: unit Unit1; //Het Form-unit dus.

    Ik ben aan het zoeken hoe ik op de juiste plaats kom...

    Edit:
    Gevonden: Project -> View Source

    Het werkt !!!!
    Last edited by MMSoft; 27-Oct-16 at 19:59.

  6. #36

  7. #37
    Ik leer dagelijks bij, het is voor mij maar een hele leuke hobby zoals je weet.
    Daarom ben dan ook heel erg blij met je hulp !

  8. #38
    Het werkt perfect, maar is het ook mogelijk om dit met code weer 'uit' te schakelen ?

    "FLAG_KEEP_SCREEN_OFF" bestaat namelijk niet, en ook
    "FLAG_KEEP_SCREEN_CLEAR" niet. Dus is het wel mogelijk om deze Flag weer uit te zetten ?

  9. #39
    Er bestaat een clearFlags() als tegenhanger van de addFlags().
    Die moet je dan ook met FLAG_KEEP_SCREEN_ON aanroepen.

  10. #40
    Ik heb er dit van gemaakt:

    Code:
    procedure TForm1.Button6Click(Sender: TObject);
    begin
     SharedActivity.getWindow.clearFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON); 
    end;
    Dit geeft geen fout melding tijdens het compileren, maar wel als ik op deze Button druk (fout melding zie post #25)
    Dus mogelijk gaat dat niet vanuit een Form Unit ?

  11. #41
    Ja. Of die thread-melding nou is omdat het echt een fout is weet ik niet maar alle oplossing doen het zo. (werken er nou werkelijk zo weinig mensen met Delphi/Android dat dit zo weinig voorkomt?)

    Je kunt eens spelen met onderstaand (gewoon de exception negeren).
    Ik kreeg het wel voor elkaar om het scherm aan te laten bij twee keer drukken maar de exception blijft ie geven.
    Raar.

    Delphi Code:
    1. procedure TForm4.btnSchermLockAanClick(Sender: TObject);
    2. begin
    3.   try
    4.     SharedActivity.getWindow.addFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON);
    5.     Label1.Text := TimeToStr(Now) + 'Gelukt';
    6.   except
    7.     Label1.Text := TimeToStr(Now) + 'Exception';
    8.   end;
    9. end;
    10.  
    11. procedure TForm4.btnSchermLockUitClick(Sender: TObject);
    12. begin
    13.   try
    14.     SharedActivity.getWindow.clearFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON);
    15.     Label1.Text := TimeToStr(Now) + 'Gelukt';
    16.   except
    17.     Label1.Text := TimeToStr(Now) + ' Exception';
    18.   end;
    19. end;

  12. #42
    Als het scherm eenmaal aanblijft, dan kan ik zo vaak als ik wil op "SchermLockUit" drukken, maar het scherm blijft dan Aan (als ik een tijdje niets op het scherm gedaan heb), en telkens als ik druk krijg ik de foutmelding.

    FLAG_KEEP_SCREEN_ON, werkt prima in de "application.initialize", maar als je de scherm beveiliging met code Aan en Uit wilt schakelen, kan je in mijn ogen mogelijk beter "Wake Lock" gebruiken (dat werkt bij mij perfect).

  13. #43
    OPGELOST !!!!!

    Quote Originally Posted by MMSoft View Post
    ... maar als je de scherm beveiliging met code Aan en Uit wilt schakelen, kan je in mijn ogen mogelijk beter "Wake Lock" gebruiken (dat werkt bij mij perfect).
    Dat is natuurlijk de "makkelijk" weg kiezen. Het moet mogelijk zijn in Android, dus zeggen dat je "dan maar beter" Wake Lock kunt gebruiken is "opgeven"

    Maar ik heb eindelijk de oplossing gevonden. Blijkbaar draait de code van een Form in Android toch in een andere Thread (of dat denkt Delphi in ieder geval) dus er is een redelijk simpele oplossing om dit op te lossen. Gebruik CallInUIThreadAndWaitFinishing(procedure) om de addFlags/clearFlags uit te voeren vanuit de main-thread.

    Dit werkt voor mij perfect (zonder exceptions):
    Delphi Code:
    1. uses
    2.   FMX.Helpers.Android,
    3.   Androidapi.Helpers,
    4.   Androidapi.JNI.GraphicsContentViewText;
    5.  
    6. procedure TForm1.btnKeepScreenOnAddClick(Sender: TObject);
    7. begin
    8.   CallInUIThreadAndWaitFinishing(
    9.     procedure
    10.     begin
    11.       SharedActivity.getWindow.addFlags(
    12.         TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON);
    13.     end);
    14. end;
    15.  
    16. procedure TForm1.btnKeepScreenOnClearClick(Sender: TObject);
    17. begin
    18.   CallInUIThreadAndWaitFinishing(
    19.     procedure
    20.     begin
    21.       SharedActivity.getWindow.clearFlags(
    22.         TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON);
    23.     end);
    24. end;

  14. #44
    Het werkt perfect !

    Bedankt voor je hulp !!!

Page 3 of 3 FirstFirst 1 2 3

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •