Hallo Delphi Forum,
ich habe mal wieder ein kleines Problem.
Ich lade mir ausm Web eine png Datei herunter,
diese Datei hat leider (aus momentan nicht änderbaren gründen) einen weißen Rand rund um den sinnvollen Inhalt, einer Tabelle.
Da habe ich mir gedacht, ich könne ja einfach prüfen, ab wann diese Tabelle beginnt (y und x) und dann wird alles zentriert angezeigt.
Pustekuchen, leider zeigt er mal das eine Bild mittig an, das andere nicht (Die tabellen sind ungefähr gleich groß, sollten also alle zentriert ca. gleich groß sein).
Ich haue da vl. irgendwo Fehler rein oder kann mir das im Kopf nicht richtig vorstellen, auf alle Fälle funktioniert es mal, und mal nicht.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| Image1.Top:=0; Image1.Left:=0; Image1.Width:=833; Image1.Height:=379; image1.Picture.LoadFromFile(timemonth+'-'+timeday+'.png'); Image1.Width:= Trunc(Image1.Width-100); Image1.Height:= Trunc(Image1.Height); for i:=50 to 200 do begin Application.ProcessMessages; cl:=Image1.canvas.Pixels[i,500]; if (cl<>clwhite) then begin break; end; end; Image1.Top:=Image1.Top+i; for i2:=1 to 120 do begin Application.ProcessMessages; cl:=Image1.canvas.Pixels[300,i2]; if (cl<>clwhite) then begin break; end; end; Image1.Left:=Image1.Left+i2; |
Image Height und Width setzen die gesamte größe des timage, top und left wollte ich verändern, um die Position des Bildes zu verändern, will heißen diese weißen leerflächen einfach ins nirvana zu verschieben.
Mithilfe einer Schleife prüfe ich, wann ein pixel nicht mehr weiß ist, es ist dabei der obere Rand einer Tabelle und der Link (Die Tabelle ist nicht ganz viereckig, deshalb diese hohe Zahl für y und x).
Dann fülle ich damit das Top und left, trozdem geht es nicht, er zeigt es trotzdem so blöde verschoben an, anstatt direkt am sichtbaren bereich des images oben links alles anzeigen zu lassen. Die Tabelle beginnt leider nicht oben Links, sondern immer wieder woanders, je nach bildgröße. (Dabei sind es unterschieder wie 1024x534 und 1024x585 und so weiter...).
Würde mich für jede Hilfe bedanken.
Mfg Kalle