Odpowiedniki z Delphi w Builderze

0

Czemu odpowiadają następujące rzeczy:
[code]
resuly := ...; //napisane w jakieś fukcji
exit;
continue;
[/code]

Mam jeszcze inny problem (oczywiście przerobienie czegoś z Delhpi do Buildera). Mam (Delphi) klase zdefiniowana TFileRecord (ma kilka pól, ale to nie ważne). W programie często jest ona używana w ten sposób
[code]
temp : TFileRecord;
list: TList:

....

temp = TFileRecord(list.Items[i]); // tego nie umiem zamienić na C++
[/code]

0

result := 1;
exit;

to w BCB będzie:
return(1);

continue - w BCB tak samo

0

temp = TFileRecord(list.Items[i]);
Np. tak:
temp = (TFileRecord) list.Items[i];
Zależy jak TFileRecord jest zadeklarowane.

0

Thx za podpowiedzi. Ale na tym nie koniec moich kłopotow.
Oto co jest w kodzie z Delphi
[code]
procedure clearList(list : TList);
var
i : integer;
begin
for i := 0 to list.Count - 1 do
begin
TFileRecord(list.Items[i]).Free;
end;
list.clear;
end;
[/code]

I teraz jak to zapisać w BCB
[code]
// klasa
enum FileType {File, Directory};
enum SortType {SName,SExtension, SSize};

class TFileRecord
{
public:
AnsiString Name;
AnsiString Extension;
TDateTime Date;
int Size;
FileType Type;
};

....

//funkcja

void TMainForm::ClearList(TList *List)
{
for (int i = 0; i Count; i++)
(TFileRecord) List->Items[i]; // I TEGO NIE UMIEM POPRAWIĆ
delete List;
}
[/code]

0

Nie dam głowy, czy dobrze, ale możesz spróbować.

void TMainForm::ClearList(TList *List)
{
for (int i = 0; i Count; i++)
((TFileRecord) List->Items[i])->Free();
delete List;
}

0

((TFileRecord) List->Items[i])->Free();

Troche nie rozumiem tego erroru:

Build
[C++ Error] main.cpp(45): E2285 Could not find a match for 'TFileRecord::TFileRecord(void *)'
[C++ Error] main.cpp(45): E2031 Cannot cast from 'void *' to 'TFileRecord'

0

Więc zapewne powinno być tak:
((TFileRecord *) List->Items[i])->Free();

Nie zajmuję się pisaniem w Builderze. Piszę tylko w Delphi i z konieczności w ANSI C.

0

Więc zapewne powinno być tak:
((TFileRecord *) List->Items[i])->Free();

Tak też o coś się pluł (chyba o Free, bo to chyba z Delphi)
skompilowało sie mi pod taką postacia
[code]delete ((TFileRecord *) List->Items[i]);[/code]

Dzieki za pomoc. Pisze tu po raz pierwszy i mam nadzieję, że nie zlamamałem jakiś reguł.

Pozdrawiam :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1