Структура программирования, программирование, языки программирования, книги программирование На сайте представлена информация про программирование в Интернете и работу  

Как же запихнуть rtf as string в MSWord?, Если долго мучаться - что-нибудь...
Статус файла
дайте пожалуйста теоретическое объяснение типу, IDispatch
Как сделатьзапуск процедуры только раз в день?, вопрос
помогите найти Kylix3 crack, не могу найти Kylix3 crack
Как сохранить результат запроса ADOQuery1 во внешн, Сохранение рез-та запроса в dbf
StringGrid, выделение
id HDD or CPU, Как узнать серийный номер HDD или CPU...
перевод с++ в паскаль
помогите, нужен authorization key, serial number
Положение каретки в пикселях, Положение каретки в пикселях в TRichEdit
преобразование, pchar -> string
плавающаяточка, Переполнение операции с плавающей точкой
Как в запр.в TQuery2 исп. НД,полученный от TQuery1, select из НД
Поиск слов по маске
Снова MDI, MDI в длл
StringGrid - ввод только числа?
Зрительные Образы, те, которые в WindowsMedia Player 7-8
Заработок в российском интернете!, Супер-предложение!!! 50000$ за 90 дней!
Perevod dvoichnogo koda iz Memo v fajl, Kak sohranitj dvoichnij kod v fajl ?
Извлечение из множества, Извлечение из множества
Запись в ехе, В самое начало...
Событие Click дин. созданного пункта меню.
QRImage, Вставка БОЛЬШОГО рисунка в отчёт
Как позиционировать SelectDirectory на экране?
Menu, Как добраться до меню окна любой папки
Подскажите как оптимизировать алгоритм
Reports, Вывод отчета с предусловием
Получить кол-во страниц на печати, как программно получить сабж?
Delphi+Mapi, Как получить уведомление о доставке
Image1.Canvas:=Printer.Canvas, ERROR :(
Удаление строки в StringGrid, Удаление строки в StringGrid
Oracle Direct Access + Delphi, как вызвать функцию
Remote Administrator
преобразование типов, как из Double получить Integer
Как Вы относитесь к курящим девушкам?
Вопрос по работе со строками, Антоним функции AnsiPos
Помогите написать....., Выключение компа.....
Про процедуры, и подачу массивов в них
Редактирование DBGrid, Если Query отсортирован
Кто теоретически объяснит мне, что из себя, представляет Self?
мр3 файл...., как можно проиграть в своей проге мр3 фа
Многострочие в СтрингГрид, Многострочие в СтрингГрид
Многопоточность
Требуется досрочно прервать запрос SELECT, Вопрос прерывания запроса.
Курсовая, Закраска области
Delphi - текст, написанный под углом, большая просьба помочь разработке
Flat-свойство
экспорт файла реестра
CGI
как программно получить превилегии?, для того что-бы управлять питанием
клик при нажатой клавише..., клик при нажатой клавише шифт...
Исходники VCL, Как вы их используете
Работа со строками в Tmemo
вопрос в тему, программировани
Нужна помощь по Delphi !!!, Не могу установить, проблемы ...
Как прочитать описание .CPL файла?
Разработка компонента
загрузка шрифтов из ресурса, автономные шрифты в приложении
i want to get CPl info, помогите люди добрые!!...
Упорядочивание в TOpendialog
Как программно работать со звуками?, звуки инструментов MIDI !!!!
Запись массива в файл, Как правильно записать массив в файл
Rave 5 в Delphi 7, Rave 5 в Delphi 7
Где купить Delphi 7!, Я в отчаянии!
опять QReport :)), никак не могу сделать многостранич. д-т
ActiveX control типа toolbar, создание контролов, как же это делают?
Skin, компоненты
Принудительная пересовка, наверное формы.....
Виртуальная физика, Графики, приборы и все такое

Платные хостинги     Раскрутка сайта     Книги по программированию


StringGrid, выделение

Только здесь 1000 посетителей на Ваш сайт всего за 3 у.е.!

- Как переделать StringGrid так чтобы выделение ячеек было не прямоугольным, а таким же как при выделении текста. Т.е. как будто текст это есть таблица где Row это строка, а Col это позиция символа в строке.т.е. так:sdgflkjs;flkgjsd;gflkjs;dflkgjsf;dglkjcbvnxcbjstnglsoinfoijse;roijtgdf;glisndoigjseg;ndfgklsdng;sgso;erjgdflkgjsd;ogisjerg;osdfjgsdfl;kgjserigojs;fglsjdgo;isdrj;sojgгде выделение выделено italic+bold.СУВ.

- Вручную это делать #опа...Сказать как могу: TStringGrid.onDrawCell а программируй сам

- Можно так:procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;  Rect: TRect; State: TGridDrawState);beginif gdSelected in State thenbegin  StringGrid1.Canvas.Brush.Color:=clWhite;  StringGrid1.Canvas.FillRect(Rect);  StringGrid1.Canvas.Font.Color:=clBlack;  StringGrid1.Canvas.Font.Style:=[fsBold,fsItalic];  StringGrid1.Canvas.TextOut(Rect.Left,Rect.Top,StringGrid1.Cells[ACol,ARow]);end;Т.е. на канву рисуешь то, что написано в ячейке.

