| Структура программирования, программирование, языки программирования, книги программирование | На сайте представлена информация про программирование в Интернете и работу |
|
Как же запихнуть 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, выделение
- Как переделать 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;это будет наверное более лучший вариант, проблема соскролом отпадает. |