Показать полную графическую версию : If Then Else
Блин извините конечно за тупой вопрос, но я не могу написать правильно
If IsValue=False And Buffer<>'=' Then KeyArr[ArrIdx]:=KeyArr[ArrIdx]+Buffer;
мне в ответ
[Pascal Error] Unit1.pas(52): E2010 Incompatible types: 'string' and 'Boolean'
Пачему чёт не врублю.
PS В Delphi только начинаю
Delirium
30-01-2009, 02:11
я делфи конечно тоже не знаю, но скорее всего надо написать
If IsValue:=False And Buffer<>'=' Then KeyArr[ArrIdx]:=KeyArr[ArrIdx]+Buffer;
If IsValue:=False And Buffer<>'=' Then KeyArr[ArrIdx]:=KeyArr[ArrIdx]+Buffer; »
точно - не знаешь, как и паскаля ;)
>
Dr.Dark, ты бы того... типы вышеозвученных переменных привел, что ли..
Блин А ларчиг просто открывался
If (IsValue=False) And (Buffer<>'=') Then KeyArr[ArrIdx]:=KeyArr[ArrIdx]+Buffer;
Dr.Dark, ты бы того... типы вышеозвученных переменных привел, что ли.. »
Прошу прощения за не корректный вопрос IsValue:Boolean, Buffer:Char. А то что после Then синтаксически верно.
P.S. Можно задать исчо несколько маленьких вопросов тут, а то мне много тем открывать
P.P.S. А тему переименуем в "Вопросы чайников о Delphi" :)
ещё исправь: If IsValue And (Buffer<>'=') Then...
не будь индиским прогером..
ещё исправь »
стиль программирования - это хорошо. А внимательность - еще лучше: ты изменил логику условия. То бишь, тогда уже "if (not isvalue) and"..
Можно задать исчо несколько маленьких вопросов тут, а то мне много тем открывать »
мож, лучше соответствующую мурзилку почитать?
ShaddyR,
мож, лучше соответствующую мурзилку почитать? »
Ужо читкаю
ещё исправь: If IsValue And (Buffer<>'=') Then... »
Во!! Эт полезное замечание!!
не будь индиским прогером.. »
?? А почему именно индийским??
Ещё не могу понять как записать в массив все секции из ини файла
Пишу:
var
Components:Array of String [10];
...
CFGFile:=TIniFile.Create('autorun.cfg');
CFGFile.ReadSections(Components);
Ошибка:
[Pascal Error] Code.pas(52): E1012 Constant expression violates subrange bounds
Если кому не лень помогите...
b]Dr.Dark[/b],
Components: TStringlist;
Components:= TStringlist.create;
try
CFGFile:=TIniFile.Create('autorun.cfg');
try
CFGFile.ReadSections(Components);
finally
CFGFile.Free;
end;
finally
Components.free;
end;
Есть динамически генерируемая кнопка, как установить процедуру по щелчку?
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure OnClik(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var b:tbutton;
begin
b:=TButton.Create(form1);
b.Parent:=form1;
b.OnClick:=OnClik;
b.Visible:=true;
end;
procedure TForm1.OnClik(Sender: TObject);
begin
ShowMessage('hello');
end;
end.
небольшой пример
b.OnClick:=OnClik; »
Так и делал
Button.OnClick:=ShellEx(StrBuf,StrBuf1);
но выдаёт
Incompatible types: 'TNotifyEvent' and 'procedure, untyped pointer or untyped parameter'
procedure OnClik(Sender: TObject); »
b.OnClick:=OnClik; »
Процедура тут типизирована, т.е. должно обязательно иметь формат
procedure MyName (Sender : TObject);
Должны совпадать количество параметров и их типы . Здесь это параметр типа TObject;
Решил проблему использованием глобальных переменных.
Но всётаки как сделать чтоб по щелчку на кнопке выполнялась процедура с переданными ей параметрами?
Даамс прогер из меня как из Майкла Джексона -Негр
Решил проблему использованием глобальных переменных. »
а не красивее сделать вместо глоб. переменных поля класса Tform и потом в процедуре OnClik вызвать тот метод который тебе надо.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.