Главная страница
    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.04 c
14-1090830171
Типа гость
2004-07-26 12:22
2004.08.15
О копирайтах


1-1091380009
GuAV
2004-08-01 21:06
2004.08.15
Как вставить кнопки в TToolBar, созданный в ран-тайме?


14-1091179093
Vixen
2004-07-30 13:18
2004.08.15
Написать, а потом загнать ShareWare программу.


1-1091175674
Гость
2004-07-30 12:21
2004.08.15
Как перехватить нажатие...


1-1091571282
kukun
2004-08-04 02:14
2004.08.15
Вопрос: Delphi - организация удобного interface а





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский