Вопрос № 120876: Преведствую Вас уважаемые эксперты.......помогите пожалуйста, очень срочно надо решить одну маленькую проблемку.
Есть форма, на ней лежит ListBox1, RichEdit1, Edit1, у программы принцип работы как CheMax rus..........вот тока всё не в одном файле...Вопрос № 120952: Здарвствуйте, уважаемые эксперты. Помнится в C++ есть функуция вывода точки прямо на экран. А можно ли в Delphi рисованть непосредственно на экране? И если да, то как?...Вопрос № 120954: B Edit1 находится произвольная Фраза. В text.txt имеется неизвестное кол-во строк
вида
Слово1 = Слово2
Задача:
По щелчку на Button1 произвести замену всех слов Фразы, соответствующих Слову1 на Слово2 соответственно. При этом заменяются не...
Вопрос № 120.876
Преведствую Вас уважаемые эксперты.......помогите пожалуйста, очень срочно надо решить одну маленькую проблемку.
Есть форма, на ней лежит ListBox1, RichEdit1, Edit1, у программы принцип работы как CheMax rus..........вот тока всё не в одном файле, а в файлах *.rtf которые лежад, там же где и программа, но в отдельной папке.
Как мне на RichEdit1 отобразить содержимое этих *.rtf файлов, просто не могу понять, как прописать путь к папке в которой они лежад.
Заранее пасиба
Приложение:
Отправлен: 30.01.2008, 16:53
Вопрос задал: Sefiros (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: BlackRaider
Здравствуйте, Sefiros!
Что касается пути...
то если они директорий лежит в тойже папке что и ехе шник то поможет:
Ответ отправил: Drbear (статус: 6-ой класс)
Ответ отправлен: 30.01.2008, 17:37
Отвечает: Marked One
Здравствуйте, Sefiros!
Действуйте так:
ExtractFilePath(paramstr(0))+'RTF_Files';
Эта конструкция вернет адрес папки RTF_Files, которая находится в папке с вашей программой.
Приложение:
Ответ отправил: Marked One (статус: 3-ий класс)
Ответ отправлен: 30.01.2008, 20:05
Отвечает: Genia007
Здравствуйте, Sefiros!
Попробуйте следующий код, должен работать правильно.
RichEdit1.Lines.LoadFromFile(ExtractFilePath(ParamStr(0))+'имя папкиимя файла');
Ответ отправил: Genia007 (статус: 5-ый класс)
Ответ отправлен: 01.02.2008, 12:26
Вопрос № 120.952
Здарвствуйте, уважаемые эксперты. Помнится в C++ есть функуция вывода точки прямо на экран. А можно ли в Delphi рисованть непосредственно на экране? И если да, то как?
Вот нашел в своем старом коде -функция выводит текст прямо на "экран"
Приложение:
--------- Программист - это человек который решает проблему, о которой вы не знаете, способом который вы не понимаете
Ответ отправил: Raptor3 (статус: 4-ый класс)
Ответ отправлен: 31.01.2008, 06:16 Оценка за ответ: 4
Отвечает: Marked One
Здравствуйте, Хукаленко Дмитрий!
С экраном можно работать почти как с Canvas'ом.
1) Нужно получить глобальный контекст рисования.
2) И работать с ним.
В приложении код рисующий прямоугольник 100x100 в верхнем левом углу экрана.
Функции почти такие же, как у Canvas'а, но первый параметр - хэндл контекста рисования. То есть вместо функции TCanvas.Rectangle(X1, Y1, X2, Y2: Integer) надо использовать function Rectangle(DC: HDC; X1, Y1, X2, Y2: Integer): BOOL, где DC - хэндл контекста рисования.
Приложение:
Ответ отправил: Marked One (статус: 3-ий класс)
Ответ отправлен: 31.01.2008, 20:57 Оценка за ответ: 4
Отвечает: Genia007
Здравствуйте, Хукаленко Дмитрий!
Рисовать можно на чём угодно, хоть на любой форме, нужно только получить хэндл этой формы или экрана.
Вот процедура, которая рисует прямо на эране кружки и выводит надписи.
procedure TForm1.Timer2Timer(Sender: TObject);
var
hdcDesk: THandle;
Brush: TBrush;
X, Y: Integer;
begin
hdcDesk := GetWindowDC(GetDesktopWindow);
Brush := TBrush.Create;
Brush.Color := clRed;
SelectObject(hdcDesk, Brush.Handle);
X := Random(Screen.Width);
Y := Random(Screen.Height);
Ellipse(hdcDesk, X - 10, Y - 10,
X + 10, Y + 10);
Brush.Style :=bsClear;
TextOut(hdcDesk,x+30,y+30,'Это я!',6);
ReleaseDC(hdcDesk, GetDesktopWindow);
Brush.Free;
end;
Ответ отправил: Genia007 (статус: 5-ый класс)
Ответ отправлен: 01.02.2008, 12:25 Оценка за ответ: 4
Вопрос № 120.954
B Edit1 находится произвольная Фраза. В text.txt имеется неизвестное кол-во строк вида
Слово1 = Слово2
Задача:
По щелчку на Button1 произвести замену всех слов Фразы, соответствующих Слову1 на Слово2 соответственно. При этом заменяются не только слова соотв. первой строке, а любой из имеющихся строк в text.txt. В Edit2 вывести число замен.
И ещё: как заставить MaskEdit принимать только буквы и знаки препинания. На второй вопрос отвечать отдельно.
Отвечает: Николай Владимирович / Н.В.
Здравствуйте, Екатерина Ходеева!
Первая программа в приложении.
Удачи!
Приложение:
Ответ отправил: Николай Владимирович / Н.В. (статус: Специалист)
Ответ отправлен: 31.01.2008, 07:25 Оценка за ответ: 5 Комментарий оценки: Спасибо огромнейшее за как всегда, правильный ответ! И что особенно приятно, от моего любимого эксперта!
Отвечает: Coupler
Здравствуйте, Екатерина Ходеева!
Можно обработать событие OnKeyPress и самим определить, какие клавиши можно вводить:
procedure TForm1.MaskEdit1KeyPress(Sender: TObject; var Key: Char);
begin
case key of
'a'..'z': ;
'A'..'Z': ;
'А'..'я': ;
'.', ',', ':', ';', '!', '?': ; //ничего не делаем, если клавиши "подходят"
#8: ;
else key := #0;
end;
end;
Ответ отправил: Coupler (статус: Практикант)
Ответ отправлен: 31.01.2008, 09:30 Оценка за ответ: 5 Комментарий оценки: Спасибо большое за ответ! Я то думала, что это настаивается где-то в настройках, а всё оказалось намного проще!