//Unit1.h
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Grids.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TStringGrid *StringGrid1;
private: // User declarations
TWndMethod OldGridProc;
void __fastcall NewGridProc(TMessage &Msg);
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
//Unit1.cpp
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
OldGridProc = StringGrid1->WindowProc;
StringGrid1->WindowProc = NewGridProc;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::NewGridProc(TMessage &Msg)
{
TRect Rect1, Rect2, Rect;
String Caption;
int CaptionLength;
switch (Msg.Msg)
{
case WM_PAINT:
{
OldGridProc(Msg);
Rect1 = StringGrid1->CellRect(1, 1);
Rect2 = StringGrid1->CellRect(2, 1);
::UnionRect(&Rect, &Rect1, &Rect2);
StringGrid1->Canvas->Brush->Color = StringGrid1->FixedColor;
StringGrid1->Canvas->FillRect(Rect);
Frame3D(StringGrid1->Canvas, Rect, clBtnHighlight, clWindowFrame, 1);
Caption = "Union cells";
CaptionLength = Caption.Length();
::SetBkMode(StringGrid1->Canvas->Handle, TRANSPARENT );
::DrawText(StringGrid1->Canvas->Handle, Caption.c_str(), CaptionLength, &Rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER );
Msg.Result = 0;
return;
}
case WM_DESTROY:
{
StringGrid1->WindowProc = OldGridProc;
break;
}
}
OldGridProc(Msg);
}
StingGrid - Объеденение ячеек
С наступающим.
Подскажите как в StingGrid организовать объединение ячеек.
Цитата:
Originally posted by Bigzone2
Подскажите как в StingGrid организовать объединение ячеек.
Подскажите как в StingGrid организовать объединение ячеек.
Написать собственный StringGrid. Серьезно.
Цитата:
Originally posted by smartsoft
Написать собственный StringGrid. Серьезно.
Написать собственный StringGrid. Серьезно.
А расширить возможности данного низя ? :{
Цитата:
Originally posted by Bigzone2
А расширить возможности данного низя ? :{
А расширить возможности данного низя ? :{
Можно, сделай свой TUnitedStringGrid - наследник TStringGrid.Только тяжело это будет...
Цитата:
Originally posted by Bigzone2
StingGrid - Объединение ячеек
С наступающим.
Подскажите как в StingGrid организовать объединение ячеек.
StingGrid - Объединение ячеек
С наступающим.
Подскажите как в StingGrid организовать объединение ячеек.
А для чего нужно объединять? Если только для приятного вида на форме, тогда есть такая штука THeaderControl.
Цитата:
Originally posted by Bigzone2
А расширить возможности данного низя ? :{
А расширить возможности данного низя ? :{
Специально для Bigzone2. Сыровато конечно, но идея д.б. ясна. Кладу проект в аттач.
Код:
Спасибо большое.