Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];

Вниз

Как в Form.Caption поместить текст с правой и левой стороны?   Найти похожие ветки 

 
nick_mas ©   (2004-07-30 00:42) [0]

Привет всем! Столкнулся с таким вопросом: Как разместить в Form1.Caption текст слева и справа одновременно, например text1 - слева, а text2 - справа?


 
Sanek_metaller ©   (2004-07-30 01:07) [1]

Используй пробел


 
nick_mas ©   (2004-07-30 01:19) [2]

А если в процессе работы программы этот текст будет изменяться, т.е. длина текстов в заголовке будет изменяться, значит ты предлагаешь пересчитывать при разных ситуациях разное количество пробелов!?
  А есть ли другой способ? Вот именно text1 выравнивается по левому краю, а text2 - именно по правому краю?


 
KADAN ©   (2004-07-30 04:02) [3]

unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   Edit1: TEdit;
   procedure Edit1Change(Sender: TObject);
 private
   procedure SetFormRightCaption(s: string);
   procedure WMNCPaint(var Msg: TWmNcPaint); message WM_NCPaint;
   procedure WMNCActivate(var msg: TwmncActivate); message WM_NCActivate;
   procedure WMSize(var msg:TMessage); message WM_SIZE;
 public
 end;

var
 Form1: TForm1;
 CapColor:Cardinal;
 cap:string;
 rc:TRect;

implementation

{$R *.DFM}

procedure TForm1.WmNcPaint(var Msg: TWmNcPaint);
var
 WDc: HDc;
begin
 inherited;
 WDc := GetWindowDc(Handle);
 SetBkMode( WDC, TRANSPARENT );
 SetTextColor(WDC, CapColor);
 DrawText(wDC, pchar(cap), -1, rc, DT_RIGHT);
 ReleaseDc(Handle,WDC);
end;

procedure TForm1.WMNcActivate(var msg: TwmncActivate);
begin
inherited;
if msg.Active then
  CapColor:= GetSysColor(COLOR_CAPTIONTEXT)
else
  CapColor:= GetSysColor(COLOR_INACTIVECAPTIONTEXT);
SetFormRightCaption(cap);
end;

procedure TForm1.WMSize(var msg: TMessage);
begin
 rc.Left := GetSystemMetrics( SM_CXSIZE ) +
            GetSystemMetrics( SM_CXBORDER ) +
            GetSystemMetrics( SM_CXFRAME );
 rc.Top := GetSystemMetrics( SM_CYFRAME );
 rc.right := width - rc.Left -
            2*GetSystemMetrics( SM_CXSIZE )-
            GetSystemMetrics( SM_CXFRAME );
 rc.bottom := GetSystemMetrics( SM_CYSIZE );
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
 SetFormRightCaption(edit1.Text);
end;

procedure TForm1.SetFormRightCaption(s: string);
begin
 cap:=edit1.text;
 SendMessage(handle, WM_NCPAINT,CreateRectRgn(left+rc.Left, top+rc.Top,left+rc.Right,top+rc.Bottom),0);
end;

end.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.048 c
1-1091193958
Studentik
2004-07-30 17:25
2004.08.15
Как заставить при нажатии на SpeedButton выскакивало PopupMenu?


14-1090922993
Snip
2004-07-27 14:09
2004.08.15
Питер может ВСТРЕТИМСЯ?


1-1091346465
STALKER
2004-08-01 11:47
2004.08.15
Можно ли массив типа Word перевести в массив типа String


14-1091178545
}|{yk
2004-07-30 13:09
2004.08.15
Delphi Informant Magazine Readers Choice Awards 2004


6-1086970510
Neo09
2004-06-11 20:15
2004.08.15
Проблема с "net send"ом.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский