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

Вниз

Нарисовать сетку на форме   Найти похожие ветки 

 
Dark Hunter   (2004-01-20 18:58) [0]

Здравствуйте, знатоки!
Хочу нарисовать сетку на форме (панели, ещё чём-нить), вроде как в делфи в дизайнере формы точки, но лучше сетку. предполагается сделать из этой формы/панели/ещё чего тоже дизайнер и растаскивать по нему компоненты (хотелось бы просто наследники TGraphicControl). Как и где нужно рисовать сетку, и (это правда уже другой вопрос), как сделать такой компонент, чтоб его потом мышкой таскать?


 
Семен Сорокин   (2004-01-20 19:03) [1]

Как и где нужно рисовать сетку
обработай Paint наследника TGraphicControl, и не забудь св-во Align. (пол часа не больше)
как сделать такой компонент, чтоб его потом мышкой таскать
любой наследник от TControl.


 
Dark Hunter   (2004-01-20 20:17) [2]

как сделать такой компонент, чтоб его потом мышкой таскать
любой наследник от TControl.

что нужно обрабатывать? какое сообщение? и как?
общерекомендуемое mousedown, releasecapture, self.perform(чего-то там) работало на tbutton, но не на наследнике TGraphicControl


 
Семен Сорокин   (2004-01-21 09:09) [3]

Dark Hunter (20.01.04 20:17) [2]
что нужно обрабатывать? какое сообщение? и как?

Механизм Drag&Drop слыхал о таком?


 
Dark Hunter   (2004-01-21 13:27) [4]

в продолжение темы:
получилась форма, на ней наследник TCustomPanel с этой сеткой, размеры панели много больше размеров формы. Появились скроллбары, и это замечательно.
Но: сетка рисуется только на панели положить какой-нить компонент, перестаёт отрисовываться изначально невидимая часть сетки на этой панели, только левый верхний угол ~800х600 (в моём случае такое разрешение). В остальных местах обычная серая панель :(
как рисовать сетку по всей панели?


 
Serge   (2004-01-21 13:40) [5]

Перепиши для твоей панели событие OnPaint - где будешь рисовать сетку (по всей панели).


 
Dark Hunter   (2004-01-21 16:10) [6]

пишу в обработчике OnPaint:

Brush.Color := FGridBackColor;
Brush.Style := bsSolid;
Rectangle(Rect);
if FShowGrid then begin
Brush.Color := FGridForeColor;
Brush.Style := bsCross;
Rectangle(Rect);
end

сетка рисуется полностью.
Стоит на неё в этой изначально видимой области положить например TLabel (он наследник TGraphicControl), или мой компонент (тоже от TGraphicControl) сетка рисуется только на этой части слева вверху, размером с экран.
Размеры панели остаются такими, как и были (4000*3000).
Это глюк в виндовсе или у кого? :)

соори за нерусское построение предложений


 
Serge   (2004-01-21 16:29) [7]

И где же тут сетка - я вижу всего два Rectangle причем неполые.


 
darkhunter   (2004-01-21 16:33) [8]

мои мысли:
первая заливка сплошная, цветом фона FGridBackColor (защищённый член класса моей панели);
вторая, при условии, что нужно рисовать сетку - заливка паттерном bsCross цветом FGridForeColor (аналогично до);
енд;
объясни свой взгляд на ситуацию, пожалуйста


 
Serge   (2004-01-21 18:19) [9]

Я не знаю что у тебя но я вот пробовал создать компонент

Unit GridPanel;

Interface

Uses
Windows, Messages, SysUtils, Classes, Controls, ExtCtrls, Graphics;

Type
GrPanel = Class(TCustomPanel)
private
{ Private declarations }
protected
{ Protected declarations }
Procedure Paint; override;
public
{ Public declarations }

published
{ Published declarations }
End;

Procedure Register;

Implementation

Procedure GrPanel.Paint;
Begin
Inherited Paint;
With Canvas Do
Begin
Brush.Style := bsSolid;
Brush.Color:=clBtnFace;
FillRect(ClientRect);
Brush.Style := bsCross;
Brush.Color := clRed;
Rectangle(ClientRect);
End;
End;

Procedure Register;
Begin
RegisterComponents("Standard", [GrPanel]);
End;

End.

Поставил его не на форму а в ScrollBox и добавил на панель кнопку, лэйбл - при прокрутке все нормально сетка видна по всей панели.



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

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

Наверх





Память: 0.46 MB
Время: 0.01 c
1-2113
F...
2004-01-22 05:13
2004.02.02
Как запустить зарегистрированную почтовую программу?


1-2139
UbiVak
2004-01-19 15:31
2004.02.02
Ищу


3-1959
KIR
2004-01-09 13:41
2004.02.02
Можно ли сложить строки в ХП IB


1-2129
pavlov
2004-01-19 17:17
2004.02.02
утилита командной строки


4-2415
Bers
2003-11-25 11:10
2004.02.02
WriteFile в чем ошибка???





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