Autor |
Beitrag |
cyberax
      
Beiträge: 247
Win XP Pro
Delphi 5 Enterprise
|
Verfasst: Mo 12.03.07 20:44
Hallo,
ich habe zwei Probleme mit dem Image die aber miteinander zu tun haben.
Ich habe eine Datei mit Koordinaten die als Canvas auf ein Image übertragen werden sollen.
Ich mach das so... Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| ... xv:=ini.ReadInteger(inttostr(z),'XV',xv); yv:=ini.ReadInteger(inttostr(z),'YV',yv); xb:=ini.ReadInteger(inttostr(z),'XB',xb); yb:=ini.ReadInteger(inttostr(z),'YB',yb); bild_fenster.Canvas.Rectangle(xv,yv,xb,yb); ... |
(Anbei - sollte ich "bild_fenster.IMAGE1.canvas...." verwenden, oder so wie ich's habe??)
Wenn nun das Fenster gezeigt wird / den Focus erhält ist leider nichts zu sehen ...?!?
Genau so wenn ich ein Canvas direkt (mit Maus ziehen...) zeichne und dann ein anderes Fenster aufrufe verschwindet das Canvas wieder...
habe schon im Forum gesucht aber leider nix passendes gefunden...
Habt ihr einen Link zur Hilfe oder direkt nen Tip ??
Danke schonmal
Gruß cyberax
|
|
Kroko
      
Beiträge: 1284
W98 W2k WXP
Turbo D
|
Verfasst: Mo 12.03.07 20:47
cyberax hat folgendes geschrieben: | ...
Wenn nun das Fenster gezeigt wird / den Focus erhält ist leider nichts zu sehen ...?!?  |
steckt das mal ins onPaint-Ereignis der form
cyberax hat folgendes geschrieben: | Genau so wenn ich ein Canvas direkt (mit Maus ziehen...) zeichne und dann ein anderes Fenster aufrufe verschwindet das Canvas wieder...
habe schon im Forum gesucht aber leider nix passendes gefunden...
Habt ihr einen Link zur Hilfe oder direkt nen Tip ??
Danke schonmal
Gruß cyberax |
genauso, merken und im OnPaint-Ereignis der Form wieder ausgeben!
oder gleich alles in einem Image machen!
_________________ Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
|
|
cyberax 
      
Beiträge: 247
Win XP Pro
Delphi 5 Enterprise
|
Verfasst: Mo 12.03.07 21:05
Also wenn ich habe das mal ins Onpaint Ereignis gesteckt - funktioniert genau so wenig...
und wenn ich...bild_fenster.image1.Canvas.rectangle(xv,yv,xb,yb)
verwende kommt "Ein Bild kann nur geändert werden, wenn es ein Bitmap enthält.".
Hmmmm...?!?
|
|
Kroko
      
Beiträge: 1284
W98 W2k WXP
Turbo D
|
Verfasst: Mo 12.03.07 21:10
(a) sollte funktionieren, mal überprüft ob Koodinaten und Farbe des rechtecks plausible und sichtbar sind
(b) Image1.Picture.Bitmap := TBitmap.Create und Breite und Höhe setzen
_________________ Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
|
|
cyberax 
      
Beiträge: 247
Win XP Pro
Delphi 5 Enterprise
|
Verfasst: Mo 12.03.07 21:21
(a) ich zeichne mit dem Programm die Rechtecke und speichere sie in eine Datei. Dabei sind sie sichtbar und die Koordinaten sind auch i.O. Habe: Delphi-Quelltext 1: 2:
| canvas.Pen.mode:=pmnotxor; canvas.pen.style:=psdash; |
Das wird bei form.create eingestellt.
(b) Versteh ich nicht ganz. Vieleicht ein kurzer Code dazu ??
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Mo 12.03.07 21:37
cyberax hat folgendes geschrieben: | (b) Versteh ich nicht ganz. Vieleicht ein kurzer Code dazu ?? |
Naja,
Kroko hat folgendes geschrieben: | Image1.Picture.Bitmap := TBitmap.Create |
und Breite (width) und Höhe (height) setzen ( :=wert; ) 
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
cyberax 
      
Beiträge: 247
Win XP Pro
Delphi 5 Enterprise
|
Verfasst: Mo 12.03.07 21:51
Also...
Delphi-Quelltext 1: 2: 3:
| image1.Picture.Bitmap:=tbitmap.create; image1.Picture.Bitmap.Width:=xb-xv; image1.Picture.Bitmap.Height:=yb-yv; | kann ja wohl nicht richtig sein, oder??
Ich lade erst mit Picture.loadfromfile das Bild und erstelle dann auf dem Image ein Bitmap mit der Höhe und Breit. Okay - aber 1. "verschwindet" dann mein geladenes Bild wieder und zweitens - wie definiere ich die startkorrdinaten des Bildes??
Sicher ist das mit dem Bitmap ganz anders gemeint, aber dass hatte ich nicht verstanden. Deswegen nochmal die Frage....
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Mo 12.03.07 22:22
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
cyberax 
      
Beiträge: 247
Win XP Pro
Delphi 5 Enterprise
|
Verfasst: Mo 12.03.07 22:42
Naja - wenn ich das von Kroko richtig verstanden haben, soll ich statt ein Rectangle zu zeichnen ein Bitmap mit den Koordinaten (die ich aus der Datei lade) erstellen.
Ich kann dich Breite und die Höhe angeben. aber nicht left und top (x,y)...
Ich glaube mein fehler liegt woanders. Oder es liegt ein Verständnisproblem vor...
ich häng mal die Datei an...wie ich sie orig. hatte. Habe also die Versuche mit den Änderungen wieder entfernt
Einloggen, um Attachments anzusehen!
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Mo 12.03.07 22:47
Du musst die Bitmap erstellen, bevor du darauf zeichnen kannst! Also erst Bitmap := TBitmap.Create; aufrufen, und dann die Höhe und Breite festlegen. DANACH drauf zeichnen.
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
cyberax 
      
Beiträge: 247
Win XP Pro
Delphi 5 Enterprise
|
Verfasst: Mo 12.03.07 23:08
Okay....
soweit so gut... aber ich möchte doch auch JPG's laden können und nicht nur BMP ?!?
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Mo 12.03.07 23:13
Das hat nichts mit der ersten Frage zu tun, darum: Neue Frage - Neuer Thread, bitte!  Das hat den Sinn, dass ein Suchender nicht lauter "Ich hab 6 Fragen:" und "537 Probleme, bitte helft!" Themen findet
Ausserdem, etwas suchen, und du hättest gefunden: die Unit "jpeg" einbinden.
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
cyberax 
      
Beiträge: 247
Win XP Pro
Delphi 5 Enterprise
|
Verfasst: Mo 12.03.07 23:21
Ich habe diese unit eingebunden!!! Das sollte auch nicht die Frage sein.
Mein Problem (jetzt!) ist auch nicht, dass ich keine JPG laden kann, sondern dass das dann nicht mehr funktioniert wenn ich TBitmap verwende.
Also erst hat JPG laden funktioniert (dafür das mit dem Canvas, Rectangle nicht) - nun funktioniert das Zeichnen der Canvas , aber dafür das Verwenden/Laden von .JPG nicht mehr.
Deswegen das Zitat: | aber ich möchte doch auch JPG's laden können und nicht nur BMP ?!? |
Verstehst, was ich mein ?? 
|
|
cyberax 
      
Beiträge: 247
Win XP Pro
Delphi 5 Enterprise
|
Verfasst: Mo 12.03.07 23:48
Okay...
hier die Lösung... Delphi-Quelltext 1: 2: 3:
| Jpeg := TJpegImage.Create; jpeg.LoadFromFile(s); bild_fenster.image1.Picture.Bitmap.Assign(jpeg); |
Danke für eure Hilfe!!!
Gruß Cyberax
|
|