Вопрос по Delphi

картинка загружается в компонент timage
Image1.Picture.LoadFromFile('tabl/img0.jpg');
но форма должна быть 800*600 картинка 1024*768 есть ли свойство чтобы ее сжать под 800*600? (под сжатием понимается чтобы вся картинка была видна в окошке 800*600)
помогите плз
 

[mAd_cAt]

Забанен
картинка загружается в компонент timage
Image1.Picture.LoadFromFile('tabl/img0.jpg');
но форма должна быть 800*600 картинка 1024*768 есть ли свойство чтобы ее сжать под 800*600? (под сжатием понимается чтобы вся картинка была видна в окошке 800*600)
помогите плз
Естественно есть такое свойство в этом компоненте:
Выставляешь в инспекторе объектов компонента TImage
Proportional в True
а в Width 800
Height 600
или же в Position выбираешь allClient кажецца так... Делфи под рукой нету.. ну там это свойство сверху где компонент принимает размеры формы...
 
Останнє редагування:
Естественно есть такое свойство в этом компоненте:
Выставляешь в инспекторе объектов компонента TImage
Proportional в True
а в Width 800
Height 600
или же в Position выбираешь allClient кажецца так... Делфи под рукой нету.. ну там это свойство сверху где компонент принимает размеры формы...
не вышло
align allclient спасиб все ок
 

Вкладення

Останнє редагування:
при вводе значение выдает такую ошибку в чем прикол непойму
Код:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons;

type
  TForm2 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Edit10: TEdit;
    Edit11: TEdit;
    Edit12: TEdit;
    Edit13: TEdit;
    Edit14: TEdit;
    Edit15: TEdit;
    Edit16: TEdit;
    Label17: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    Label20: TLabel;
    Label21: TLabel;
    Label22: TLabel;
    Label23: TLabel;
    Label24: TLabel;
    Label25: TLabel;
    Label26: TLabel;
    Label27: TLabel;
    Label28: TLabel;
    Label29: TLabel;
    Label30: TLabel;
    Label31: TLabel;
    Label32: TLabel;
    Edit17: TEdit;
    Edit18: TEdit;
    Edit19: TEdit;
    Edit20: TEdit;
    Edit21: TEdit;
    Edit22: TEdit;
    Edit23: TEdit;
    Edit24: TEdit;
    Edit25: TEdit;
    Edit26: TEdit;
    Edit27: TEdit;
    Edit28: TEdit;
    Edit29: TEdit;
    Edit30: TEdit;
    Edit31: TEdit;
    Edit32: TEdit;
    Label33: TLabel;
    Label34: TLabel;
    Label35: TLabel;
    Edit33: TEdit;
    Edit34: TEdit;
    Edit35: TEdit;
    Label36: TLabel;
    BitBtn1: TBitBtn;
    Label37: TLabel;
    Edit36: TEdit;
    Button1: TButton;
    procedure BitBtn1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
   
  
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;
  s1p,gp1,tetp1:double;
  test,mt,qk,mk,f,q,Mn,m,p1,ma,qa,nt,etm,ett,yp,ky,ro,kq,kp,kqq,it,p0,kpp,mcp,beta,beta1,beta2,f0,k1,k2,kf,kf1,kf2,m1,m2,ro1,f1,f2,f3,w,t,t1,t2,t3:double;
  lnp,a,a1,de,r,d,dt,d0,LR,tp,i,gm,c,l,sk,st,sp,s1,s2,h1,h2,b1,b2,r1,r2,tk,tt,t0,Lk,lt,ep,et,ek,ed,n,gmr,gmp,pt,pm,e1,e2:double;

implementation

