Avatar billede justincase1089 Nybegynder
11. marts 2002 - 17:21 Der er 15 kommentarer og
1 løsning

Point til morten_s

Som subject
Avatar billede hojben Novice
11. marts 2002 - 17:24 #1
ref !!!!
Avatar billede justincase1089 Nybegynder
11. marts 2002 - 17:24 #2
?
Avatar billede hojben Novice
11. marts 2002 - 17:25 #3
der skal være en reference til hvorfor han skal ha de 200 point
Avatar billede justincase1089 Nybegynder
11. marts 2002 - 17:25 #4
Avatar billede hojben Novice
11. marts 2002 - 17:26 #5
så mangler vi kun koden... alt skal være synligt for alle her på E.
Avatar billede justincase1089 Nybegynder
11. marts 2002 - 17:31 #6
Den kan jeg ikke give, det er morten_'s kode. Hvis det er et problem, hvordan vil du så have dine point Morten ?. Jeg kan sende dem i en kuvert ;). Står der et eller andet sted herinde, at det ikke er tilladt at gøre der er sket i forbindelse med dette spørgsmål. Jeg beklager selvfølgelig, at jeg kom til at reposte mit spørgsmål, og at det er det der har resulteret i at jeg har fået svar, men hvis man ser bort fra det kan jeg da finde de første 1000 svar herinde som desværre for os indeholder "hemmelig" korrespondance mellem folk, men det har løst mit problem, og jeg er glad. Er du sur over at jeg er glad ?
Avatar billede hojben Novice
11. marts 2002 - 17:33 #7
hvis det er mortens kode tjaa så skal han vel heller ikke ha point for den...

overhovedet ikke sur over noget.. reglerne herinde er til for at blive overholdt.. thats all
Avatar billede foodear Praktikant
11. marts 2002 - 17:34 #8
Avatar billede morten_s Nybegynder
11. marts 2002 - 17:36 #9
her
Avatar billede hojben Novice
11. marts 2002 - 17:37 #10
koden eller anmeldelse... det er helt op til jer selv....
Avatar billede morten_s Nybegynder
11. marts 2002 - 17:40 #11
koden er her

unit ALabel;

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics,
  Controls, Forms, Dialogs, StdCtrls, Menus, uFalcoVars;

type
  TLabId = Integer;
  TAngle = Integer;
  TLabText = String[40];
  TLabColor = Integer;
  TAngleLabel = class(TCustomLabel)
  private
    { Private declarations }
    FAngle : TAngle;
    FLabColor : TLabColor;
  protected
    { Protected declarations }
    procedure Paint; override;
    procedure SetAngle(Value: TAngle); virtual;
    procedure SetLabColor(Value: TLabColor); virtual;
    procedure CMFontChanged(var Message: TMessage); message CM_FONTCHANGED;
    procedure MouseMove(var m:twmmouse); message wm_MouseMove;
    procedure MouseLDown(var m:twmmouse); message wm_LButtonDown;
    procedure MouseLUp(var m:twmmouse); message wm_LButtonUp;
    procedure MouseLDBlClk(var m:twmmouse); message wm_LButtonDBlClk;
  public
    { Public declarations }
    LabID : TLabID;
    IntId : Integer;
    LabText : TLabText;
    constructor Create(AOwner: TComponent); override;
  published
    property Align;
    property AutoSize;
    property Caption;
    property Color;
    property DragCursor;
    property DragMode;
    property Enabled;
    property FocusControl;
    property Font;
    property ParentColor;
    property ParentFont;
    property ParentShowHint;
    property PopupMenu;
    property ShowHint;
    property Transparent;
    property Visible;
    property OnClick;
    property OnDblClick;
    property OnDragDrop;
    property OnDragOver;
    property OnEndDrag;
    property OnMouseDown;
    property OnMouseMove;
    property OnMouseUp;
    {new properties}
    property Angle : TAngle read fAngle write SetAngle;
    property LabColor : TLabColor read fLabColor write SetLabColor;
  end;

procedure Register;

