![]() |
Keine Grafikausgabe mit Image1.Canvas.MoveTo... unter Win 7
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:
Der Canvas bleibt einfach leer, d.h. nur der weisser Hintergrund ist sichtbar.
/ 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.... Danke für Eure Hilfe... |
AW: Keine Grafikausgabe mit Image1.Canvas.MoveTo... unter Win 7
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; |
AW: Keine Grafikausgabe mit Image1.Canvas.MoveTo... unter Win 7
Was für ein Bild (BMP/FPG/PNG/...) steckt denn in dem Image? (falls ein Bild geladen wurde)
[edit] Zitat:
[/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 :gruebel: ) . Was macht Clear_Temp_Screen? Und wird eventuell irgendwo die Größe von Image1 verändert? (manuell oder über Align, Anchors, ...) |
AW: Keine Grafikausgabe mit Image1.Canvas.MoveTo... unter Win 7
Liste der Anhänge anzeigen (Anzahl: 1)
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:
Im Anhang findet Ihr noch einen Printscreen des Objektinspektors...
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; |
AW: Keine Grafikausgabe mit Image1.Canvas.MoveTo... unter Win 7
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. |
AW: Keine Grafikausgabe mit Image1.Canvas.MoveTo... unter Win 7
Liste der Anhänge anzeigen (Anzahl: 1)
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... |
AW: Keine Grafikausgabe mit Image1.Canvas.MoveTo... unter Win 7
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?
|
AW: Keine Grafikausgabe mit Image1.Canvas.MoveTo... unter Win 7
Es ist eine 32-Bit Compilierung...
Nachdem die Daten eingelesen wurden, müsstest Du den Button zum Anzeigen der Temperaturdaten drücken. Dies ist der längliche Button mit dem Temperaturdiagramm als Grafik. Danach sollte ein Fenster geöffnet werden, wo Du die Temperaturwerte grafisch in einer Kurvenform angezeigt bekommst. |
AW: Keine Grafikausgabe mit Image1.Canvas.MoveTo... unter Win 7
Abgesehen davon, dass die Datumsauswahl nicht richtig zu funktionieren scheint ("Kalenderzeit oder -datum konnte nicht gesetzt werden.") wird hier eine Kurve unter Windows 7 x64 angezeigt. Auch das Blättern durch die Punkte funktioniert inkl. Markierung.
Allerdings solltest du, mal so nebenbei gesagt, die Positionierung der Formulare einmal auf einem PC mit mehreren Bildschirmen (insbesondere zweien) testen... Der kleine Startbildschirm wird genau auf der Kante zwischen zweien angezeigt, das Hauptfenster habe ich rechts, aber die Fenster erscheinen links, ... ;-) |
AW: Keine Grafikausgabe mit Image1.Canvas.MoveTo... unter Win 7
Danke für die rasche Antwort!
Hab das Problem mit dem Kalender noch nie gehabt. Jrgend eine Idee, woran das liegen könnte? Hast natürlich Recht mit den Bildschirmen. Hab unterdessen auch schon das eine oder andere Programm gesehen, welches das selbe Problem hatte. Kann man glaub ich ganz einfach im Objektinspektor für das Formular beheben. (Eigenschaft: Position) Hab dort für das Mainfenster "poDefault" eingetragen :roll: Komisch, dass Du die Temperaturkurve sehen kannst. Hab jetz auf 3 Rechnern das Problem gehabt, dass wie gesagt nur ein weisser Hintergrund zu sehen war... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:39 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