![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Помогите вывесте переменную в Label2
вот код Код:
function hddser:string;
var
SerialNum : dword;
a, b : dword;
Buffer : array [0..255] of char;
begin
if GetVolumeInformation(pchar('c:\'), Buffer, SizeOf(Buffer), @SerialNum, a, b, nil, 0) then
result := IntToStr(SerialNum);
end;
begin
if FileExists('c:\1.txt') then
ShowMessage('Файл c:\1.txt существует')
else
begin
Num:=(hddser);
Label2.Caption:=Num;
y:=5;
z:=2455560128;
x:= strtoint(Num) + z * y;
id:= inttostr(x);
with TStringList.Create do
try
Num:=(hddser);
Add(id);
SaveToFile('C:\1.txt');
finally
Free;
end;
end;
end.вот ошибка с лога [Error] Unit1.pas(45): Undeclared identifier: 'Label2' надо вывести без процетуры onclick в ходе запуска программы Последний раз редактировалось Admin, 23.10.2011 в 18:15. |
|
#2
|
|||
|
|||
|
Так исходя из ошибки, Label2 у вас не существует. Чтоб он у вас его увидел, обращаться нужно через имя формы - Form1.Label2
А при запуске - в событии onCreate |
|
#3
|
|||
|
|||
|
Благодарю за каректировку я так прописывал тоже ошибка
если можно, то по подробнее о 'onCreate' буду признателен за простецкий пример. |
|
#4
|
|||
|
|||
|
Num у вас что? строка? число? Какое значение?
Выделите форму свою, откройте инспектор объектов, перейдите на вкладку событий (events) найдите OnCreate и создайте обработчик этого события, дважды щелкнув по полю справа |
|
#5
|
|||
|
|||
|
Используй не OnCreate, а OnShow - предположительно на момент создания формы Label2 еще не создан.
Последний раз редактировалось m1sclick, 23.10.2011 в 19:42. |
|
#6
|
|||
|
|||
|
переменная Num integer
сделал процедуру oncreate и вот лог [Warning] Unit1.pas(48): Constant expression violates subrange bounds [Error] Unit1.pas(61): Statement expected but 'PROCEDURE' found [Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas' |
|
#7
|
|||
|
|||
|
Кхм.....
Код:
begin
if GetVolumeInformation(pchar('c:\'), Buffer, SizeOf(Buffer), @SerialNum, a, b, nil, 0) then
result := IntToStr(SerialNum);
end;
begin
if FileExists('c:\1.txt') thenТакже. А нормально то что: Num: integer, а result := IntToStr(SerialNum); - тоесть String? Дальше...... Код:
Label2.Caption:=Num; x:= strtoint(Num) + z * y; И еще Код:
SerialNum : dword; | | \/ result := IntToStr(SerialNum) Ты уверен что: Цитата:
Дальше. Зачем вызываешь: Код:
with TStringList.Create do
try
Num:=(hddser);
Add(id);
SaveToFile('C:\1.txt');
finally
Free;
end;Касательно Цитата:
Цитата:
http://forum.sources.ru/index.php?showtopic=167280 - особенно обрати внимание на Сообщ. #2. И вообще, зачем нужна функция если у тебя там одна строчка кода, не считая объявления переменных? Выложи весь код - это значительно упростит разгадывание твоей загадки. Последний раз редактировалось m1sclick, 23.10.2011 в 20:47. |
|
#8
|
|||
|
|||
|
Благодарю всех за помощь, я вчера прописал OnCreate сразу после функции и туда подвязал оставшийся код и все пошло... а насчет buffer проштудирую.
|
|
#9
|
|||
|
|||
|
помогите как можно в конструкция if then else внести обработчик событий кнопки.
|
|
#10
|
|||
|
|||
|
Если я правильно понимаю твой вопрос, то ты хочешь сделать конструкцию вида:
Код:
if <если по кнопке кликнули> then begin //какой-то код end else begin //какой-то код end; Код:
//Обработчик OnClick для кнопки 1 и 2
procedure TForm1.Button2Click(Sender: TObject);
begin
if (Sender as TButton).Name='Button1' then
ShowMessage('Вы кликнули по кнопке 1');
if (Sender as TButton).Name='Button2' then
ShowMessage('Вы кликнули по кнопке 2');
end; |
|
#11
|
|||
|
|||
|
маленько не то объясню на примере условие если есть c:\1.txt то бла бла бла а вот если его нет то тут после else мне надо сделать действие оно включается если я закрываю конструкцию if then else а это не точто мне нужно да и даже если истина там в одном участке нужено будет вставить подобное действие.
Код:
if FileExists('c:\1.txt')then
begin
//какой-то код
end
else
begin
procedure TForm1.Button1Click(Sender: TObject);
begin
//какой-то код
end;
end; |
|
#12
|
||||
|
||||
|
Можно, но только немножко не так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
//какой-то код
end;
...
if FileExists('c:\1.txt')then
begin
//какой-то код
end
else
begin
Form1.Button1Click(Sender);
end;
... |
|
#13
|
|||
|
|||
|
Программно нажать на кнопку можно так
Код:
Form1.Button1.Click; |
|
#14
|
|||
|
|||
|
если программно то можно обойтись и без нее просто прописать действия а мне нужно что бы пользователь нажал ее и запустил эти действия.
|
|
#15
|
|||
|
|||
|
сейчас попробую
|