Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   If Then Else (http://forum.oszone.net/showthread.php?t=130355)

Dr.Dark 30-01-2009 00:32 1024010

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 1024050

я делфи конечно тоже не знаю, но скорее всего надо написать
If IsValue:=False And Buffer<>'=' Then KeyArr[ArrIdx]:=KeyArr[ArrIdx]+Buffer;

ShaddyR 30-01-2009 04:05 1024092

Цитата:

Цитата Delirium
If IsValue:=False And Buffer<>'=' Then KeyArr[ArrIdx]:=KeyArr[ArrIdx]+Buffer; »

точно - не знаешь, как и паскаля ;)
>
Dr.Dark, ты бы того... типы вышеозвученных переменных привел, что ли..

Dr.Dark 30-01-2009 08:54 1024156

Блин А ларчиг просто открывался
Код:

If (IsValue=False) And (Buffer<>'=') Then KeyArr[ArrIdx]:=KeyArr[ArrIdx]+Buffer;
Цитата:

Цитата ShaddyR
Dr.Dark, ты бы того... типы вышеозвученных переменных привел, что ли.. »

Прошу прощения за не корректный вопрос IsValue:Boolean, Buffer:Char. А то что после Then синтаксически верно.
P.S. Можно задать исчо несколько маленьких вопросов тут, а то мне много тем открывать
P.P.S. А тему переименуем в "Вопросы чайников о Delphi" :)

pva 30-01-2009 14:10 1024447

ещё исправь: If IsValue And (Buffer<>'=') Then...
не будь индиским прогером..

ShaddyR 30-01-2009 15:44 1024544

Цитата:

Цитата pva
ещё исправь »

стиль программирования - это хорошо. А внимательность - еще лучше: ты изменил логику условия. То бишь, тогда уже "if (not isvalue) and"..

Цитата:

Цитата Dr.Dark
Можно задать исчо несколько маленьких вопросов тут, а то мне много тем открывать »

мож, лучше соответствующую мурзилку почитать?

Dr.Dark 31-01-2009 20:10 1025623

ShaddyR,
Цитата:

Цитата ShaddyR
мож, лучше соответствующую мурзилку почитать? »

Ужо читкаю
Цитата:

Цитата pva
ещё исправь: If IsValue And (Buffer<>'=') Then... »

Во!! Эт полезное замечание!!
Цитата:

Цитата pva
не будь индиским прогером.. »

?? А почему именно индийским??
Ещё не могу понять как записать в массив все секции из ини файла
Пишу:
Код:

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
Если кому не лень помогите...

vserd 01-02-2009 02:04 1025895

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;

Dr.Dark 02-02-2009 21:49 1027650

Есть динамически генерируемая кнопка, как установить процедуру по щелчку?

Alan85 02-02-2009 22:00 1027659

Код:

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.

небольшой пример

Dr.Dark 02-02-2009 22:28 1027697

Цитата:

Цитата Alan85
b.OnClick:=OnClik; »

Так и делал
Код:

Button.OnClick:=ShellEx(StrBuf,StrBuf1);
но выдаёт
Incompatible types: 'TNotifyEvent' and 'procedure, untyped pointer or untyped parameter'

Alan85 02-02-2009 22:34 1027708

Цитата:

Цитата Alan85
procedure OnClik(Sender: TObject); »

Цитата:

Цитата Alan85
b.OnClick:=OnClik; »

Процедура тут типизирована, т.е. должно обязательно иметь формат

procedure MyName (Sender : TObject);

Должны совпадать количество параметров и их типы . Здесь это параметр типа TObject;

Dr.Dark 03-02-2009 01:54 1027865

Решил проблему использованием глобальных переменных.
Но всётаки как сделать чтоб по щелчку на кнопке выполнялась процедура с переданными ей параметрами?
Даамс прогер из меня как из Майкла Джексона -Негр

Alan85 03-02-2009 18:13 1028497

Цитата:

Цитата Dr.Dark
Решил проблему использованием глобальных переменных. »

а не красивее сделать вместо глоб. переменных поля класса Tform и потом в процедуре OnClik вызвать тот метод который тебе надо.


Время: 01:34.

Время: 01:34.
© OSzone.net 2001-