uses Unit1, Unit4, Unit3;
процедура
Код:
procedure TForm2.BitBtn1Click(Sender: TObject);
const
Pi=3.14159265;
begin
a:=strtofloat(edit1.text);
a1:=strtofloat(edit2.text);
de:=strtofloat(edit3.text);
r:=strtofloat(edit4.text);
d:=strtofloat(edit5.text);
dt:=strtofloat(edit6.text);
d0:=strtofloat(edit7.text);
lr:=strtofloat(edit8.text);
tp:=strtofloat(edit9.text);
i:=strtofloat(edit10.text);
gm:=strtofloat(edit11.text);
c:=strtofloat(edit12.text);
l:=strtofloat(edit13.text);
sk:=strtofloat(edit36.text);
st:=strtofloat(edit14.text);
sp:=strtofloat(edit15.text);
s1:=strtofloat(edit16.text);


h1:=strtofloat(edit33.text);
b1:=strtofloat(edit34.text);
r1:=strtofloat(edit35.text);

tk:=strtofloat(edit17.text);
tt:=strtofloat(edit18.text);
t0:=strtofloat(edit19.text);
lk:=strtofloat(edit20.text);
lt:=strtofloat(edit21.text);
ep:=strtofloat(edit22.text);
et:=strtofloat(edit23.text);
ek:=strtofloat(edit24.text);
ed:=strtofloat(edit25.text);
n:=strtofloat(edit26.text);
gmr:=strtofloat(edit27.text);
gmp:=strtofloat(edit28.text);
pt:=strtofloat(edit29.text);
pm:=strtofloat(edit30.text);
e1:=strtofloat(edit31.text);
e2:=strtofloat(edit32.text);
test:=strtofloat(form4.edit1.text);

{Ïåðâûé ïóíêò ðàñ÷åòîâ (íà÷àëî)}

h1:=h2;
b1:=b2;
r1:=r2;
kpp:=0;
kqq:=0;

mn:=a/a1;
etm:=(1-(ed*ed))/4*a1*a1;
ett:=1-i*(dt-2*st)/a1*a1*4;
yp:=1-d0/tp;
ky:=et*(ett-etm)/l;
ro:=ky*a1*l/ek*sk;
kq:=1+kqq;
kp:=1+kpp;
mcp:=(3/20)*((dt-st)*(dt-st))/a1*a1;
p0:=(lk*(tk-t0)-lt*(tt-t0))*ky*l+(ett-1+mcp+mn*(mn+0.5*ro*kq))*pt-(etm-1+mcp+mn*(mn+0.3*ro*kp))*pm;
beta:=(1.82/sp)*(exp(0.25*ln(ky*sp/f0*ep)));
beta1:=1.3/sqrt(a*s1);
beta2:=1.3/sqrt(a*s2);
k1:=beta1*a*ek*s1*s1*s1/5.5*r1;
k2:=beta2*a*ed*s2*s2*s2/5.5*r2;
kf1:=e1*h1*h1*h1*b1/12*r1*r1+k1*(1+b1*h1/2);
kf2:=e2*h2*h2*h2*b2/12*r2*r2+k2*(1+b2*h2/2);
kf:=kf1+kf2;
m1:=1+beta1*h1/2*beta1*beta1;
m1:=1+beta2*h2/2*beta2*beta2;
ro1:=(ky*a*a1)/(beta1*beta1*kf*r1);
w:=beta*a1;
f1:=sqrt(2)*w;
f3:=sqrt(2)*w;
f2:=w;
t:=1+1.4*w*(mn-1);
t1:=f1*(mn+0.5*(1+mn*t)*(t-1));
t2:=f2*t;
t3:=f3*mn;

{Âòîðîé ïóíêò ðàñ÷åòîâ}

p1:=ky/(beta*kf)*(m1*pm-m2*pt);
M:=(a1/beta)*((p1*(t1+ro*kq)-p0*t2)/((t1+ro*kq)*(t3+ro1)-t2*t2));
q:=a1*((p0*(t3+ro1)-p1*t2)/((t1+ro*kq)*(t3+ro1)-t2*t2));
Ma:=m+(a-a1)*q;
Qa:=mn*q;
Nt:=(Pi*a1/i)*((etm*pm-ett*pt)*a1+f1*qa+f2*beta*ma);
it:=(pi/64)*(dt*dt*dt*dt-(dt-2*st)*(dt-2*st)*(dt-2*st)*(dt-2*st));
Mt:=(et*it*beta)/(ky*a1)*(f2*qa+f3*beta*ma);   {lnp - ????????}
qk:=(a/2)*Pt-q;       {a ??????????}
Mk:=(k1/(p1*kf*beta))*(t2*q+t3*beta*m)-pm/2*beta1*beta1;
f:=pi*d*qk;

