Avatar billede nop Nybegynder
25. marts 2005 - 11:23 Der er 10 kommentarer og
1 løsning

Font udseende

Jeg har lavet en form uden border, den tegner jeg selv, jeg har en label som "caption", men på XP ser den anderledes ud, den bliver størrer og bold.

Jeg troede at det kunne være parentFont eller sådan noget men jeg kan ikke slå det fra.

Er der nogen der ved bare lidt om emnet.

Ps: 200 points fordi jeg har brug for det svar...
Avatar billede stoney Nybegynder
25. marts 2005 - 12:18 #1
søg efter XPmanifest

Sorry har ikke tid, påske frokost you know

Stoney
Avatar billede kroning Nybegynder
25. marts 2005 - 14:32 #2
Jeg kan ikke genskabe problemet, har du noget kode?
Avatar billede nop Nybegynder
27. marts 2005 - 14:34 #3
stoney>>prøver det, og I know, jeg er selv i lag med flere borde..
kroning>>hehe, jeg kan heller ikke genskabe det på min egen PC men jeg har set at min form ser forkert ud på flere maskiner.
Jeg skal nok sende et eksempel her i næste uge, det er nemlig lidt vigtigt. Og jeg vil også prøve at finde ud af at genskabe det.
Avatar billede nop Nybegynder
27. marts 2005 - 14:42 #4
stoney>>Jeg er jo ikke interesseret i xp look, bare i at mine labels ser ens ud på min pc og andre pc'ere (eller har jeg misforstået noget med dit søgeord?)
Avatar billede nop Nybegynder
27. marts 2005 - 16:29 #5
Her er et komplet eksempel:

unit formMain;

interface

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

type
    TfrmMain = class(TForm)
        lbWindowTitle: TLabel;
        bevWindowTitleLine: TBevel;
        butClose: TButton;
        procedure butCloseClick(Sender: TObject);
    private
        procedure WMNCHitTest(var Msg: TWMNCHitTest); message wm_NCHitTest;
    public
        procedure CreateParams(var Params: TCreateParams); override;
    end;

var
    frmMain: TfrmMain;

implementation

{$R *.dfm}


procedure TfrmMain.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.Style := (Params.Style or WS_THICKFRAME);
end; //create params


procedure TfrmMain.WMNCHitTest(var Msg: TWMNCHitTest);
var
    xr,yr:  integer;
    wr,hr:  integer;
begin
    xr:=msg.XPos-left;
    yr:=msg.YPos-top;
    wr:=clientWidth+3;
    hr:=clientHeight+3;

    if xr+12>=wr then  //12 gør de nemmere at ramme hjørnet
        if yr+12>=hr then begin
            msg.Result:=HTBOTTOMRIGHT;
            exit;
        end;

    if xr<=2 then begin
        if yr<=2 then
            msg.Result:=HTTOPLEFT
        else
            if yr+2>=hr then
                msg.Result:=HTBOTTOMLEFT
            else
                msg.Result:=HTLEFT;
        exit;
    end;

    if yr<=2 then begin
        if xr>=wr then
            msg.Result:=HTTOPRIGHT
        else
            msg.Result:=HTTOP;
        exit;
    end;

    if xr>=wr then begin
        if yr+2>=hr then
            msg.Result:=HTBOTTOMRIGHT
        else
            msg.Result:=HTRIGHT;
        exit;
    end;

    if yr>=hr then begin
        msg.Result:=HTBOTTOM;
        exit;
    end;

    if yr <= 23 then begin
        Msg.Result := HTCAPTION;
        exit;
    end;

    msg.Result:=HTCLIENT; //bare formen
end; //hit test


procedure TfrmMain.butCloseClick(Sender: TObject);
begin
    close
end;

end.


Og form'en:

object frmMain: TfrmMain
  Left = 291
  Top = 299
  BorderStyle = bsNone
  Caption = 'frmMain'
  ClientHeight = 237
  ClientWidth = 543
  Color = clWhite
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  DesignSize = (
    543
    237)
  PixelsPerInch = 96
  TextHeight = 13
  object lbWindowTitle: TLabel
    Left = 451
    Top = 1
    Width = 88
    Height = 16
    Alignment = taRightJustify
    Anchors = [akTop, akRight]
    Caption = 'Formular test'
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -13
    Font.Name = 'Verdana'
    Font.Style = []
    ParentFont = False
  end
  object bevWindowTitleLine: TBevel
    Left = 0
    Top = 20
    Width = 544
    Height = 2
    Anchors = [akLeft, akTop, akRight]
    Shape = bsBottomLine
  end
  object butClose: TButton
    Left = 470
    Top = 204
    Width = 65
    Height = 25
    Anchors = [akRight, akBottom]
    Caption = '&Luk'
    TabOrder = 0
    OnClick = butCloseClick
  end
end
Avatar billede nop Nybegynder
31. marts 2005 - 09:52 #6
kroning>>hvad resultat fik du?
Avatar billede nop Nybegynder
01. april 2005 - 13:26 #7
stoney>>hvad med det der XPmanifest?
Avatar billede nop Nybegynder
04. april 2005 - 10:42 #8
Vil I prøve at løbe efter guldet?
Avatar billede kroning Nybegynder
04. april 2005 - 14:59 #9
Jeg har prøvet din kode men kan stadig ikke få problemet, har prøvet på 2 maskiner.
Avatar billede nop Nybegynder
04. april 2005 - 15:18 #10
kroning>>tak skal du have du har fortjent nogle points bare for det. Jeg har fundet ud af noget mere som jeg lige skal have orden i, så jeg vender tilbage. Håber du også gider følge lidt med?
Avatar billede nop Nybegynder
07. november 2005 - 16:03 #11
Kroning>>points?
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