Fórum C para delphi-gt;Add(this-gt;...) #286395

29/06/2005

0

[b:0df0bd83ed][color=red:0df0bd83ed]
Eu to passando um código C para delphi, e tem algumas coisas que eu não consigo entender como no código abaixo:[/color:0df0bd83ed]
void TTabela::Ordenar()
{
  int linha, coluna;
  TStringList *colunaOrdenar;
  TStringList **ordemOriginal;
  int *novaOrdem;
  TColor **cores;

  if (OrdenarHabilitado){
    if ((this->Coluna >= 0) && (this->Coluna < this->Colunas)) {
      colunaOrdenar = new TStringList();
      ordemOriginal = new TStringList*[Grid->RowCount - Grid->FixedRows];
      cores = new TColor*[this->Colunas];
      for (coluna = 0; coluna < this->Colunas; coluna++){
        [code]cores[coluna] = new TColor[this->Linhas];
for (linha = 0; linha < this->Linhas; linha++){ cores[coluna][linha] = this->FCor[coluna][linha]; } } for (linha = 0; linha < this->Grid->RowCount - this->Grid->FixedRows; linha++) { ordemOriginal[linha] = new TStringList(); ordemOriginal[linha]->Assign(this->Grid->Rows[linha + this->Grid->FixedRows]); colunaOrdenar->Add(this->Cells[this->Coluna][linha + this->Grid->FixedRows]); } if (this->DadoColuna[this->Coluna] == dcTexto){ novaOrdem = OrdenaStrings(colunaOrdenar, this->Ordenacao); } else if (this->DadoColuna[this->Coluna] == dcData){ novaOrdem = OrdenaDatas(colunaOrdenar, this->Ordenacao); } else if (this->DadoColuna[this->Coluna] == dcNumero){ novaOrdem = OrdenaNums(colunaOrdenar, this->Ordenacao); } else if (this->DadoColuna[this->Coluna] == dcHora){ novaOrdem = OrdenaHoras(colunaOrdenar, this->Ordenacao); } this->Linha = this->Grid->FixedRows; for (linha = 0; linha < this->Grid->RowCount - this->Grid->FixedRows; linha++){ this->Grid->Rows[linha + this->Grid->FixedRows]->Assign(ordemOriginal[novaOrdem[linha]]); } for (coluna = 0; coluna < this->Colunas; coluna++){ for (linha = + this->Grid->FixedRows; linha < this->Grid->RowCount; linha++){ cores[coluna][linha] = this->FCor[coluna][novaOrdem[linha-this->Grid->FixedRows] + this->Grid->FixedRows]; cores[coluna][novaOrdem[linha-this->Grid->FixedRows] + this->Grid->FixedRows] = this->FCor[coluna][linha]; } delete[] this->FCor[coluna]; } delete[] this->FCor; this->FCor = cores; for (linha = 0; linha < Grid->RowCount - Grid->FixedRows; linha++){ delete ordemOriginal[linha]; } delete[] ordemOriginal; delete colunaOrdenar; delete novaOrdem; if (this->OnOrdenar){ this->OnOrdenar(this); } } } }[/code]


Na verdade, muitas coisas eu não entendo, mas essa parte:


 ordemOriginal[linha]->Assign(this->Grid->Rows[linha + this->Grid->FixedRows]);
 colunaOrdenar->Add(this->Cells[this->Coluna][linha + this->Grid->FixedRows]);

[color=red:0df0bd83ed]

A parte do Assign e a parte do Add... como faço isso em Delphi, por favor gente, preciso de uma luz.


Ah e mais uma coisa, quando no código tem:
cores[coluna] = new TColor[this->Linhas];


No delphi, eu nao preciso fazer neh?
Obrigada Gente...[/color:0df0bd83ed][/b:0df0bd83ed]


Michelli88

Michelli88

Responder

Posts

30/06/2005

Michelli88

Sobe


Responder

Gostei + 0

30/06/2005

Michael

O código é o mesmo para o Delphi. A única diferença é a palavra-chave [b:8c08d9ed80]this[/b:8c08d9ed80], que no Delphi é [b:8c08d9ed80]self[/b:8c08d9ed80].

[i:8c08d9ed80]Add [/i:8c08d9ed80]e [i:8c08d9ed80]Assign [/i:8c08d9ed80]são métodos da classe [i:8c08d9ed80]TStringList[/i:8c08d9ed80]. Procure no help por este objeto para maiores detalhes.

[i:8c08d9ed80]TColor [/i:8c08d9ed80]no Delphi é apenas um tipo de dado, não uma classe, como aparenta ser em [b:8c08d9ed80]C[/b:8c08d9ed80]. Ela define os tipos de cores no intervalo -[b:8c08d9ed80]$7FFFFFFF-1[/b:8c08d9ed80] até [b:8c08d9ed80]$7FFFFFFF[/b:8c08d9ed80].

[]´s


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar