Avatar billede runem74 Nybegynder
06. februar 2003 - 15:31 Der er 5 kommentarer og
1 løsning

image forsvinder når størrelsen ændres?

Hej,

Når jeg bruger følgende til at definere størrelsen på min image component så forsvinder den?

procedure Tlay.FormCreate(Sender: TObject);
begin
image1.Constraints.maxheight:=screen.Height;
image1.constraints.maxwidth:=screen.width;
image1.height:=setting.spinedit2.value;
image1.width:=setting.spinedit1.value;
end;

Jeg har prøvet alle kombinationer af stretch og autosize men resultatet er det samme. Hvis jeg ikke ændre størrelsen, så vises image componenten fint.

Mange hilsner,

Rune
Avatar billede stoney Nybegynder
06. februar 2003 - 15:51 #1
Sæt koden på onchange eventen i spinedit

procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
image1.Width := strtoint(spinedit1.text);
end;

Stoney
Avatar billede runem74 Nybegynder
06. februar 2003 - 16:10 #2
Jeg har indsat følgende:

procedure TSetting.SpinEdit2Change(Sender: TObject);
begin
lay.image1.height:=spinedit2.value;
lay.image1.width:=spinedit1.value;
end;

Det virkede hellere ikke
Avatar billede stoney Nybegynder
06. februar 2003 - 17:28 #3
Det skal virke

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Spin, jpeg, ExtCtrls;

type
  TForm1 = class(TForm)
    Image1: TImage;
    SpinEdit1: TSpinEdit;
    SpinEdit2: TSpinEdit;
    procedure FormCreate(Sender: TObject);
    procedure SpinEdit1Change(Sender: TObject);
    procedure SpinEdit2Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
spinedit1.Value := image1.Height;
spinedit2.Value := image1.Width;
end;

procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
image1.Height := spinedit1.Value;
end;

procedure TForm1.SpinEdit2Change(Sender: TObject);
begin
image1.Width := spinedit2.Value;
end;

end.

Stoney
Avatar billede dkn Nybegynder
06. februar 2003 - 19:30 #4
du er vel ikke ved en fejl kommet til at sige freeimage under vejs?
Avatar billede runem74 Nybegynder
06. februar 2003 - 20:48 #5
Nej, jeg har ikke brugt freeimage.

Jeg har prøvet at lege rundt med følgende simple eksemple. Jeg kan godt ændre størrelsen på min image component men kun til en vis størrelse. Jeg har derudover sat image constraints til var der svare til min skærm opløsning.


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Spin, ExtCtrls;

type
  TForm1 = class(TForm)
    Image1: TImage;
    SpinEdit1: TSpinEdit;
    SpinEdit2: TSpinEdit;
    Button1: TButton;
    procedure SpinEdit1Change(Sender: TObject);
    procedure SpinEdit2Change(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
image1.width:=spinedit1.value;
image1.height:=spinedit2.value;
end;

procedure TForm1.SpinEdit2Change(Sender: TObject);
begin
image1.width:=spinedit1.value;
image1.height:=spinedit2.value;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
image1.canvas.Rectangle(0,0,spinedit1.value,spinedit2.value);
end;

end.
Avatar billede runem74 Nybegynder
06. februar 2003 - 22:43 #6
Jeg har fundet ud af det åbenbart er nogle problemer ved at reskalere image component under runtime (Delphi 5). Jeg løste mit problem ved at ved at oprette et image under runtime som jeg så kunne definere størrelsen på. Jeg takker for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
22 min siden Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging