Главная страница
    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.45 MB
Время: 0.034 c
6-1087476858
KIDel
2004-06-17 16:54
2004.08.15
Где Win200 хранит все данные протокола TCP/IP ?


4-1088107162
AlexZ
2004-06-24 23:59
2004.08.15
from rsrc to file.


14-1090895861
Думкин
2004-07-27 06:37
2004.08.15
С днем рождения! 27 июля


3-1090590823
Гость
2004-07-23 17:53
2004.08.15
SELECT с датой


8-1085863005
Dankin
2004-05-30 00:36
2004.08.15
Как скопировать какуюто часть изображения





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