Toon posts:

[Delphi] Getallen simpelweg vermenigvuldigen?

Pagina: 1
Acties:
  • 115 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Jongens,

Ik kom van VB6 af, en ik ben nu sinds een tijdje bezig met Delphi 6. Werkt harstikke leuk, de taal is al een stuk krachtiger. Maar nu wil ik de hoogte van een control variabel maken (in het geval dat de user een form resized). Ik doe dus:

code:
1
mijncontrol.height = frm_main.height * 0.3


En dat slikt ie niet. Daar heeft ie ook wel gelijk in, want frm_main.height is een integer, en 0.3 is geen integer (Extended ofzo?). Wat moet ik nu doen? VB6 slikte dit namelijk wel, dus ben ik gewend om dit te doen? Ik heb google gebruikt, en de search, maar nergens iets :( Hellup!

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:42
Dan moet je casten naar een integer:

code:
1
mijncontrol.height = integer(frm_main.height * 0.3);


strong typed languages zijn mooi.
weak typed languages niet. :+

[ Voor 25% gewijzigd door whoami op 24-01-2003 16:36 ]

https://fgheysels.github.io/


Verwijderd

Topicstarter
"[Error] unit_frm_main.pas(37): Invalid typecast"

en moet trouwens die '=' niet vervangen worden door ':=' ?

[ Voor 43% gewijzigd door Verwijderd op 24-01-2003 16:39 ]


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 23:22

mulder

ik spuug op het trottoir

FloatToInt, zoek eens op casten in de help

oogjes open, snaveltjes dicht


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:42
Verwijderd schreef op 24 januari 2003 @ 16:38:
"[Error] unit_frm_main.pas(37): Invalid typecast"

en moet trouwens die '=' niet vervangen worden door ':=' ?


Euh, ja. :+

https://fgheysels.github.io/


Verwijderd

Topicstarter
Don Facundo schreef op 24 januari 2003 @ 16:40:
FloatToInt, zoek eens op casten in de help
De functie FloatToInt staat niet in de help, en hij kent 'm ook niet (compiler error)

  • Nibble
  • Registratie: Juli 2001
  • Laatst online: 16-08 02:25
Gevonden :P
Toch met round:

code:
1
2
3
4
5
6
7
8
procedure TForm1.Button1Click(Sender: TObject);
var a : real;
     b: integer;
begin
  a:= 0.3;
  b:=4;
  showmessage(IntToStr(round(b * a)));
end;


Alsjeblieft :)

[ Voor 174% gewijzigd door Nibble op 24-01-2003 16:50 ]

T is for TANK, and T is for TERROR ... and K is the K for KILLING in error.


Verwijderd

Topicstarter
Nibble schreef op 24 January 2003 @ 16:43:
code:
1
mijncontrol.height := FloatToInt(frm_main.height * 0.3);


je zou hem ook nog kunnen 'rounden'
JA! De oplossing is (tnx Nibble!):
code:
1
mijncontrol.height := Round(frm_main.height * 0.3);

  • BdR
  • Registratie: Juni 2001
  • Laatst online: 03-09-2025

BdR

TV is gooder then books

dit is denk ik makkelijker
code:
1
mijncontrol.height := frm_main.height div 3

DIV is een simpele (grove) manier van delen, afgerond op integers.

mijn web games -> Impossible Snake 2 :: Impossible Snake :: Snake Slider


  • BdR
  • Registratie: Juni 2001
  • Laatst online: 03-09-2025

BdR

TV is gooder then books

maarrrr..

zo te zien gebruik je het om de plek van een knop of label aan te passen. Daar is een veel betere manier voor, gebruik 'panels' (bij Delphi component "Standard").

Plaats maar eens 2 panels op een leeg form, en verander de 'Align' property van de ene in 'alTop', en van de andere in 'alBottom'. Plaats nu je knoppen textboxes etc. op die panels.

die panels is trouwens niet iets speciaals van Delphi maar van windows, moet dus op precies dezelfde manier in VB kunnen

mijn web games -> Impossible Snake 2 :: Impossible Snake :: Snake Slider


  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05-2025

FendtVario

The leader drives Vario!

Als je wilt dat een component zich aanpast aan de grootte van je formulier zou je natuurlijk ook het Anchor properties kunnen gebruiken

www.fendt.com | Nikon D7100 | PS5


Verwijderd

dit is denk ik makkelijker
code:
1
mijncontrol.height := frm_main.height div 3

DIV is een simpele (grove) manier van delen, afgerond op integers.
Je bedoelt zeker:
code:
1
mijncontrol.height := (frm_main.height * 3) div 10

:)

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

BdR schreef op 24 January 2003 @ 16:56:
die panels is trouwens niet iets speciaals van Delphi maar van windows, moet dus op precies dezelfde manier in VB kunnen
Nope, Align is een speciale vinding van VCL, de component lib van Delphi en BCB. VB heeft wel vergelijkbare mechanismes, maar lang niet zo krachtig.

Standaard WinAPI kent niet eens een splitter, dat moet je zelf implementeren en alles messages afvangen zodat je 'gekoppelde' controls kunt resizen.

Professionele website nodig?

Pagina: 1