AGB  ·  Datenschutz  ·  Impressum  







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

Threads und Zugreifen auf Controls

Ein Thema von Matze · begonnen am 28. Dez 2005 · letzter Beitrag vom 29. Dez 2005
 
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

Threads und Zugreifen auf Controls

  Alt 28. Dez 2005, 16:15
Hallo,

vorweg: Ich kenne dein Tutorial Luckie, nur möchte ich vorerst die Thread-Klasse der VCL nutzen, da das jetzt für mich übersichtlicher ist (es ist meien erste Anwendung, wo ich Threads verwende).

So, nun zu meinem Problem:
Ich parse einen Text im OnKeyDown eines Memos, was bei langem Text etwas dauern kann (1-2 Sek. vielleicht). Löse ich das ohne Thread, kann man logischerweise kaum tippen, daher dachte ich, ich lager das in einen extra Thread aus.

Den Thread möchte ich so in der Art aufrfen:

Delphi-Quellcode:
procedure TMyThread.Execute;
begin
  if myMemo <> nil then
  begin
    CalculateQuickbarArray;
    Synchronize(ParseQuickBar);
  end;
end;
CalculateQuickbarArray:

Delphi-Quellcode:
procedure TMyThread.CalculateQuickbarArray;
begin
  SetLength(RegExArray, 0);

  ParseRegExpr(myMemo.Text, 'blubb', 4);
(ParseQuickBar gibt ein im CalculateQuickbarArray befülltes Array aus.)

Dass es so falsch ist, ist mir klar, da ich zwei mal außerhalb von Synchronize auf ein VCL Objekt zugreifen möchte. Einmal beim Vergleich, ob es existiert und einmal bei der Parameterübergabe.

Nur wenn ich das über Synchronize mache, friert meine Anwendung beim Ausführen des Threads ein, da ja alles Synchronosiert ist.

Wie umgehe ich das Problem?

Seltsam ist auch, dass das Execute-Ereignis ausgelöst wird, wenn ich besagten Thread mittels

myThread := TmyThread.Create(true); starte. Eigentlich müsste der Thread ja nun pausiert sein.

Btw: Im OnKeyDown ist mein Code folgender:

myThread.Execute Wahrscheinlich mache ich alles falsch, was man nur falsch machen kann.
  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:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz