AGB  ·  Datenschutz  ·  Impressum  







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

TThread.synchronize atomar?

Ein Thema von Olli73 · begonnen am 18. Aug 2022 · letzter Beitrag vom 18. Aug 2022
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.378 Beiträge
 
Delphi 12 Athens
 
#6

AW: TThread.synchronize atomar?

  Alt 18. Aug 2022, 17:20
Dort, wo du jetzt auf den Button klicken kannst, da könnte auch ein Synchronize rein kommen.

Text kopieren und im FormDesigner einer neuen VCL-Form ein beherztes Strg+V
Code:
object Timer1: TTimer
  OnTimer = Timer1Timer
  Left = 56
  Top = 24
end
object Button1: TButton
  Left = 40
  Top = 88
  Caption = 'Button1'
  TabOrder = 0
  OnClick = Button1Click
end
object Button2: TButton
  Left = 40
  Top = 128
  Caption = 'Button2'
  OnClick = Button2Click
end
object Memo1: TMemo
  Left = 160
  Top = 40
  Width = 345
  Height = 297
  ScrollBars = ssVertical
end
Timer und Buttons doppelt anklicken (oder den unteren Quellcode vorher in die PAS einfügen)
und die Funktionen mit folgendem ersetzen
Delphi-Quellcode:
var gutesC: Integer; // oder als Private in die Form

procedure TForm1.Button1Click(Sender: TObject);
begin
  Inc(gutesC);
  var C := gutesC;
  Memo1.Lines.Add('Button1-Start ' + C.ToString);
  for var i := 0 to 15 do begin
    Memo1.Lines.Add('Button ' + C.ToString + ' ' + i.ToString);
    Sleep(333);
    Application.ProcessMessages;
  end;
  Memo1.Lines.Add('Button1-Ende ' + C.ToString);
end;

var bösesI: Integer; // oder als Private in die Form
procedure TForm1.Button2Click(Sender: TObject);
begin
  Inc(gutesC);
  var C := gutesC;
  Memo1.Lines.Add('Button2-Start ' + C.ToString);
  repeat
    Inc(bösesI);
    Memo1.Lines.Add('Button ' + C.ToString + ' ' + bösesI.ToString);
    Sleep(333);
    Application.ProcessMessages;
  until bösesI mod 15 = 0;
  Memo1.Lines.Add('Button2-Ende ' + C.ToString);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Memo1.Lines.Add('Timer');
end;

Codes ab Delphi 10.irgendwas
Ein Therapeut entspricht 1024 Gigapeut.
  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 19:48 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