Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Помогите с Delphi


Рекомендуемые сообщения

Короч есть у мя исходник программы вот при запуске исходников в делфи выдаёт много ошибок

Вот не которые из ошибок которые пишит .

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.

Как я понял у делфи нету тех компонентов на которых исходники , как понять коких компонентов мне не хватает?

помогите плизз

Ссылка на комментарий
Поделиться на другие сайты

как понять коких компонентов мне не хватает?

Из сообщений, которые тебе выдаёт Delphi. TDBGridEh - DBGridEh, TEDBimage - EDBimage, и т.д.

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

Судя по наименованию класса Вы пытаетесь скомпилировать проект

содержащий компоненты из библиотеки EhLib

Это стороняя библиотека компонентов для Delphi

Ее необходимо проинсталировать, зарегестрировать пакеджи в делфи

после чего все классы которые Вы перечислили появятся :-)

Вот так.

melckiy: когда делфи ставил, ПОЛНУЮ установку делал?

TDBGridEh - не входит в стандартную поставку делфи необходимо скачать

и доставить отдельно

Ссылка на комментарий
Поделиться на другие сайты

  • 2 года спустя...

Основательно уже подзабыл Делфи, но хочу немного изменить вид давно написанной проги.

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

Ссылка на комментарий
Поделиться на другие сайты

Основательно уже подзабыл Делфи, но хочу немного изменить вид давно написанной проги.

Надо всего лишь закрасить несколько колонок в 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;

Надеюсь на место подальше от двигателя в звездном корвете :)

Изменено пользователем Teddy_Bear
Ссылка на комментарий
Поделиться на другие сайты

Отрихтуй под себя.

:) Если бы я всё помнил. Понимаю что надо впихнуть строку типа:

StringGrid1.Cells[3, gridx]:= clBlue ;

Но куда и как оформить, пока не соображу. :dontgetit:

Надеюсь на место подальше от двигателя в звездном корвете

И возле иллюминатора. :)

Ссылка на комментарий
Поделиться на другие сайты

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;

Или уточни задание.

Изменено пользователем Teddy_Bear
Ссылка на комментарий
Поделиться на другие сайты

StringGrid1.Cells[3, gridx]:= clBlue ;

Увы, Cell не объект (не подобъект StringGrid, как можно бы было предположить по точке, отделяющей Grid от Cells. Поэтому тупо вручную закрашиваем и восстанавливаем текст на событие отрисовка ячейки - OnDrawCell. Благо Дельфя предоставляет положение этого прямоугольника через Rect независимо от того, проскроллил ли ты грид и куда.

Ссылка на комментарий
Поделиться на другие сайты

Или уточни задание.

Всё элементарно, без изысков. Есть таблица, куда заносятся цифры. Надо покрасить часть колонок в разные цвета (массив большой и ключевые колонки хочу выделить). Никакого изменения цвета в зависимости от фокуса, вводимых данных и т.д. Просто зафиксированные цвета. Приблизительно так (нарисовал в Вёрде):

.PNG

post-10287-0-84530100-1300635194_thumb.p

Ссылка на комментарий
Поделиться на другие сайты

Здесь как-то изначально закрасили строки. Мне бы также, только столбцы.

.PNG

post-10287-0-27002700-1300635788_thumb.p

Ссылка на комментарий
Поделиться на другие сайты

 // Глобальный массив 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

Изменено пользователем Teddy_Bear
Ссылка на комментарий
Поделиться на другие сайты

Здесь как-то изначально закрасили строки. Мне бы также, только столбцы.

 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;

С отступами беда ...

Изменено пользователем Teddy_Bear
  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

Спасибо, попытаюсь вспомнить. Думал закрасить пару колонок - дело нескольких строчек.

Изменено пользователем Skif
Ссылка на комментарий
Поделиться на другие сайты

Подумалось, а нельзя ли внести цвет для нескольких колонок в том редакторе Дельфина, где отражаются все сойства объектов, расположенных на форме?

Ссылка на комментарий
Поделиться на другие сайты

Подумалось, а нельзя ли внести цвет для нескольких колонок в том редакторе Дельфина, где отражаются все свойства объектов, расположенных на форме?

Повторюсь, увы, Cell не объект (не подобъект StringGrid, как можно бы было предположить по точке, отделяющей Grid от Cells). Соответственно, через инспектор объектов не поуправляешь.

Возможно, есть компонент с такими свойствами, но сомневаюсь.

Посмотри на http://www.delphiplus.org/ БЕСПЛАТНО=> Rx Library за 2010 год - может появилось.

По раскраске Grid ссылочка с подробными объяснениями

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=168

Впрочем, принципиально нового там нет - ручное управление через OnDrawCell.

  • Upvote 2
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...