implementation

uses
  tpLabel;

const
  Colors : array[1..14] of tcolor = (clAqua, clBlack, clFuchsia, clGray, clGreen,
                                    clLime, clMaroon, clNavy, clOlive, clPurple,
                                    clRed, clSilver, clTeal, clYellow);
var
  EditBoxOpen : Boolean = False;
  Drag: Boolean;
  OldXPos, OldYPos: Integer;

procedure TAngleLabel.CMFontChanged(var Message: TMessage);
VAR TTM : TTextMetric;
begin
  Inherited;
  IF csLoading IN ComponentState THEN Exit;
  Canvas.Font := Font;
{ GetTextMetrics(Canvas.Handle, TTM);
  IF TTM.tmPitchAndFamily AND TMPF_TRUETYPE = 0 THEN
    BEGIN
      Font.Name := 'Arial';
      MessageBeep(MB_ICONSTOP);
      ShowMessage('Only TrueType fonts permittted');
    END;}
end;

procedure TAngleLabel.MouseMove(var m:twmmouse);
var
  OldTop, OldLeft : Integer;
begin
  inherited;
  if drag and not EditBoxOpen then
    begin
  { if GVars.GOn then
    begin
      m.YPos  := GVars.GSize * ((m.YPos) div GVars.GSize );
      m.XPos := GVars.GSize * ((m.XPos) div GVars.GSize );
    end; }
    top:=top  - oldypos+m.ypos;
    if top < 0 then top := 0;
    left := left -  oldxpos+m.xpos;
    if left < 0 then left := 0;
  end;
  OldTop := Top;
  OldLeft := Left;
end;

procedure TAngleLabel.MouseLdown(var m:TWMMouse);
begin
    if EditMode then
  if not EditBoxOpen then
  begin
    inherited;
    BringToFront;
    drag:=true;
    oldxpos := m.xpos;
    oldypos := m.ypos;
  end;
end;

procedure TAngleLabel.MouseLUp(var m:twmmouse);
begin
  if not EditBoxOpen then
  begin
    inherited;
    drag:=false
  end;
end;

procedure TAngleLabel.MouseLDBlClk(var m:twmmouse);
var
  OldName, FontStyleString : String;
  OldSize, OldAngle, OldColor : Integer;
begin
  if EditMode then
  if not EditBoxOpen then
  begin
    inherited;
    EditBoxOpen := True;
    tpDlgLabel.OKBtn.Left := 251;
    tpDlgLabel.CancelBtn.Left := 331;
    tpDlgLabel.DeleteBtn.Left := 411;
    tpDlgLabel.DeleteBtn.Visible := True;
    tpDlgLabel.LEditText.Text := Caption;
    tpDlgLabel.ComboBoxFont.ItemIndex := tpDlgLabel.ComboBoxFont.Items.IndexOf(Font.Name);
    tpDlgLabel.FontColorBox.Selected := Font.Color;
    tpDlgLabel.SpinEditSize.Value := Font.Size;
    tpDlgLabel.SpinEditAngle.Value := Angle;
    tpDlgLabel.SpinEditPosX.Value := Left;
    tpDlgLabel.SpinEditPosY.Value := Top;
    tpDlgLabel.cboxBold.Checked := fsBold in Font.Style;
    tpDlgLabel.cboxItalic.Checked := fsItalic in Font.Style;
    tpDlgLabel.cboxUnderline.Checked := fsUnderline in Font.Style;
    if tpDlgLabel.ShowModal = mrOk then
    begin
      Caption := tpDlgLabel.LEditText.Text;
      Font.Name := tpDlgLabel.ComboBoxFont.Text;
      Font.Color := tpDlgLabel.FontColorBox.Selected;
      Font.Size := tpDlgLabel.SpinEditSize.Value;
      Angle := tpDlgLabel.SpinEditAngle.Value;
      Left := tpDlgLabel.SpinEditPosX.Value;
      Top := tpDlgLabel.SpinEditPosY.Value;
      if tpDlgLabel.cboxBold.Checked then
        Font.Style := [fsBold]
      else
        Font.Style := [];
      if tpDlgLabel.cboxItalic.Checked then
        Font.Style := Font.Style + [fsItalic];
      if tpDlgLabel.cboxUnderline.Checked then
        Font.Style := Font.Style + [fsUnderline];
  end
  else if tpDlgLabel.ModalResult = mrAbort then
  begin
    IntId := -1;
    Visible := false;
  end;
    EditBoxOpen := False;
  end;
