Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Sir Rufo,
26. Feb 2014
Ich denke wir haben hier primär ein Timing-Problem. Das hat Harry ja schon versucht mit dem Sleep in den Griff zu bekommen.
Das könnte sich aber auch wiederum negativ auf die Kommunikation mit der Kamera selber auswirken.
Um dem System jetzt wirklich Luft zu verschaffen, sollte es nicht für 100ms schlafen geschickt werden, sondern nur alle 100ms ein Bild von der Kamera auslesen.
type
...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Sir Rufo,
20. Feb 2014
Es wird im else-Zweig kein Thread aufgerufen, sondern aus dem aktuellen Thread-Kontext heraus wird synchronisiert die andere Methode aufgerufen.
Dieses geschieht aber auch nur dann, wenn der Aufruf nicht im Kontext des MainThreads erfolgt.
Der Aufruf erfolgt aber eben immer im MainThread-Kontext (darauf habe ich schon hingewiesen und auf die Dokumentation, die sagt, dass Synchronize im...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Sir Rufo,
20. Feb 2014
Deine Lösung unterscheidet sich von meiner Lösung durch das Aufrufen von Sleep.
BTW Die Abfrage ist überflüssig denn der Setter prüft schon, ob sich der Wert ändert und löst nur dann ein Repaint aus:
if (Image1.Width <> Image1.Bitmap.Width) or (Image1.Height <> Image1.Bitmap.height) then begin
Image1.Width:=Image1.Bitmap.Width;
Image1.Height:=Image1.Bitmap.Height;
end;
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Sir Rufo,
19. Feb 2014
Also mich machen diese Zeilen ja stutzig
procedure TForm2.SampleBufferReady(Sender: TObject; const ATime: TMediaTime);
begin
// Synchronisieren - ok, wenn man in einem anderen Thread-Kontext ist, macht das manchmal Sinn
TThread.Synchronize(TThread.CurrentThread, SampleBufferSync);
// äh, wenn wir in einem anderen Thread-Kontext sind,