C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Помогите с языком., не могу пкревести из паскаля в С++
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

Вернуться в Вопросы программирования в C++Builder