end;

procedure TAngleLabel.SetAngle(Value: TAngle);
begin
  IF Value <> fAngle THEN
    BEGIN
      fAngle := Value;
      Invalidate;
    END;
end;


procedure TAngleLabel.SetLabColor(Value: TLabColor);
begin
  If Value <> FLabColor  then
  begin
  FLabColor := Value;
  Font.Color := Colors[FLabColor];
  end;
end;

constructor TAngleLabel.Create(AOwner: TComponent);
begin
  Inherited Create(AOwner);
  ControlStyle := ControlStyle + [csOpaque];
  AutoSize    := True;
  Transparent  := True;
  Font.Name := 'Arial';
  if LabText = '' then
    Caption := 'Label'
  else
    Caption := LabText;
  Font.Size := 10;
// Left := 20;
// Top := 30;
  LabColor := 1;
end;

procedure TAngleLabel.Paint;
VAR
  TLF    : TLogFont;
  R      : TRect;
  X,Y    : Integer;
  TH, TW,          {text width and height}
  AW, AH : Integer; {width & height of rect enclosing angled label}
BEGIN
  R := ClientRect;
  GetObject(Font.Handle, SizeOf(TLF), @TLF);
  TLF.lfEscapement := (((Angle MOD 360) + 360) MOD 360) * 10;
  WITH Canvas DO
    BEGIN
      Font.Handle := CreateFontIndirect(TLF);
      WITH Brush DO
        IF NOT Transparent THEN
          BEGIN
            Style := bsSolid;
            Color := Self.Color;
          END
        ELSE Style := bsClear;
      TW := TextWidth(Caption);
      TH := TextHeight(Caption);
      Width := TW + 2;
      Height := TW + 2;
    END;
  AW := Round((TW * Cos(Angle*pi/180)) +
    (TH * Sin(Angle*pi/180)));
  AH := Round((TW * Cos((Angle+90)*pi/180)) +
    (TH * Sin((Angle+90)*pi/180)));
  X := (R.Right-AW) DIV 2;
  Y := (R.Bottom-AH) DIV 2;
  if not Enabled then Canvas.Font.Color := clGrayText;
  Canvas.TextOut(X, Y, Caption);
END;

procedure Register;
begin
{  RegisterComponents('NJR', [TAngleLabel]);
  RegisterPropertyEditor(TypeInfo(TAngle), TAngleLabel,
    'Angle', TAngleProperty);}
end;

end.
Avatar billede justincase1089 Nybegynder
11. marts 2002 - 17:41 #12
Jeg vil ikke give koden, det er ikke en jeg har lavet. Hvad lyder sigtelsen på ?. Foodear, FYI så var de to af dem du nævner lukket, det tredie var ikke lukket, tak for fordi du gjorde mig opmærksom herpå. Det fjerde er det her som jeg hermed lukker.
Avatar billede justincase1089 Nybegynder
11. marts 2002 - 17:42 #13
Tak, Morten. Jeg vidste ikke, at ting kunne være så besværlige herinde :/
Avatar billede foodear Praktikant
11. marts 2002 - 17:43 #14
Oki
Avatar billede hojben Novice
11. marts 2002 - 17:44 #15
det har intet med besværlige at gøre.. det skal være fair for alle at se det som der bliver givet point for.. læs reglerne igen..

anmeldelsen ville ha lydt på (hvis koden ikke var kommet) pointoverførelse...
Avatar billede justincase1089 Nybegynder
11. marts 2002 - 17:49 #16
Reglerne læst .... sorry
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