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
Antwort Antwort
Benutzerbild von TERWI
TERWI

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

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

  Alt 9. Jul 2018, 15:44
Das Ziel:
Ich erzeuge in einer Unit meines Proggis eine BitMap (ca. 600 X 600) und fülle diese kontinuierlich mittels FillRect und Textout mit irgendwelchen 'bunten' Sachen. Das klappt auch so weit ....
Neben dem speichern 'on demand' soll diese Bitmap als Kontrolle auch jederzeit zu sehen sein - d.h. ich möchte gerne diese (permanent geänderte) BM auf einer separatem Form (bei Bedarf) sehen.

Mein Prob:
1. Versuch: Form.Canvas auf BitMap.Canvas setzen ... nogo
2. Versuch: In Form.OnRepaint mit Canvas.Draw die BitMap ... nogo
3. Versuch: Direkt auf Form.Canvas pinseln - mit oder ohne repaint ... nogo
Ich hab immer nur das default graue Canvas der Form, obwohl sich da definitiv was zeigen sollte.

Das eruegute/geänderte BitMap ist jeweils so weit OK - aber ich sehe nix in der Form, flackert nicht mal ...

Ich bin da nicht so der Held in Sachen Graphics und mir gehen die Ideen aus.
Wie macht man das richtig ?

Geändert von TERWI ( 9. Jul 2018 um 15:49 Uhr)
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.071 Beiträge
 
Delphi 10.4 Sydney
 
#2

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

  Alt 9. Jul 2018, 16:06
Zu 2.:
Machst du denn auch ein Form.Repaint, sobald du das Bitmap auf den Form.Canvas gezeichnet hast? (Form.Canvas.Draw oder Form.Canvas.StretchDraw)
  Mit Zitat antworten Zitat
Benutzerbild von TERWI
TERWI

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

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

  Alt 9. Jul 2018, 16:25
Delphi-Quellcode:
// OSD-Form
type
...
  public
    FBitmap : TBitMap;
  end;

...

procedure TFormOSD.FormPaint(Sender: TObject);
begin
  if Assigned(FBitmap) then
    Canvas.Draw(0, 0, FBitmap);
end;
...

// Calling Unit:
type
  FBMOSD : TBitmap; // die zu bearbeitende BM

  ...

  // ... wenn was geändert wurde:
  if Assigned(FormOSD) then
  begin
    ... BitMap Inhalt ändern ...
    FormOSD.FBitmap := FBMOSD; // zur Sicherheit noch mal zuweisen
    FormOSD.Repaint;
  end;

Geändert von TERWI ( 9. Jul 2018 um 16:29 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.599 Beiträge
 
Delphi 12 Athens
 
#4

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

  Alt 9. Jul 2018, 16:26
Du kannst einfach ein TImage auf das Form platzieren und bei Bedarf dem Image.Picture.Bitmap deine Bitmap zuweisen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von TERWI
TERWI

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

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

  Alt 9. Jul 2018, 16:45
... das gibt eine nette Zugriffsverletzung.

Neuer Versuch:
Ich schreibe direkt aus dem Programm auf's Canvas der OSD-Form.
Z.B.
FormOSD.Canvas.TextOut(X, Y, ansistring(Text)); ohne Repaint u. a. --- das geht !
... ist aber nicht Sinn der Sache.
  Mit Zitat antworten Zitat
Benutzerbild von TERWI
TERWI

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

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

  Alt 9. Jul 2018, 17:02
Kleine Korrektur:
Ich hab in der Eile 'Image.Create/Free' vergessen.
Das ändert aber nichts an der mangelhaften / keine Ausgabe.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.071 Beiträge
 
Delphi 10.4 Sydney
 
#7

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

  Alt 9. Jul 2018, 17:24
Beispielprojekt als ZIP hier hochladen?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.599 Beiträge
 
Delphi 12 Athens
 
#8

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

  Alt 9. Jul 2018, 17:47
Kleine Korrektur:
Ich hab in der Eile 'Image.Create/Free' vergessen.
Das ändert aber nichts an der mangelhaften / keine Ausgabe.
Mit "Du kannst einfach ein TImage auf das Form platzieren" meine ich natürlich "im Form-Designer" und nicht zur Laufzeit.

Wenn deine Änderungen in dem Image nicht angezeigt werden, dann solltest du allerdings schon ein Beispielprojekt (ändere Bitmap, Anzeige auf dem Form) hier hochladen, damit wir sehen können, was da passiert. Ich habe so den Verdacht, daß uns da eine wesentliche Information noch fehlt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 22:20 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 by Thomas Breitkreuz