AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Bitmap.Canvas -> Form.Canvas ... nix zu sehen
Thema durchsuchen
Ansicht
Themen-Optionen

Bitmap.Canvas -> Form.Canvas ... nix zu sehen

Ein Thema von TERWI · begonnen am 9. Jul 2018 · letzter Beitrag vom 19. Jul 2018
 
Benutzerbild von TERWI
TERWI

Registriert seit: 29. Mär 2008
Ort: D-49626
381 Beiträge
 
Delphi 11 Alexandria
 
#34

AW: Bitmap.Canvas -> Form.Canvas ... nix zu sehen

  Alt 18. Jul 2018, 16:47
TThread.Current.ThreadId kennt D2009 nicht, aber TThread.CurrentThread.ThreadId. Schreibfehler oder Tokyo ?

Die aufrufende Methode:
Delphi-Quellcode:
procedure TTeletext.ShowTTxt(Mode : boolean; Page : integer);
var
  ID1, ID2 : cardinal;
begin
  ID1 := MainThreadID;
  ID2 := GetCurrentThreadId; // TThread.CurrentThread.ThreadId;
  if ID1 = ID2 then
    LOG('ShowTTxt', 'Ich bin im Hauptthread')
  else
    LOG('ShowTTxt', 'Ich bin in einen anderen Thread Context:' + IntToStr(ID2));

  if not Assigned(FOSD) then
  begin
    FOSD := TFormOSD.Create(nil);
  end;

  FOSD.OSDshow(Mode, FBMOSD);

  SetPageNumber(Page);
  FShowTTxt := Mode;
end;
Die empfangende Methode:
Delphi-Quellcode:
procedure TFormOSD.FormCreate(Sender: TObject);
var
  ID1, ID2 : cardinal;
begin
  ID1 := MainThreadID;
  ID2 := GetCurrentThreadId; //TThread.CurrentThread.ThreadId;
  if ID1 = ID2 then
    LOG('FormCreate', 'Ich bin im Hauptthread')
  else
    LOG('FormCreate', 'Ich bin in einen anderen Thread Context:' + IntToStr(ID2));
  ...
end;
Mein LOGGER sagt:
Code:
[17:35:53:113] [TTXT - ShowTTxt]: Ich bin im Hauptthread
[17:35:53:116] [OSD - FormCreate]: Ich bin im Hauptthread
Letzteres ist mir völlig unbegreiflich, weil ich das vor ein paar Tagen explizit & ausführlich getest habe und da waren ID1 und ID2 noch unterschiedlich ! ... sonst hätte ich das in den Postings vorher nicht so besimmt geschrieben.

Desweiteren:
ID2 := GetCurrentThreadId; funktioniert - hatte ich dieser Tage auch so.
ID2 := TThread.CurrentThread.ThreadId; führt beim Beenden des Progs zu einer AV - siehe angehängtes Bild.

.... ich versteh die Welt nicht mehr.
Angehängte Grafiken
Dateityp: jpg Thread_Err.jpg (13,0 KB, 4x aufgerufen)
  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 13:15 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