AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Größe vom Image in Form1.OnCanResize verändern (relativ)
Thema durchsuchen
Ansicht
Themen-Optionen

Größe vom Image in Form1.OnCanResize verändern (relativ)

Ein Thema von Lefko · begonnen am 28. Apr 2004 · letzter Beitrag vom 2. Mai 2004
Antwort Antwort
Lefko

Registriert seit: 31. Jul 2003
359 Beiträge
 
Delphi 6 Enterprise
 
#1

Größe vom Image in Form1.OnCanResize verändern (relativ)

  Alt 28. Apr 2004, 00:05
Hallo Leute ,

ich hab folgenden Code:

Delphi-Quellcode:
procedure TForm1.FormCanResize(Sender: TObject; var NewWidth,
  NewHeight: Integer; var Resize: Boolean);
begin
Resize := true;
Label1.Left := (NewWidth - Label1.width) div 2;

//Größe relativ verändern
Image1.Width := NewWidth - (NewWidth div 8);
Image1.Left := (NewWidth - Image1.width) div 2;
Image1.Height := NewHeight - (NewHeight div 3);
Image1.Top := NewHeight div 5;

//altes Image löschen
with Image1.canvas do
 begin
  brush.Color := form1.color;
  pen.color := form1.color;
  rectangle(0, 0, image1.width, image1.height);
 end;

Mitte.X := Image1.width div 2;
Mitte.Y := Image1.Height div 2;
//Neues Bild neu zeichnen
Timer1Timer(self);
end;
Wieso geht das nicht? es kommt immer Mist dabei raus, nämlich wird das, was gezeichnet wird, richtig verzerrt, wenn ich die Größe der Form ändere, aber es wird nur noch ein Teil des Bildes gezeichnet, nämlich der, der die Größe von dem ursprünglichen Image hat! (siehe Screenshot!)

Woran kann das liegen? Properties von Image1 stehen auf false:

- Center
- AutoSize
- Stretch

Woran kann das nun liegen??


MfG Lefko.
Miniaturansicht angehängter Grafiken
asdfasdfasdf.jpg  
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat
Benutzerbild von -tobi-
-tobi-

Registriert seit: 24. Mär 2004
53 Beiträge
 
Delphi 7 Professional
 
#2

Re: Größe vom Image in Form1.OnCanResize verändern (relativ)

  Alt 28. Apr 2004, 07:20
Tag,

bei OnCanResize kann man angeben ob sich die Größe des Fensters weiter ändern darf.

Wenn etwas direkt bei der Größenänderung abgearbeitet werden soll, muß man OnResize verwenden.

Gruß tobi
  Mit Zitat antworten Zitat
Lefko

Registriert seit: 31. Jul 2003
359 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Größe vom Image in Form1.OnCanResize verändern (relativ)

  Alt 28. Apr 2004, 18:44
Daran liegt es nicht, ich setze erstens Resize auf true und zweitens wird die Größe von Image1 ja auch irgendwie vergrößert, wie man an der Zeichnung darauf sehen kann (screenshot oben)!
Nur wird irgendwie das, was ausserhalb der ursprünglichen größe des image1 liegt, nicht gezeichnet?!

weiss jemand, woran es liegt? ich habe es zwecks test auch mit OnResize versucht, aber da geschieht genau das gleiche!

MfG Lefko
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat
Lefko

Registriert seit: 31. Jul 2003
359 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: Größe vom Image in Form1.OnCanResize verändern (relativ)

  Alt 2. Mai 2004, 13:50
Hm, weiss wirklich niemand, woran es liegen kann, dass das Image vergrößert wird mit dem Ändern der Größe der Form, aber nicht der Bereich des Images, in dem gezeichnet wird?!
(siehe Bild oben)

MfG Lefko
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Größe vom Image in Form1.OnCanResize verändern (relativ)

  Alt 2. Mai 2004, 14:28
Moin Lefko,

setz' mal Stretch auf true, und dann auch noch alle Anchors.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Lefko

Registriert seit: 31. Jul 2003
359 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: Größe vom Image in Form1.OnCanResize verändern (relativ)

  Alt 2. Mai 2004, 15:08
Das hat leider auch nichts gebracht
(Außer, dass die Uhr, die auf die Form gezeichnet wird, jetzt total andere Farben bekommt (statt dem roten Sekzeiger ist dieser dann hellblau-lila-verpixelt und genauso die grünen Striche)

Hm...
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#7

Re: Größe vom Image in Form1.OnCanResize verändern (relativ)

  Alt 2. Mai 2004, 15:13
Moin!

Zitat von Lefko:
Hm, weiss wirklich niemand, woran es liegen kann, dass das Image vergrößert wird mit dem Ändern der Größe der Form, aber nicht der Bereich des Images, in dem gezeichnet wird?!
(siehe Bild oben)

MfG Lefko
Die Komponente wird ja ordentlich vergössert so wie es scheint (was mit mit Anchors auch automatisch hinbekommt), aber das Bild selber ist davon doch nicht betroffen. Entweder vergösserst du das Bild selber oder du nimmst die Stretch Eigenschaft und setzt diese auf True.

Um das Bild an sich zu verändern, musst du auf Image1.Picture.Bitmap zugreifen und dementsprechend den alten Inhalt auch zoomen (StretchDraw). Bitmap ist dabei nur eine Möglichkeit unter Picture, abhängig vom geladenen Bildtyp (JPEGImage, Icon, Metafile, etc).

MfG
Muetze1
  Mit Zitat antworten Zitat
Lefko

Registriert seit: 31. Jul 2003
359 Beiträge
 
Delphi 6 Enterprise
 
#8

Re: Größe vom Image in Form1.OnCanResize verändern (relativ)

  Alt 2. Mai 2004, 15:25
Du hast Recht, es funktioniert mit Stretch := true.

Aber es kommt SOWOHL wenn ich über OnResize der Form die Größe ändere, ALS AUCH wenn ich das über die Anchors des Images erledigen lasse, ein WirrWarr heraus!
(siehe Screenshot)

Oh man, was nun?

MfG Lefko.
Miniaturansicht angehängter Grafiken
fdasdf.jpg  
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#9

Re: Größe vom Image in Form1.OnCanResize verändern (relativ)

  Alt 2. Mai 2004, 18:52
Moin!

Das Bild wird nicht ordentlich neu gezeichnet (er malt den Rahmen (Kreis) anscheinend mit falschen Koordinaten).

Und das das Bild so grob-pixelig ist, ist auch eindeutig durch das Stretch zu erklären, weil die Property den Inhalt nicht interpoliert beim stretchen.

Wieso malst du nicht einfach deine Uhr im OnPaint direkt auf das Canvas der Form und anhand der aktuellen Parameter?

Ansonsten ein einfaches Beispiel für eine runde Uhr die mit unterschiedlichen Grössen klarkommt, kannst du dir TRoundClock auf meiner Website anschauen, sollte nicht so kompliziert sein der Code.

MfG
Muetze1
  Mit Zitat antworten Zitat
Lefko

Registriert seit: 31. Jul 2003
359 Beiträge
 
Delphi 6 Enterprise
 
#10

Re: Größe vom Image in Form1.OnCanResize verändern (relativ)

  Alt 2. Mai 2004, 19:20
Ich hab mir deine Kompo mal runtergeladen und schau sie mir jetzt an
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:01 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