Автор Тема: помогите плиз с делфи  (Прочитано 1675 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн chert

  • Старожил
  • ****
  • Сообщений: 709
  • Карма: 92
  • Пол: Мужской
  • =)))
    • Просмотр профиля
помогите плиз с делфи
« : 07.11.07, 23:59:46 »
нужно написать длинную строку, но поля label'a не хватает и её часть улезает за границы, в следствии чего остальную часть строки не видно. подскажите плиз команду, которая позволяет писать в несколько строк, а не в одну=) плюс от меня гарантирован PS если будет чтот потипа примера то будет ещё лучше


Оффлайн chert

  • Старожил
  • ****
  • Сообщений: 709
  • Карма: 92
  • Пол: Мужской
  • =)))
    • Просмотр профиля
Re: помогите плиз с делфи
« Ответ #1 : 08.11.07, 08:58:05 »
так же интересует код для удаления файла....
нашёл в мануле нечто следующее
Q: Как удалить файл в корзину (Recycle Bin)?
A:
program del;

uses
ShlObj;

function SHFileOperation(const lpFileOp: TSHFileOpStruct): Integer; stdcall;

Var T:TSHFileOpStruct;
P:String;
begin
P:='C:\Windows\System\EL_CONTROL.CPL';
With T do
Begin
Wnd:=0;
wFunc:=FO_DELETE;
pFrom:=Pchar(P);
fFlags:=FOF_ALLOWUNDO
End;
SHFileOperation(T);
End.

только при выполнении (нажатии ф9) он висит на выделенной строчке и пишет ошибку

Оффлайн ИТСМИ

  • Ветеран
  • *****
  • Сообщений: 2039
  • Карма: 133
  • Пол: Мужской
    • Просмотр профиля
Re: помогите плиз с делфи
« Ответ #2 : 08.11.07, 09:30:32 »
нужно написать длинную строку, но поля label'a не хватает и её часть улезает за границы, в следствии чего остальную часть строки не видно. подскажите плиз команду, которая позволяет писать в несколько строк, а не в одну=) плюс от меня гарантирован PS если будет чтот потипа примера то будет ещё лучше

Надо свойствам компонента Label  присвоить следущее:

Wordwrap:=True;
Autosize:=True;
« Последнее редактирование: 08.11.07, 15:56:29 от ИТСМИ »
Не вижу повода, чтобы не выпить.

Оффлайн ИТСМИ

  • Ветеран
  • *****
  • Сообщений: 2039
  • Карма: 133
  • Пол: Мужской
    • Просмотр профиля
Re: помогите плиз с делфи
« Ответ #3 : 08.11.07, 15:54:31 »
так же интересует код для удаления файла....

Модуль SysUtils
Функция DeleteFile(const FileName: string): Boolean;

Юзай иё и будит тебе щасьтье

Не вижу повода, чтобы не выпить.

Оффлайн chert

  • Старожил
  • ****
  • Сообщений: 709
  • Карма: 92
  • Пол: Мужской
  • =)))
    • Просмотр профиля
Re: помогите плиз с делфи
« Ответ #4 : 08.11.07, 16:01:30 »
спасибо [[happy]] если что, обращусь ещё [[blush]]

Оффлайн chert

  • Старожил
  • ****
  • Сообщений: 709
  • Карма: 92
  • Пол: Мужской
  • =)))
    • Просмотр профиля
Re: помогите плиз с делфи
« Ответ #5 : 09.11.07, 07:28:07 »
опять таки.... нужно, чтобы при  нажатии кнопки из реестра вот по этому пути
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
удалялся парамер Beep, но делфи выдаёт ошибку на строке с rootkey

procedure TForm1.Button3Click(Sender: TObject);
var reg: TRegistry;
begin
  reg:=TRegistry.Create;
  with reg do
  begin
    ROOTKEY:=HKEY_CURRRENT_USER;
    OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',true);
    Deletekey('Beep');
    CloseKey;
    Free;
  end;
end;
end.

« Последнее редактирование: 09.11.07, 21:01:32 от chert »

Оффлайн LEND

  • Пользователь
  • **
  • Сообщений: 95
  • Карма: 155
  • Истина как всегда где-то рядом
    • Просмотр профиля
Re: помогите плиз с делфи
« Ответ #6 : 09.11.07, 22:31:46 »
Ну давайте по порядку.
Попробовал написать ВАШУ процедуру на VBS скрипт
В реестре на моем компьютере нет Параметра "Beep" и его значения.

Создал Сам
Ветку HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\Beep

Где Beep строковый параметр с пустым значением

Вот что получилось



'*******************************************************************
' Имя: BeepDelete
' Author:  (c) Lend
' Язык: VBScript
' Описание: Удаление параметра Beep
'*******************************************************************
'
'Оператор эмуляции ошибок
On Error Resume Next
' Переменные
Root="HKEY_CURRENT_USER"
key="\Software\Microsoft\Windows\CurrentVersion\Run\Beep"

'Создаем объект WshShell.
Set WshShell=WScript.CreateObject("WScript.Shell")

BeepSt=WshShell.RegRead(Root & key)
'Если этого раздела нет - перехватываем ошибку выполнения сценария

if Err.Number<>0 Then
 MsgBox "Этого раздела нет - Завершаем работу сценария"
 WScript.Quit
End if

  WshShell.Popup "Сейчас реестр:" & BeepSt & " Удаляем параметр Beep"
  WshShell.RegDelete Root & key
 'Снова считываем этот раздел и параметр
  BeepSt=WshShell.RegRead(Root & key)
'Если этого раздела нет - перехватываем ошибку выполнения сценария

if Err.Number<>0 Then
 MsgBox "Этого раздела нет - Завершаем работу сценария"
 WScript.Quit
End if
'*******************************************************************


Насчет DELPHI - очень давно с ним не работал.
Он у меня не установлен, поэтому беру из головы.

Процедура:

Твой листинг

procedure TForm1.Button3Click(Sender: TObject);
var reg: TRegistry;
begin
  reg:=TRegistry.Create;
  with reg do
  begin
    ROOTKEY:=HKEY_CURRRENT_USER;
    OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',true);
    Deletekey('Beep');
    CloseKey;
    Free;
  end;
end;
end.

Есть ошибки
1) В строке ROOTKEY:=HKEY_CURRRENT_USER надо писать две RR
  т.е.
  HKEY_CURRENT_USER а не HKEY_CURRRENT_USER
 2) Не надо последний end.
    Это процедура.


Вообщем надо так:
procedure TForm1.Button3Click(Sender: TObject);
var reg: TRegistry;
begin
  reg:=TRegistry.Create;
  with reg do
  begin
    ROOTKEY:=HKEY_CURRENT_USER;
    OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',true);
    Deletekey('Beep');
    CloseKey;
    Free;
 end;
end;


    или так:

procedure TForm1.Button3Click(Sender: TObject);
var reg:TRegistry;
begin
Reg:=TRegistry.create;
Reg.RootKey:=HKEY_CURRENT_USER;
Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',true);
Reg.DeleteKey('Beep');
Reg.CloseKey;
Reg.free;
end;



Попробуйте.
Успеха.
С уважением LEND
« Последнее редактирование: 09.11.07, 23:12:22 от LEND »
В мире временном, сущность которого - тлен,
Не сдавайся вещам несущественным в плен. © О.Х.