Größe eines Image ändert sich nicht
-
Hallo, ich brauche mal wieder Eure Hilfe
In meiner Anwendung wird das Ergebnis einer Berechnung graphisch in eine Image gezeichnet und bei Bedarf gezoomt. Und der Zoom funktioniert nicht.
Aufbau der Form:
linke Hälfte GroupBox1 mit Bedienelementen
rechte Hälfte GroupBox2 mit Image1 fürs Ergebnis
Im Normalfall wird das Ergebnis in der rechten oberen Ecke im Image1 angezeigt und nur bei Bedarf über einen Button über die ganze Form gezoomt. Dazu wird GroupBox1 unsichtbar geschaltet und die GroupBox2 über die ganze Form gelegt. (siehe Code).
Wenn ich nach dem Programmstart ZUERST den Button "zoom" drücke, wird das Ergebnis groß dargestellt, danach den Button "normal" und das Ergebnis ist auf normaler Größe. Egal wie oft ich hin- und her schalte, das Ergebnis wird immer richtig angezeigt.
Wenn ich aber nach dem Programmstart ZUERST den Button "normal" drücke, wird das Ergebnis normal dargestellt, danach den Button "zoom" und das Ergebnis bleibt auf normaler Größe, immer!!!
Nun meine Frage an Euch, was ist der Unterschied???//--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { GroupBox1->Top = 20; // GroupBox1 positionieren GroupBox1->Left = 20; GroupBox1->Width = 300; GroupBox1->Height = 400; GroupBox2->Top = 20; // GroupBox2 positionieren GroupBox2->Left = 350; GroupBox2->Width = 300; GroupBox2->Height = 350; } //--------------------------------------------------------------------------- void __fastcall TForm1::NormalClick(TObject *Sender) { GroupBox1->Visible = true; // Bedienelemente sichtbar Darstellung(20, 350, 300, 200);// Darstellung Ergebnis normale Größe } //--------------------------------------------------------------------------- void __fastcall TForm1::ZoomClick(TObject *Sender) { GroupBox1->Visible = false; // Bedienelemente unsichtbar Darstellung(20, 20, 600, 400); // Darstellung Ergebnis gezoomt } //--------------------------------------------------------------------------- void TForm1::Darstellung(unsigned int Top, unsigned Left, unsigned int Width, unsigned int Height) { // GroupBox2 positionieren // ----------------------- GroupBox2->Top = Top; GroupBox2->Left = Left; GroupBox2->Width = Width; GroupBox2->Height = Height; // Image1 über komplette Größe der GroupBox2 // ----------------------------------------- Image1->Top = 5; Image1->Left = 5; Image1->Width = GroupBox2->Width - 10; Image1->Height = GroupBox2->Height - 10; // Darstellung des Ergebnisses (als Beispiel eine Diagonale) // --------------------------------------------------------- Image1->Canvas->MoveTo(Image1->Left, Image1->Top); Image1->Canvas->LineTo(Image1->Width, Image1->Height); Image1->Canvas->Refresh(); // bringt nichts Image1->Refresh(); // bringt nichts GroupBox2->Refresh(); // bringt auch nichts }