Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать выравнивание по правому краю TEdit? 
:(
    Опции темы
Vit
Дата 22.7.2002, 06:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Как сделать выравнивание по правому краю текста в TEdit?


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
МММ
Дата 22.7.2002, 06:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 354
Регистрация: 18.6.2002

Репутация: нет
Всего: 1



Код

type
 TNumEdit = class(TEdit)
    procedure CreateParams(var Params: TCreateParams); override;
.......
procedure TNumEdit.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.Style := Params.Style or ES_MULTILINE or ES_RIGHT;
end;

вроде так :cool


--------------------
PM MAIL   Вверх
Song
Дата 22.7.2002, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: 2
Всего: 4



А без наследника через SetWindowLong() не прокатит?


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
Vit
Дата 22.7.2002, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Цитата(Song @ 22.7.2002, 08:20)
А без наследника через SetWindowLong() не прокатит?

Замечательная функция, особенно порадовало что в хэлпе нет значений для третьего параметра, где взять доку по возможным значениям?


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Song
Дата 22.7.2002, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: 2
Всего: 4



Хмм.. Vit я думал Вам известна она. Вообще замечательный способ постаить/убрать стиль без наследования CreateParams(). Но правда не всегда получается (условностей много, долго обяснять). Третье значение это как раз те значения стилей, что нужно установить.


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
Vit
Дата 22.7.2002, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Известна, я ее применял и не раз, но каждый раз значение стилей просто сдирал с какого-нибудь примера, я так и не смог найти в помощи список доступных стилей, подозреваю что она использует этот integer как массив битов но методом научного тыка проверять квкой бит что обозначает никак руки не доходили, наверное займусь на досуге... И всё же если у кого есть дока было бы неплохо иметь...


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Song
Дата 22.7.2002, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: 2
Всего: 4



Да неее... всё до банальности просто.
Вот пример как убрать кнопку с панели задач.

SetWindowLong(Application.Handle,GWL_EXSTYLE,GetWindowLong(Application.Handle,GWL_EXSTYLE) or WS_EX_TOOLWINDOW);

Application.Handle - дискриптор окна, у которого будет выполняться операция, описываемая вторым параметром SetWindowLong()

GWL_EXSTYLE - говорим, что меняем расширенный стиль окна. Есть другие команды, см. Help WinSDK

Третий параметр показывает тот новой стиль который мы устанавливаем для окна (я говорю про операцию со стилем, имея ввиду, что второй параметр GWL_EXSTYLE. Если параметр будет другой тот и этот параметр будет другой). Как мы устанавливаем новый стиль? Очень просто. Сначала получаем старый стиль окна - GetWindowLong() - с теми же параметрами, а потом соединяем его с нужным нам стилем например через логическую операцию or.

Как видите, ничего сложного.


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
Vit
Дата 22.7.2002, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Цитата(Song @ 22.7.2002, 10:47)
Третий параметр показывает тот новой стиль который мы устанавливаем для окна
....
соединяем его с нужным нам стилем

Это всё совершенно ясно, спасибо за лбъяснения, но я это знаю, чего я не знаю, так это список стилей которые доступны, вот применяшь ты в примере стиль WS_EX_TOOLWINDOW, а какие ещё есть?


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Vit
Дата 22.7.2002, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



SetWindowLong не работает, на форме Caption по правому краю выровнять - пожалуйста, а текст в Edit - нет!


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Vit
Дата 22.7.2002, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Цитата
Код

type
 TNumEdit = class(TEdit)
    procedure CreateParams(var Params: TCreateParams); override;
.......
procedure TNumEdit.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.Style := Params.Style or ES_MULTILINE or ES_RIGHT;
end;

вроде так :cool

Так работает, спасибо большое. Только вот ES_MULTILINE там не так чтобы был нужен.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Song
Дата 22.7.2002, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: 2
Всего: 4



Цитата(Vit @ 22.7.2002, 20:39)
Цитата(Song @ 22.7.2002, 10:47)
Третий параметр показывает тот новой стиль который мы устанавливаем для окна
....
соединяем его с нужным нам стилем

Это всё совершенно ясно, спасибо за лбъяснения, но я это знаю, чего я не знаю, так это список стилей которые доступны, вот применяшь ты в примере стиль WS_EX_TOOLWINDOW, а какие ещё есть?

В MSDN'е список есть, скорей всего. Можно в SDK набрать WS_ - все стили на ладони :-)


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
dm9
Дата 22.7.2002, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: 6
Всего: 137



>Как сделать выравнивание по правому краю текста в TEdit?
Есть ещё один (бредовый) способ: использовать однострочный memo.
Memo1.WordWrap    := False;
Memo1.WantReturns := False;
Memo1.Alignment   := taRightJustify;
PM MAIL ICQ   Вверх
MBo
Дата 23.7.2002, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 234
Регистрация: 10.6.2002

Репутация: 3
Всего: 18



стили есть в справке по CreateWindow,CreateWindowEx
PM MAIL   Вверх
Vit
Дата 23.7.2002, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Спасибо всем, на удивление тема оказалась интересной!


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0701 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.