Электростальский форум

Hi-Tech => Компьютеры, периферия, мультимедиа и ПО => Тема начата: chert от 07.11.07, 23:59:46

Название: помогите плиз с делфи
Отправлено: chert от 07.11.07, 23:59:46
нужно написать длинную строку, но поля label'a не хватает и её часть улезает за границы, в следствии чего остальную часть строки не видно. подскажите плиз команду, которая позволяет писать в несколько строк, а не в одну=) плюс от меня гарантирован PS если будет чтот потипа примера то будет ещё лучше
Название: Re: помогите плиз с делфи
Отправлено: chert от 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) он висит на выделенной строчке и пишет ошибку
Название: Re: помогите плиз с делфи
Отправлено: ИТСМИ от 08.11.07, 09:30:32
нужно написать длинную строку, но поля label'a не хватает и её часть улезает за границы, в следствии чего остальную часть строки не видно. подскажите плиз команду, которая позволяет писать в несколько строк, а не в одну=) плюс от меня гарантирован PS если будет чтот потипа примера то будет ещё лучше

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

Wordwrap:=True;
Autosize:=True;
Название: Re: помогите плиз с делфи
Отправлено: ИТСМИ от 08.11.07, 15:54:31
так же интересует код для удаления файла....

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

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

Название: Re: помогите плиз с делфи
Отправлено: chert от 08.11.07, 16:01:30
спасибо [[happy]] если что, обращусь ещё [[blush]]
Название: Re: помогите плиз с делфи
Отправлено: chert от 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.

Название: Re: помогите плиз с делфи
Отправлено: LEND от 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