AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Keine Grafikausgabe mit Image1.Canvas.MoveTo... unter Win 7
Thema durchsuchen
Ansicht
Themen-Optionen

Keine Grafikausgabe mit Image1.Canvas.MoveTo... unter Win 7

Ein Thema von andydp · begonnen am 3. Jul 2012 · letzter Beitrag vom 20. Sep 2012
Antwort Antwort
andydp

Registriert seit: 4. Aug 2006
36 Beiträge
 
#1

Keine Grafikausgabe mit Image1.Canvas.MoveTo... unter Win 7

  Alt 3. Jul 2012, 09:44
Hallo Leute

Hab ein echtes Problem und bin auf Eure geschätzte Hilfe angewiesen...

Habe ein Programm geschrieben, welches nun jahrelang unter XP fehlerfrei im Einsatz war.
Beim Umstellen auf Win 7 habe ich nun festgestellt, dass mit folgendem Code
keine Linien mehr auf das Image gezeichnet werden...

Delphi-Quellcode:
/ Umriss Zeichnen
  Clear_Temp_Screen;
  Image1.Canvas.Brush.Style := bsClear;
  Image1.Canvas.MoveTo(50,10);
  Image1.Canvas.LineTo(50,266);
  Image1.Canvas.LineTo(770,266);

 // Daten an rechten Rand schreiben
  Image1.Canvas.Pen.Color := clBlack;
  Image1.Canvas.MoveTo(790,10);
  Image1.Canvas.LineTo(790,266);
  Image1.Canvas.LineTo(930,266);
  Image1.Canvas.LineTo(930,10);
  Image1.Canvas.LineTo(790,10);
  Image1.Canvas.Pen.Color := clBlack;

  Image1.Canvas.Font.Name:='Arial';
  Image1.Canvas.Font.Style:=[fsBold];
  Image1.Canvas.Font.Height:=18;
  Image1.Canvas.TextOut(798,20,SDatum2+FormatDateTime('dd.mm.yyyy',Tmp_Datum));
  Image1.Canvas.Font.Style:=[];
  Image1.Canvas.Font.Height:=14;
  Image1.Canvas.TextOut(798,60,SKundenNummer2+IntToStr(Header_Kunden_Nummer));
  Image1.Canvas.TextOut(798,80,SGerTeNummer2+IntToStr(Header_Geraete_Nummer));
  Image1.Canvas.TextOut(798,100,SSollwert+IntToStr(SpinEdit1.Value));

  Image1.Canvas.Font.Name:='Arial';
  Image1.Canvas.Font.Style:=[fsBold];
  Image1.Canvas.Font.Height:=14;

  Image1.Canvas.TextOut(50,315,SKOMMENTAR);
  Image1.Canvas.TextOut(50,350,SEREIGNISDATEN1);

  Image1.Canvas.Font.Style:=[];

usw....
Der Canvas bleibt einfach leer, d.h. nur der weisser Hintergrund ist sichtbar.

Danke für Eure Hilfe...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Keine Grafikausgabe mit Image1.Canvas.MoveTo... unter Win 7

  Alt 3. Jul 2012, 10:00
Zeichnet wunderbar:
Delphi-Quellcode:
procedure TForm1.btn1Click(Sender: TObject);
begin
Image1.Canvas.Brush.Style := bsClear;
  Image1.Canvas.MoveTo(50,10);
  Image1.Canvas.LineTo(50,266);
  Image1.Canvas.LineTo(770,266);

 // Daten an rechten Rand schreiben
  Image1.Canvas.Pen.Color := clBlack;
  Image1.Canvas.MoveTo(790,10);
  Image1.Canvas.LineTo(790,266);
  Image1.Canvas.LineTo(930,266);
  Image1.Canvas.LineTo(930,10);
  Image1.Canvas.LineTo(790,10);
  Image1.Canvas.Pen.Color := clBlack;


  Image1.Canvas.Font.Style:=[];