- Dapo, ты ничего не понял...

- А почему #опа то?Сам я конечно без подсказки не смогу (быстро) сделать это если сидеть недельку, то нгаверное можно. Я к тому что может кто-то уже делал это или знает куда носом меня ткнуть (к #опе никакого отношения).СУВ.ЗЫ. А VIT мне может помочь? ;)

- Я этого не делал, подозреваю что работа не маленькая. Попробуй поискать готовые компоненты

- Я с такой проблемой еще не сталкивался, но вот первое, что пришло на ум(может как то поможет):FirstPos, SecondPos:TPoint;Downed:Boolean=False;//Сохранение координат при нажатии кнопки мышкиprocedure TForm1.StringGrid1MouseDown(Sender: TObject;  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin  FirstPos.X:=x;  FirstPos.y:=y;  Downed:= not Downed;end;procedure TForm1.StringGrid1MouseUp(Sender: TObject; Button: TMouseButton;  Shift: TShiftState; X, Y: Integer);beginDowned:= not Downed;end;//Сохранение координат при перемещении нажатой мышкиprocedure TForm1.StringGrid1MouseMove(Sender: TObject; Shift: TShiftState;  X, Y: Integer);beginif Downed thenbegin SecondPos.X:=x; SecondPos.Y:=y;end; end;// Я не стал додумывать прорисовку, так как думаю ето можно сделать самому//но вот к примеру как можно проверять вхождение запомненных координат в ячейку сеткиprocedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;  Rect: TRect; State: TGridDrawState);beginif Downed then begin   StringGrid1.Brush.Color:=clred;   if PtInRect(StringGrid1.CellRect(ACol,ARow),FirstPos) then      FillRect(GetDC(StringGrid1.Handle),Rect,StringGrid1.Brush.Handle);   if PtInRect(StringGrid1.CellRect(ACol,ARow),SecondPos) then      FillRect(GetDC(StringGrid1.Handle),Rect,StringGrid1.Brush.Handle) end;end;Думаю можно сделать так - построить регион на основе запомненных координат и потом его закрашивать хотя точно сказать не могу(мало опыта еще))))Надеюсь тебе ето как то поможет)

- Бывает,  с тупил. . А если на OnMouseMove поставить MouseToCell + запись положения ячейки в массив + вычисление положений других ячеек (которые должны попасть в селект) и на OnDrawCell перекраска другим цветом, всех запомненых ячеек.Тут хоть змейкой выделяй. Или я опять ?  

- Выделить - это закрасить другим цветом и как-то это запомнить? Чем не вариант?var  Form1: TForm1;  SGA:array [0..9,0..9] of integer;  MCol,MRow:integer;implementation{$R *.dfm}procedure TForm1.StrGrdMouseMove(Sender: TObject; Shift: TShiftState; X,  Y: Integer);beginStrGrd.MouseToCell(x,y,MCol,MRow);SGA[MCol,MRow]:=1;//значит выделена, тут и условия выделения поставитьend;procedure TForm1.StrGrdDrawCell(Sender: TObject; ACol, ARow: Integer;  Rect: TRect; State: TGridDrawState);beginif SGA[ACol,ARow]=1 thenbegin  StrGrd.Canvas.Brush.Color:=clBlue;  StrGrd.Canvas.FillRect(Rect);end;end;Ну так примерно можно, конечно еще снятие выделения нужно предусмотреть.

- Еще не забыть gdRangeSelect снять

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

- Дык я же и написал, что нужно поставить условия выделения. У нас матрица получается с 0-ми и 1-ми. Ими и нужно оперировать. С массивом то проще работать.

- Спасибо, только сложности все-таки возникают если таблица со скролом, кроме того выделение вшитое тоже мешает.СУВ.

- Да, скрол мешает, когда мышка уходит за пределы StringGrid-а. Но это можно обойти (ведь мышка все равно вернется на StringGrid или вернуть ее). А по поводу встроенного выделения - убери опцию gdRangeSelect. То что я там написал еще дорабатывать и дорабатывать, но начало положено .

- Извините за флуд (нужно сначала проверять, а потом писать).Можно на OnSelectCell повесить:SGA[ACol,ARow]:=1;это будет наверное более лучший вариант, проблема соскролом отпадает.

Интернет казино     Онлайн игры     Увеличение члена     Купить DVD


Главная страница | opengl программирование | программирование бейсик | программирование интерфейса | программирование pocket | программирование заказы | задача динамического программирования | prolog программирование | стохастическое программирование | процедурное программирование | история языков программирования | структура программирования | языки программирования высокого уровня | программирование устройств | функции программирования | программирование siemens | списки программирование | язык программирования java | олимпиада программирование | программирование мобильных телефонов | дипломная работа программирование | программирование palm | Ссылки

Все про процедурное программирование