form1.label1.caption:=floattostr(mn);
close;
end;
ввожу значения типа флоат а выдает такую ... компилятор ошибок не выдает
 

Вкладення

Cris

Member
ты жесток))
вторая ошибка возникает из-за первой

по поводу первой так вроде у тебя гдето переменная типа float там где ее использовать нельзя,...
а нет у тебя переменный double, а считываеш и переводиш во float, и в какихто действиях их нельзя соединять, или гдето есть разность диапазонов,
ну вообшем тебе надо :
var
Form2: TForm2;
s1p,gp1,tetp1:double;
test,mt,qk,mk,f,q,Mn,m,p1,ma,qa,nt,etm,ett,yp,ky,ro,kq,kp,kqq,it,p0,kpp,mcp,beta,beta1,beta2,f0,k1,k2,kf,kf1,kf2,m1,m2,ro1,f1,f2,f3,w,t,t1,t2,t3:double;
lnp,a,a1,de,r,d,dt,d0,LR,tp,i,gm,c,l,sk,st,sp,s1,s2,h1,h2,b1,b2,r1,r2,tk,tt,t0,Lk,lt,ep,et,ek,ed,n,gmr,gmp,pt,pm,e1,e2:double;

поставить здесь тип float и тогда все будет ок) как помне
 
ты жесток))
вторая ошибка возникает из-за первой

по поводу первой так вроде у тебя гдето переменная типа float там где ее использовать нельзя,...
а нет у тебя переменный double, а считываеш и переводиш во float, и в какихто действиях их нельзя соединять, или гдето есть разность диапазонов,
ну вообшем тебе надо :
var
Form2: TForm2;
s1p,gp1,tetp1:double;
test,mt,qk,mk,f,q,Mn,m,p1,ma,qa,nt,etm,ett,yp,ky,ro,kq,kp,kqq,it,p0,kpp,mcp,beta,beta1,beta2,f0,k1,k2,kf,kf1,kf2,m1,m2,ro1,f1,f2,f3,w,t,t1,t2,t3:double;
lnp,a,a1,de,r,d,dt,d0,LR,tp,i,gm,c,l,sk,st,sp,s1,s2,h1,h2,b1,b2,r1,r2,tk,tt,t0,Lk,lt,ep,et,ek,ed,n,gmr,gmp,pt,pm,e1,e2:double;

поставить здесь тип float и тогда все будет ок) как помне
в Opascal нет типа флоат а есть дабл там все правильно должно быть ошибка появляется непонятно откуда
 
test:=strtofloat(form4.edit1.text); забыл убрать тестовую переменную , эх дырявая бошка , и сидел мучалсо :|:)

есть вопрос к шановному панству как сделать чтобы тип флоат принимал числа через точку а не только через запятую ?
16,66 а 16.66 не принимает?
 
Останнє редагування:

Hamster

Well-Known Member
Это прописано в настройках венды, какой разделитель использовать.
16.66 и не будет принимать.
В юните SysUtils есть константа чаровская DecimalSeparator , в которой храниться этот разделитель.

тебе нада на событие keyPressed для каждого edittext написать конструкцию типа
if ( (key=' , ') or (key=' . '))
then key:= DecimalSeparator ;
 

Cris

Member
test:=strtofloat(form4.edit1.text); забыл убрать тестовую переменную , эх дырявая бошка , и сидел мучалсо :|:)

есть вопрос к шановному панству как сделать чтобы тип флоат принимал числа через точку а не только через запятую ?
16,66 а 16.66 не принимает?
ну надо проверять каждую строку вроде:
g:=pos('.',text);
text[g]:=',';
и переводиш в число
 
Зверху