end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Keine Grafikausgabe mit Image1.Canvas.MoveTo... unter Win 7

  Alt 3. Jul 2012, 10:02
Was für ein Bild (BMP/FPG/PNG/...) steckt denn in dem Image? (falls ein Bild geladen wurde)
[edit]
Zitat:
d.h. nur der weisser Hintergrund ist sichtbar.
OK
[/edit]

Wenn es ein Bitmap ist oder wenn nichts geladen wurde, dann versuch es mal über Image1.Bitmap.Canvas (oder war's Image1.Picture.Bitmap.Canvas ) .


Was macht Clear_Temp_Screen?
Und wird eventuell irgendwo die Größe von Image1 verändert? (manuell oder über Align, Anchors, ...)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 3. Jul 2012 um 10:07 Uhr)
  Mit Zitat antworten Zitat
andydp

Registriert seit: 4. Aug 2006
36 Beiträge
 
#4

AW: Keine Grafikausgabe mit Image1.Canvas.MoveTo... unter Win 7

  Alt 3. Jul 2012, 10:50
Danke für den Feedback

Es wird kein Bild in das "Image" geladen, sondern nur auf die Fläche gezeichnet.

Hier die Procedure Clear_Temp_Screen.
Da wird über die gesamte Fläche ein gefülltes weisses Rechteck gezeichnet.

Delphi-Quellcode:
procedure TTemperaturdaten.Clear_Temp_Screen;
begin
  Image1.Canvas.Brush.Color := clWhite;
  Image1.Canvas.FillRect(Rect(0,0,938,550));
  //Image1.Canvas.FillRect(Rect(0,0,930,266));
end;
Im Anhang findet Ihr noch einen Printscreen des Objektinspektors...
Angehängte Grafiken
Dateityp: png Objektinspektor Image1.png (19,5 KB, 17x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Keine Grafikausgabe mit Image1.Canvas.MoveTo... unter Win 7

  Alt 3. Jul 2012, 12:08
Und in welchem Ereignis wird gezeichnet oder wann wird das Zeichnen ausgelöst? Und mit dem selben Compilat funktioniert es unter Windows XP? Was hast du für ein Windows 7? 64-Bit und was ist es für ein Compilat? Mit 32-Bit Compilat unter Windows 7 64-Bit habe ich keine Probleme. wird denn die Routine auch ausgeführt unter Windows 7? Bau mal eine Ausgabe irgendwie ein. Entweder Konsole oder eine Messagebox.

Und kannst du eine Demoprogramm machen und die Exe mal hier anhängen? Dann kann ich dein Compilat mal hier ausführen und gucken, ob es bei mir geht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
andydp

Registriert seit: 4. Aug 2006
36 Beiträge
 
#6

AW: Keine Grafikausgabe mit Image1.Canvas.MoveTo... unter Win 7

  Alt 3. Jul 2012, 12:28
Hi Luckie

Muss leider zur Zeit an einem anderen Projekt weiterarbeiten,
desshalb hier noch kurz das exe mit einer Demodatei zum Laden.

Das ganze hat unter XP sehr gut geklappt.

Unter Win 7 /64 Bit gab es dann aber bei der Temperaturkurve
nur ein weisses "Blatt" anstelle der Kurve.

Bin noch auf der Suche nach einem Win 7 / 32Bit.

Das angefügte Projekt wurde auf einem Delphi XE2 und Win XP
Rechner übersetzt.

Danke für Eure Bemühungen...
Angehängte Dateien
Dateityp: zip Mediline W7.zip (1,13 MB, 19x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: Keine Grafikausgabe mit Image1.Canvas.MoveTo... unter Win 7

  Alt 3. Jul 2012, 13:24
Bei mir kommen ein paar Fehlermeldung und wenn ich die Datei öffne laufen die Fortschrittsbalken durch aber dann passiert nichts weiter. ist das eine 32 oder 64 Bit Exe?
Michael
Ein Teil meines Codes würde euch verunsichern.
  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 10:55 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