Avatar billede js_delphi Nybegynder
06. september 2006 - 09:02 Der er 13 kommentarer og
1 løsning

Tilpasse komponenter pä formen?

God morgen,

när mit program körer pä en PC, skal formen selvfölgelig fylde hele skärmen.
Mit spörgsmäl gär ud pä, hvordan jeg kan skalere hele formen med komponenter en smule ned, när jeg programmerer, säledes at jeg ikke behöves at have formen i fuld störrelse i IDE'en (da den sä blokerer for )?
Problemet er jo, at hvis jeg gör formen mindre mens jeg placerer komponenterne (knapper edits osv.), sä sidder komponenterne oppe i et hjörne, när formen bliver full size under udförelsen.

Pft.
Avatar billede js_delphi Nybegynder
06. september 2006 - 09:07 #1
I () skulle stä (da den sä blokerer for komponent palletten).
Avatar billede js_delphi Nybegynder
06. september 2006 - 10:09 #2
I övrigt er det vel et problem, som alle har (eller har haft...)!?
Avatar billede bertelbrander Novice
06. september 2006 - 19:52 #3
Det er vel det samme problem som du har når din applikation skal køre på skærme med andre opløsninger?
Det er kun dem der laver GUI og laver boxe der har opløsninger over 640*480 der har problemet.
Snakker vi .net, BorlandC++ Builder eller ?
Avatar billede js_delphi Nybegynder
07. september 2006 - 09:14 #4
Borland C++ Builder 6. Jeg har nu ogsä problemet i Delphi.
I Java sätter man - sä vidt jeg ved - störrelsen pä grid.
Hvis sä grid störrelsen sättes op, fölger komponenterne sä at sige med.
Hvad sören gör man i C++??
Avatar billede bertelbrander Novice
07. september 2006 - 20:26 #5
Prøv at kikke på TControl::Anchors i hjælpen.
Avatar billede js_delphi Nybegynder
08. september 2006 - 08:07 #6
Det pröver jeg.

Hvad gör du egentlig selv for at omgä, at formen blokerer hele skärmen, när du programmerer?
Avatar billede bertelbrander Novice
08. september 2006 - 20:14 #7
Jeg skriver mine GUI'er i hånden.
Drag&Drop tools er for langsomme og uflexible.
Avatar billede js_delphi Nybegynder
13. september 2006 - 20:46 #8
Hvordan er de for langsomme?
Kan du give en kort beskrivelse af, hvordan man f.eks. tegner en button i hånden?
(da det lyder spændende).
Avatar billede bertelbrander Novice
13. september 2006 - 20:55 #9
Man laver bare en button med CreateWindows, ikke noget fancy.

Hvis man skal bruge en ikke standard knap, kan man tegne den med som en bitmap, eller tegne den ved WM_CTLCOLORBTN, vha. en HDC, stadig ikke noget fancy.

Der er en lille beskrivelse af hvordan jeg laver windows apps her:
http://damb.dk/dialogtut.php
Avatar billede js_delphi Nybegynder
27. september 2006 - 21:24 #10
Hvad mente du med, at standart komponenterne er for langsomme?
Avatar billede bertelbrander Novice
27. september 2006 - 21:44 #11
Jeg mener at der er for langsomt at udvikle programmer med drag&drop.
Kontrollerne er (stort set) de samme.
Avatar billede js_delphi Nybegynder
13. oktober 2006 - 22:43 #12
Jeg har ikke tid for tiden til dette projekt, men jeg vender tilbage senere.
Avatar billede js_delphi Nybegynder
21. maj 2007 - 09:22 #13
I hjaelpen i Delphi giver de en forholdvis udfoerlig forklaring paa, hvordan
man faar sit program til at fungere med forskellige skaermoploesninger.
Det, de forslaar, er at aendre stoerelsen og positionen (Height/Width og Top/Left)
paa samtlige synlige komponenter paa formen.
Det har jeg gjort nu med foelgende kode:

  ScaleFactorHeight := Screen.Height/1024;
  ScaleFactorWidth := Screen.Width/1280;

  for i := 0 to FrmMain.ControlCount - 1 do
  begin
    OrigHeight := TControl(FrmMain.Controls[i]).Height;
    OrigWidth := TControl(FrmMain.Controls[i]).Width;
    OrigTop := TControl(FrmMain.Controls[i]).Top;
    OrigLeft := TControl(FrmMain.Controls[i]).Left;
    TControl(FrmMain.Controls[i]).Height := Round(OrigHeight*ScaleFactorHeight);
    TControl(FrmMain.Controls[i]).Width := Round(OrigWidth*ScaleFactorWidth);
    TControl(FrmMain.Controls[i]).Top := Round(OrigTop*ScaleFactorHeight);
    TControl(FrmMain.Controls[i]).Left := Round(OrigLeft*ScaleFactorWidth);
  end;

Men det ser ikke perfekt ud. Dvs. at alle komponenter ikke bliver skalleret 100%
korrekt!

Jeg er klar over, at der af og til vil vaere en lille forskydning af komponenterne, da jeg bruger Round, men det burde vaere saa lidt, at man ikke kan se det.

Er der nogen, som har en forklaring paa, hvorfor komponenterne ikke bliver skalleret korrekt?
Avatar billede js_delphi Nybegynder
04. december 2007 - 15:52 #14
Underligt, hvis andre ikke har dette problem.
Lukker.
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