(без зжатия). Решил воспользоваться печатью компонент из DX библиотеки. И тут оказалось, что моя прога под Win98 не идет, а под Win2000, Win NT все нормально. При разборе оказалось, что после добавления в uses модулей компонента печати LoadCursor перестал загружать именованные ресурсы, в то время как ресурсы с целочисленными идентификаторами он грузит только в путь.
Слетать прога начала с инициализации EhLib. Я поменял файлы ресурсов (ввел целочисленные идентификаторы) и их загрузку. EhLib стал инициализироваться нормально, но остальные именованные ресурсы (причем вроде-бы только курсоры) все равно не грузятся.
Здравствуйте уважаемые знатоки! Обращаюсь к Вам за помощью.
Вопрос такой: Как более изящно сделать обработчик.
Задача Есть два десятка CheckBox-ов. При клике на любой из них должна меняться видимость двух Edit и одного Label. Причём каждый CheckBox отвечает за свои объекты.
Пример: При клике на CheckBox1 меняют видимость Edit1, Edit2, Label1. При клике на CheckBox2 меняют видимость Edit3, Edit4, Label2 и т.д..
Можно и без ЭкшнЛист. Сделай обработчик простоя приложения (событие OnIdle), в теле которого по чеканутости конкретного Бокса визуаль/не визуаль члены форм. Ну типа EditX.Visual := CheckBoxY.Checked.
Подскажите, как правильно организовать диалог с пользователем. Сейчас сделано как переход от одного TForm к другому по нажатии кнопок. Выглялит убого и криво. Подозреваю, что есть стандартное средство, типа Визарда какого-нибудь. Из всех просмотренных, ничего не подошло, не знаю, может не хватает библиотеки. Погомите плз.
скажите, где найти такой компонент "Операционная система". мне друг сказал, что можно бросить такой компонент "Linux" или "Alpha" на форму и программа будет работать в Линуксе или на Digital Alpha.
Procedure Insert(var k:integer; zapis:Telement) и Procedure Sort(var pp:mas); я не стал приводить -они работают отлично В процедуре poisk меня интересуют конкретно 2 строки Form1.StringGrid1.Cells[3,j]:=inttostr(te.pv[i].God);
При попытке компиляции выскакивает Error - Undeclared identifier: 'inttostr'
Странно, ведь 'inttostr' - это известная функция, не нуждающаяся в объявлении.
Причём в основном модуле Unit1 этого проекта (если поставить код функции Poisk в Unit1) всё работает олично.
Кстати - объект te я инициализовал в Unit1 (te:=tbook.Create(a);) , и массив записей Telement - PV там же (SetLength(te.pv,0);-начальная инициализация - потом я изменял его размер. Если вы найдёте ошибку, то ,пожалуйста, объясните в чём тут дело. :-(
Всё-бы просто, да только вместо <путь> нужно вставить строку из таблицы. Ошибка в несовместимости типов "String"(строка таблицы) и "PAnsiChar"(требуемый тип). Функций для перевода куча (по крайней мере так написано), но ни одну не могу запустить... Подскажите кто знает...
Программа написанна в DELPHI и имеет целью чтение звуковых файлов с расширением wav. Как добиться того, чтобы она могла читать звуковые файлы с расширением mp3? Заранее благодарен за ответ. Алексей
Запишите формулы для вычисления случайных координат кнопки. При вычислении координат учтите, что координаты задаются в пикселях и результатом вычисления выражения должно быть только целое число. Полученные значения присвойте соответ-ствующим координатам кнопки:
Я сделал это так:
Button1.left := Random(3)*Button1.Width;
Button1.top := Random(5)*Button1.Height;
и ещё требуют обозначить целочисленные переменные для определения целых координат нового положения кнопки по горизонтали и вертикали. Нафига, оно же и так работает ?
Страницы
RTFM property Color
и вообще, сначала help читайте
Открывать так http://tipacoolsite.com
я пробовал метод
ClientDataSet1.FieldByName('Изображение').asBitmap:=Image1.Picture; но он не раюботает
Причем ссортировка идет сначало по первой строке, а потом по последней
Написан проект на Delphi 6. Размер exe около 14Мб
(без зжатия). Решил воспользоваться печатью компонент из DX библиотеки. И тут оказалось, что моя прога под Win98 не идет, а под Win2000, Win NT все нормально. При разборе оказалось, что после добавления в uses модулей компонента печати LoadCursor перестал загружать именованные ресурсы, в то время как ресурсы с целочисленными идентификаторами он грузит только в путь.
Слетать прога начала с инициализации EhLib. Я поменял файлы ресурсов (ввел целочисленные идентификаторы) и их загрузку. EhLib стал инициализироваться нормально, но остальные именованные ресурсы (причем вроде-бы только курсоры) все равно не грузятся.
Подскажите пожайлуста в чем может быть проблема.
Вопрос такой: Как более изящно сделать обработчик.
Задача Есть два десятка CheckBox-ов. При клике на любой из них должна меняться видимость двух Edit и одного Label. Причём каждый CheckBox отвечает за свои объекты.
Пример: При клике на CheckBox1 меняют видимость Edit1, Edit2, Label1. При клике на CheckBox2 меняют видимость Edit3, Edit4, Label2 и т.д..
Заранее благодарен Сергей. [email protected]/
ActionList не пробовал?
Помогите найти ошибку в простейшей задачке.
Задача: При наведении мышкой на круг, он должен становиться полностью закрашенным, а при отведении курсора из круга он снова очищается.
На Form1 нанесена Panel1. На Panel1 нанесён Panel2 в виде квадрата. В Panel2 вписан круг (компонент Shape1).
Первоначальные параметры : Shape1.Brush.Style:=bsClear;
Shape1.Pen.Color:=clRed;
Далее я записываю прцедуру наведения мышки
procedure TForm1.Shp1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var bs:TBrushStyle;
r,cX,cY,MouseX,MouseY,d:real;
begin
MouseX:=X;
MouseY:=Y;
r:=Shp1.Width/2;// находим радиус круга
cX:=Panel1.Left+Panel2.Left+r;// находим координаты центра круга
cY:=Panel1.Top+Panel3.Top+r;
d:=sqr(abs(cX-MouseX))+sqr(abs(cY-MouseY));//находим квадрат расстояния от центра круга до любой произвольной точки ( полпжения курсора)
if d>sqr(r) then // если квадрат этого расстояния будет меньше квадрата радиуса, то курсор будет внутри круга
bs:=bsSolid
else
bs:=bsClear;
Shp2.Brush.Style:=bs;
Shp2.Brush.Color:=clRed ;
end;
Проблема заключается в том, что при отведении курсора мышки из круга он не очищается, т. е. не приводится в состояние Shape1.Brush.Style:=bsClear;
Может быть ошибка в формуле нахождения квадрата расстояния
И ещё может подскажите как сделать такой код с использованием функции
Я пытался сделать такую, но не с ней не работает :
function Polojenie (var d:real ):TBrushStyle;
var r,cX,cY,MouseX,MouseY:real;
begin
r:=Shp1.Width/2;
cX:=Panel1.Left+Panel2.Left+r;
cY:=Panel1.Top+Panel2.Top+r;
d:=sqr(Abs(cX-MouseX))+sqr(Abs(cY-MouseY));
if d<sqr(r) then
Polojenie:=bsSolid
else Polojenie:=bsClear;
end;
Помогите найти ошибку в модуле!?
unit Unit3;
interface
Type
str=string[20];
Telement=record
Fam:str;
Kniga:str;
Shifr:str;
God:integer;
Kolvo:integer;
end;
Mas=array of Telement;
FT=file of Telement;
Tbook=class
public
PV:Mas;
a,m:integer;
Constructor Create(a:integer);
Destructor Destroy;
Procedure Poisk(familia:str);
Procedure Insert(var k:integer; zapis:Telement);
Procedure Sort(var pp:mas);
end;
var
pp:Mas;f:FT;
te:Tbook;
zapis:Telement;
implementation
uses Dob, Unit1, Poi, Unit2;
constructor Tbook.Create(a:integer);
begin
a:=0;
m:=0 ;
end;
destructor Tbook.Destroy;
begin
te.Free;
setlength(te.PV,0);
end;
procedure Tbook.Poisk(familia:str);
var
i,j,n:integer;
begin
j:=0;
n:=0;
for i:=0 to te.m-1 do
begin
if te.PV[i].Fam=familia then
begin
j:=j+1;
Form1.StringGrid1.Cells[0,j]:=te.pv[i].Fam;
Form1.StringGrid1.Cells[1,j]:=te.pv[i].Kniga;
Form1.StringGrid1.Cells[2,j]:=te.pv[i].Shifr;
Form1.StringGrid1.Cells[3,j]:=inttostr(te.pv[i].God);
Form1.StringGrid1.Cells[4,j]:=inttostr(te.pv[i].Kolvo);
if j=Form1.StringGrid1.RowCount then
begin
Form1.StringGrid1.RowCount:=Form1.StringGrid1.RowCount+1;
n:=n+1;
end;
end;
end;
end;
end.
Procedure Insert(var k:integer; zapis:Telement) и Procedure Sort(var pp:mas); я не стал приводить -они работают отлично В процедуре poisk меня интересуют конкретно 2 строки Form1.StringGrid1.Cells[3,j]:=inttostr(te.pv[i].God);
Form1.StringGrid1.Cells[4,j]:=inttostr(te.pv[i].Kolvo);
При попытке компиляции выскакивает Error - Undeclared identifier: 'inttostr'
Странно, ведь 'inttostr' - это известная функция, не нуждающаяся в объявлении.
Причём в основном модуле Unit1 этого проекта (если поставить код функции Poisk в Unit1) всё работает олично.
Кстати - объект te я инициализовал в Unit1 (te:=tbook.Create(a);) , и массив записей Telement - PV там же (SetLength(te.pv,0);-начальная инициализация - потом я изменял его размер. Если вы найдёте ошибку, то ,пожалуйста, объясните в чём тут дело. :-(
Не могу записать простую функцию
WinExec(<путь>,<параметр>);
Всё-бы просто, да только вместо <путь> нужно вставить строку из таблицы. Ошибка в несовместимости типов "String"(строка таблицы) и "PAnsiChar"(требуемый тип). Функций для перевода куча (по крайней мере так написано), но ни одну не могу запустить... Подскажите кто знает...
function StrPCopy(Dest: PChar; const Source: string): PChar;
А дальше - тип подгони. PAnsiChar в 99% есть PChar.
если ты думаешь, что 2 "окошечка" - мег, то ты сильно ошибаешься. ну и сравни скорость разработки на Delphi и на Visual'e...
Запишите формулы для вычисления случайных координат кнопки. При вычислении координат учтите, что координаты задаются в пикселях и результатом вычисления выражения должно быть только целое число. Полученные значения присвойте соответ-ствующим координатам кнопки:
Я сделал это так:
Button1.left := Random(3)*Button1.Width;
Button1.top := Random(5)*Button1.Height;
и ещё требуют обозначить целочисленные переменные для определения целых координат нового положения кнопки по горизонтали и вертикали. Нафига, оно же и так работает ?
вставить нельзя, а вот в
TRxRichEdit можно!
что-бы каждому созданому объекту присваивалось своё имя (image0,image1,...),
но ткт то и возникает проблема : матерится setlenght, пишет что несоответствие
типов. Как это можно обойти?
var i:integer;
image:array of TImage;
number:integer;
:
procedure ......
:
:
:
setlength(image,number);
for i:=0 to number-1 do
begin
image[i]:=TImage.Create(FormBakalavr);
image[i].Parent:=FormBakalavr;
image[i].Left := X-25;
image[i].Top := Y-25;
image[i].Picture.LoadFromFile('but1.bmp');
end;
Здесь посмотри
http://articles.org.ru/cfaq/index.php?catid=25
Canvas = new TCanvas;// создать холст
ScreenDC = GetDC(0);// взять контекст экрана (0=экран)
Bitmap = new Graphics::TBitmap;// создать объект для изображения
Bitmap->Height = Screen->Height;// установить высоту, как у экрана
Bitmap->Width = Screen->Width;// установить ширину, как у экрана
Canvas->Handle = ScreenDC;// исходный холст принадлежит экрану
// копируем холст экрана на холст объекта Bitmap:
Bitmap->Canvas->CopyRect(Rect(0,0,Screen->Width,Screen->Height),
Canvas,
Rect(0,0,Screen->Width,Screen->Height));
// и сохраняем картинку:
Bitmap->SaveToFile("Fon1.bmp");
delete Canvas;
delete Bitmap;
void __fastcall TForm::Button1Click(TObject *Sender)
{
Form2->ShowModal(); //как пример!
Form1->Close();
}
Усё.
Ето Билдер.
Страницы