TPageControl Verhalten

Rund um die LCL und andere Komponenten

TPageControl Verhalten

Beitragvon MacWomble » 24. Sep 2017, 19:43 TPageControl Verhalten

Ich habe eben etwas festgestellt, was mich verwirrt:

Im Code unten wird das Pagecontrol pcAuftrag auf die Seite 'SeitePosition' geschickt.
Ich habe erwartet, dass dies mit diesem Befehl unverzüglich passiert. Dennoch sehe ich im Tracemode, dass die aktive Seite bis zum Ende der Prozedur erhalten bleibt.

Code: Alles auswählen
      if ExecInsertSQL(dtmBasis.qrySQL, Suchtext, LastRec) then
      begin
        pcAuftrag.ActivePage := SeitePosition;
 
 
        Suchtext := 'Select * from AuftragsPositionen where idauftragsposition = ' + IntToStr(LastRec);
        OpenSQLSet(qryPosition, Suchtext);
        DoCalc;
 
        Suchtext := 'fk_auftrag=' + qryAuftragsListe.FieldByName('idauftrag').AsString;
        if FindRecords('AuftragsPositionen', 'idauftragsposition', Suchtext, C, False) then
          SeitePositionsListe.Caption := 'Auftragsposition (' + C + ')';
 
         if IDArtikel = 0 then
          dbeArtikelnummer.SetFocus
        else
        if IDPreis = 0 then
          dbeZeit.SetFocus
        else
          dbeMenge.SetFocus;
      end
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
MacWomble
 
Beiträge: 367
Registriert: 17. Apr 2008, 00:59
Wohnort: Freiburg
OS, Lazarus, FPC: Mint 18.1 Cinnamon / CodeTyphon Generation V Plan 6.00 (FPC 3.1.1) | 
CPU-Target: 32/64 Nit
Nach oben

Beitragvon Michl » 24. Sep 2017, 20:12 Re: TPageControl Verhalten

Da die LCL mit Messages mit dem OS kommuniziert, kann das durchaus sein. Möglicherweise hilft nach dem pcAuftrag.ActivePage := SeitePosition; ein Application.Processmessages;.
Code: Alles auswählen
type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 
Michl
 
Beiträge: 2169
Registriert: 19. Jun 2012, 11:54
OS, Lazarus, FPC: Win7 Laz 1.7 Trunk FPC 3.1.1 Trunk | 
CPU-Target: 32Bit/64bit
Nach oben

Beitragvon MacWomble » 25. Sep 2017, 00:34 Re: TPageControl Verhalten

Danke, das ist es.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
MacWomble
 
Beiträge: 367
Registriert: 17. Apr 2008, 00:59
Wohnort: Freiburg
OS, Lazarus, FPC: Mint 18.1 Cinnamon / CodeTyphon Generation V Plan 6.00 (FPC 3.1.1) | 
CPU-Target: 32/64 Nit
Nach oben

Beitragvon Michl » 25. Sep 2017, 15:28 Re: TPageControl Verhalten

Nur als gut gemeinter Hinweis: Versuche die Programm-Logik möglichst vom Formular zu entkoppeln. Dann ist ein Application.Processmessages eigentlich nicht notwendig. Bei größeren Projekten wird es sonst schnell unübersichtlich.
Code: Alles auswählen
type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 
Michl
 
Beiträge: 2169
Registriert: 19. Jun 2012, 11:54
OS, Lazarus, FPC: Win7 Laz 1.7 Trunk FPC 3.1.1 Trunk | 
CPU-Target: 32Bit/64bit
Nach oben

• Themenende •

Zurück zu Komponenten und Packages



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste

porpoises-institution
accuracy-worried