AGB  ·  Datenschutz  ·  Impressum  







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

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
Seite 1 von 3  1 23   
andydp

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

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

  Alt 3. Jul 2012, 10: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, 11: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.017 Beiträge
 
Delphi 12 Athens
 
#3

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

  Alt 3. Jul 2012, 11: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 11: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, 11: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...
Miniaturansicht angehängter Grafiken
objektinspektor-image1.png  
  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, 13: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, 13: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, 14: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
andydp

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

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

  Alt 3. Jul 2012, 14:32
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.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.288 Beiträge
 
Delphi 11 Alexandria
 
#9

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

  Alt 3. Jul 2012, 14:41
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, ...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
andydp

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

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

  Alt 3. Jul 2012, 15:13
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

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...
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:16 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