melckiy Posted June 9, 2008 Report Share Posted June 9, 2008 Короч есть у мя исходник программы вот при запуске исходников в делфи выдаёт много ошибок Вот не которые из ошибок которые пишит . Class TDBGridEh not faund. Ignore the error and continue? NOTE: Ignoring the error may cause components to be deleted or property values to be lost. Я пишу игнор и он опять кидает следующую ошибку. Class TEDBimage not faund. Ignore the error and continue? NOTE: Ignoring the error may cause components to be deleted or property values to be lost. Ищё выбивает следующую ошибку . Error reading Splitter1.ExplicitTop: Property ExplicitTop does not exist. Ignore the error and continue? NOTE: Ignoring the error may cause components to be deleted or property values to be lost. Как я понял у делфи нету тех компонентов на которых исходники , как понять коких компонентов мне не хватает? помогите плизз Link to comment Share on other sites More sharing options...
StrangeRRor Posted June 9, 2008 Report Share Posted June 9, 2008 как понять коких компонентов мне не хватает? Из сообщений, которые тебе выдаёт Delphi. TDBGridEh - DBGridEh, TEDBimage - EDBimage, и т.д. Link to comment Share on other sites More sharing options...
Darth Emil Posted June 9, 2008 Report Share Posted June 9, 2008 melckiy: во-первых какая версия делфи? Ты её часом не русифицировал? Link to comment Share on other sites More sharing options...
melckiy Posted June 10, 2008 Author Report Share Posted June 10, 2008 версия делфи 7 не чего я не русифицировал )) Link to comment Share on other sites More sharing options...
Darth Emil Posted June 10, 2008 Report Share Posted June 10, 2008 melckiy: когда делфи ставил, ПОЛНУЮ установку делал? Link to comment Share on other sites More sharing options...
Uka Posted July 23, 2008 Report Share Posted July 23, 2008 Судя по наименованию класса Вы пытаетесь скомпилировать проект содержащий компоненты из библиотеки EhLib Это стороняя библиотека компонентов для Delphi Ее необходимо проинсталировать, зарегестрировать пакеджи в делфи после чего все классы которые Вы перечислили появятся :-) Вот так. melckiy: когда делфи ставил, ПОЛНУЮ установку делал? TDBGridEh - не входит в стандартную поставку делфи необходимо скачать и доставить отдельно Link to comment Share on other sites More sharing options...
Skif Posted March 20, 2011 Report Share Posted March 20, 2011 Основательно уже подзабыл Делфи, но хочу немного изменить вид давно написанной проги. Надо всего лишь закрасить несколько колонок в StringGrid в фикисрованный цвет. Попробовал нагуглить, но там десятки статей с окрашиванием ячейки, получающей фокус. Link to comment Share on other sites More sharing options...
Teddy_Bear Posted March 20, 2011 Report Share Posted March 20, 2011 (edited) Основательно уже подзабыл Делфи, но хочу немного изменить вид давно написанной проги. Надо всего лишь закрасить несколько колонок в StringGrid в фикисрованный цвет. Попробовал нагуглить, но там десятки статей с окрашиванием ячейки, получающей фокус. Вот фрагмент кода по событию OnDrawCell для таблицы. Выделяет красным полем и белым цветом текст ячейки, помеченную как ошибочную в массиве ArrayOfErr Отрихтуй под себя. procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);varS:String;beginS:=Form1.StringGrid1.Cells[ACol,ARow];Form1.StringGrid1.Canvas.Brush.Color:=clMoneyGreen;if ARow mod 2 = 0 then begin Form1.StringGrid1.Canvas.Brush.Color:=RGB(255,255,150);end;if ARow=0 then Form1.StringGrid1.Canvas.Brush.Color:=clBtnFace;Form1.StringGrid1.Canvas.FillRect(Rect);Form1.StringGrid1.Canvas.TextOut(Rect.Left+2,Rect.Top+2,S);if ArrayOfErr[ACol,ARow] then beginwith Form1.StringGrid1.Canvas do begin Brush.Color:=clRed; Font.Color:=clWhite; FillRect(Rect); TextOut(Rect.Left+2,Rect.Top+2,S); end;end;end; Надеюсь на место подальше от двигателя в звездном корвете :) Edited March 20, 2011 by Teddy_Bear Link to comment Share on other sites More sharing options...
Skif Posted March 20, 2011 Report Share Posted March 20, 2011 Отрихтуй под себя. :) Если бы я всё помнил. Понимаю что надо впихнуть строку типа: StringGrid1.Cells[3, gridx]:= clBlue ; Но куда и как оформить, пока не соображу. :dontgetit: Надеюсь на место подальше от двигателя в звездном корвете И возле иллюминатора. :) Link to comment Share on other sites More sharing options...
Teddy_Bear Posted March 20, 2011 Report Share Posted March 20, 2011 (edited) procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);//ACol - колонка таблицы, ARow - строка, Rect - прямоугольник, которому соответствует ячейка на канве таблицыvarS:String;gridx:Integer;begingridx:=2; //Не знаю, как ты передаешь эту переменнуюS:=Form1.StringGrid1.Cells[ACol,ARow]; //Считываем текст в ячейкеForm1.StringGrid1.Canvas.Brush.Color:=clMoneyGreen; //Цвет фона - мой любимый - люблю деньги и зеленые особенно :)if ARow=0 then Form1.StringGrid1.Canvas.Brush.Color:=clBtnFace; //Цвет первой строки таблицы (типа серый)Form1.StringGrid1.Canvas.FillRect(Rect); //Заполнение прямоугольника, соответствующего ячейкеForm1.StringGrid1.Canvas.TextOut(Rect.Left+2,Rect.Top+2,S); //Занесение туда тектса (закрашенного при заливке прямоугольникаif ACol=gridx then begin //условие - если колонкк имеет номер grdix with Form1.StringGrid1.Canvas do beginBrush.Color:=clBlue; //Выбор цвета заливкиFont.Color:=clWhite; //Выбор цвета текстаFillRect(Rect); //заливка прямоугольникаTextOut(Rect.Left+2,Rect.Top+2,S); //занесение текста поверх прямоуг end;end;end; Или уточни задание. Edited March 20, 2011 by Teddy_Bear Link to comment Share on other sites More sharing options...
Teddy_Bear Posted March 20, 2011 Report Share Posted March 20, 2011 StringGrid1.Cells[3, gridx]:= clBlue ; Увы, Cell не объект (не подобъект StringGrid, как можно бы было предположить по точке, отделяющей Grid от Cells. Поэтому тупо вручную закрашиваем и восстанавливаем текст на событие отрисовка ячейки - OnDrawCell. Благо Дельфя предоставляет положение этого прямоугольника через Rect независимо от того, проскроллил ли ты грид и куда. Link to comment Share on other sites More sharing options...
Skif Posted March 20, 2011 Report Share Posted March 20, 2011 Или уточни задание. Всё элементарно, без изысков. Есть таблица, куда заносятся цифры. Надо покрасить часть колонок в разные цвета (массив большой и ключевые колонки хочу выделить). Никакого изменения цвета в зависимости от фокуса, вводимых данных и т.д. Просто зафиксированные цвета. Приблизительно так (нарисовал в Вёрде): Link to comment Share on other sites More sharing options...
Skif Posted March 20, 2011 Report Share Posted March 20, 2011 Здесь как-то изначально закрасили строки. Мне бы также, только столбцы. Link to comment Share on other sites More sharing options...
Teddy_Bear Posted March 20, 2011 Report Share Posted March 20, 2011 (edited) // Глобальный массив ArrColTab:Array[0..100] of TColor;procedure TForm1.FormCreate(Sender: TObject);...for k:=0 to 24 do begin ArrColTab[k]:=clWhite;end;ArrColTab[3]:=clSkyBlue; назначаем фиксированные цвета избранным колонкамArrColTab[5]:=clAqua;ArrColTab[8]:=clYellow;ArrColTab[10]:=RGB(128,200,197);...end;procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);varS:String;clCellsNow:TColor;beginS:=Form1.StringGrid1.Cells[ACol,ARow];if ARow=0 then beginclCellsNow:=clBtnFace;; end else beginif ArrColTab[ACol]=clWhite then begin clCellsNow:=clMoneyGreen; if ARow mod 2 = 0 then begin // clCellsNow:=RGB(255,255,150); //полоски по горизонтали - бесплатный бонус end; // end else begin clCellsNow:=ArrColTab[ACol]; end;end;with Form1.StringGrid1.Canvas do begin Brush.Color:=clCellsNow; FillRect(Rect); TextOut(Rect.Left+2,Rect.Top+2,S);end;end; Для замены на строки ACol заменить на ARow Edited March 20, 2011 by Teddy_Bear Link to comment Share on other sites More sharing options...
Teddy_Bear Posted March 20, 2011 Report Share Posted March 20, 2011 (edited) Здесь как-то изначально закрасили строки. Мне бы также, только столбцы. ArrColTab:Array[0..100] of TColor;procedure TForm1.FormCreate(Sender: TObject);...for k:=0 to 24 do begin ArrColTab[k]:=clWhite;end;ArrColTab[1]:=RGB(248,182,246); //Цвета по образцуArrColTab[2]:=RGB(254,237,200);ArrColTab[3]:=RGB(184,226,246);ArrColTab[4]:=RGB(183,248,220);ArrColTab[6]:=clAqua;ArrColTab[8]:=clYellow;ArrColTab[10]:=RGB(128,200,197);...end;procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);varS:String;clCellsNow:TColor;beginS:=Form1.StringGrid1.Cells[ACol,ARow];if ARow=0 then beginclCellsNow:=clBtnFace; end else beginif ArrColTab[ARow]=clWhite then begin clCellsNow:=clMoneyGreen; end else begin clCellsNow:=ArrColTab[ARow]; end;end;if ACol=0 then clCellsNow:=clBtnFace;with Form1.StringGrid1.Canvas do begin Brush.Color:=clCellsNow; FillRect(Rect); TextOut(Rect.Left+2,Rect.Top+2,S);end;end; С отступами беда ... Edited March 20, 2011 by Teddy_Bear 1 Link to comment Share on other sites More sharing options...
Skif Posted March 21, 2011 Report Share Posted March 21, 2011 (edited) Спасибо, попытаюсь вспомнить. Думал закрасить пару колонок - дело нескольких строчек. Edited March 21, 2011 by Skif Link to comment Share on other sites More sharing options...
Skif Posted March 21, 2011 Report Share Posted March 21, 2011 Подумалось, а нельзя ли внести цвет для нескольких колонок в том редакторе Дельфина, где отражаются все сойства объектов, расположенных на форме? Link to comment Share on other sites More sharing options...
Teddy_Bear Posted March 21, 2011 Report Share Posted March 21, 2011 Подумалось, а нельзя ли внести цвет для нескольких колонок в том редакторе Дельфина, где отражаются все свойства объектов, расположенных на форме? Повторюсь, увы, Cell не объект (не подобъект StringGrid, как можно бы было предположить по точке, отделяющей Grid от Cells). Соответственно, через инспектор объектов не поуправляешь. Возможно, есть компонент с такими свойствами, но сомневаюсь. Посмотри на http://www.delphiplus.org/ БЕСПЛАТНО=> Rx Library за 2010 год - может появилось. По раскраске Grid ссылочка с подробными объяснениями http://www.delphikingdom.com/asp/viewitem.asp?catalogid=168 Впрочем, принципиально нового там нет - ручное управление через OnDrawCell. 2 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now