Autor Beitrag
cyberax
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 247

Win XP Pro
Delphi 5 Enterprise
BeitragVerfasst: 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...
ausblenden 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 ...?!? :roll:

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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Mo 12.03.07 20:47 
user profile iconcyberax hat folgendes geschrieben:
...
Wenn nun das Fenster gezeigt wird / den Focus erhält ist leider nichts zu sehen ...?!? :roll:

steckt das mal ins onPaint-Ereignis der form

user profile iconcyberax 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 247

Win XP Pro
Delphi 5 Enterprise
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 247

Win XP Pro
Delphi 5 Enterprise
BeitragVerfasst: 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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mo 12.03.07 21:37 
user profile iconcyberax hat folgendes geschrieben:
(b) Versteh ich nicht ganz. Vieleicht ein kurzer Code dazu ??

Naja,
user profile iconKroko hat folgendes geschrieben:
Image1.Picture.Bitmap := TBitmap.Create

und Breite (width) und Höhe (height) setzen ( :=wert; ) :gruebel:

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
cyberax Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 247

Win XP Pro
Delphi 5 Enterprise
BeitragVerfasst: Mo 12.03.07 21:51 
Also...

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mo 12.03.07 22:22 
user profile iconcyberax hat folgendes geschrieben:
Also...

ausblenden 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??
...doch... :gruebel:
user profile iconcyberax hat folgendes geschrieben:

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
Logisch, du erstellst die Bitmap NACHDEM du das Bild geladen hast, ÜBERSCHREIBST das Bild also. Einfach die Bitmap vor dem Laden erstellen.
user profile iconcyberax hat folgendes geschrieben:
und zweitens - wie definiere ich die startkorrdinaten des Bildes??
Startkoordinaten...? :gruebel: versteh ich nicht ganz...

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
cyberax Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 247

Win XP Pro
Delphi 5 Enterprise
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 247

Win XP Pro
Delphi 5 Enterprise
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mo 12.03.07 23:13 
Das hat nichts mit der ersten Frage zu tun, darum: Neue Frage - Neuer Thread, bitte! :mahn: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 247

Win XP Pro
Delphi 5 Enterprise
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 247

Win XP Pro
Delphi 5 Enterprise
BeitragVerfasst: Mo 12.03.07 23:48 
Okay...

hier die Lösung...
ausblenden 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