Roddy |
Отправлено: 29.05.2003, 13:01 |
|
Не зарегистрирован
|
Люди подскажите пожалуйста как в С++ будет звучать Паскалевский With?
Спасибо!!! |
|
Георгий |
Отправлено: 29.05.2003, 13:44 |
|
Почетный железнодорожник
Группа: Модератор
Сообщений: 874
|
Да вроде ни как — будет выглядеть как явное указание обьектов
Писанины больше, а результат тот же...
Отредактировано Георгий — 29 May 2003, 13:44 |
|
Admin |
Отправлено: 29.05.2003, 13:49 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Бросьте код — переведем
|
|
Roddy |
Отправлено: 29.05.2003, 13:57 |
|
Не зарегистрирован
|
procedure TNewForm.BitBtn1Click(Sender: TObject);
var
Pred: String;
i: integer;
Flag: boolean;
begin
Flag:=False; i:=1;
if Edit1.Text='' then
begin
Label8.Caption:='';
Label9.Caption:='';
Button2.Enabled:=False;
Panel1.Caption:='Отсутсвует номер шины';
Panel1.Visible:=True;
end else
begin
With DMod do
begin
KartshinSet.First;
While (Flag=False)and(i<>KartshinSet.RecordCount) do
begin
if Edit1.Text=KartshinSetF_NUMSHINA.Value then Flag:=True;
i:=i+1; KartshinSet.Next;
end;
end;[COLOR=red][B] |
|
Admin |
Отправлено: 29.05.2003, 14:39 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Использование кода Delphi в C++Builder. Автор Kent Reisdorph. Перевод Т. Сорока.
Cравните коды:
CODE |
В случае Delphi соответствующий код имеет вид:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (Table1.FieldByName('VenueNo').Value=1) then begin
with DBGrid1.Canvas do begin
Brush.Color:=clGreen;
Font.Color:=clWhite;
FillRect(Rect);
TextOut(Rect.Left+2,Rect.Top+2,Column.Field.Text);
end;
end;
end;
-----------------
в C++Builder:
void __fastcall TForm1::DBGrid1DrawColumnCell(TObject *Sender,
const TRect &Rect, int DataCol, TColumn *Column,
TGridDrawState State)
{
if (Table1->FieldByName("VenueNo")->Value==1)
{
DBGrid1->Canvas->Brush->Color=clGreen;
DBGrid1->Canvas->Font->Color=clWhite;
DBGrid1->Canvas->FillRect(Rect);
DBGrid1->Canvas->TextOut(Rect.Left+2,Rect.Top+2,Column->Field->Text);
}
}
|
Я так понимаю, что в Вашем случае это примерно так:
DMod->KartshinSet->First();
while (Flag==false && i != DMod->KartshinSet->RecordCount)
{
if(Edit1->Text==DMod->KartshinSetF_NUMSHINA->Value) Flag = true;
i=i+1; DMod->KartshinSet->Next();
}
Отредактировано Admin — 29 May 2003, 14:40
|
|