Pesquisar por:
Compartilhando e mapeando uma pasta no Delphi

Var
err : DWord;
PServer, PSenha, PLetra : PChar;
Begin
PServer := ‘\CaminhoCaminho’ + #0;
PLetra := ‘L:’;
PSenha := ”;
 
ERR := WNetAddConnection ( PServer , PSenha , PLetra );
 
CASE ERR of
ERROR_ACCESS_DENIED : ShowMessage ( ‘Acesso negado.’ );
ERROR_ALREADY_ASSIGNED : ShowMessage ( ‘A letra do drive especificada já está conectada.’ );
ERROR_BAD_DEV_TYPE : ShowMessage ( ‘O tipo de dispositivo e o tipo de recurso não são compatíveis.’ );
ERROR_BAD_DEVICE : ShowMessage ( ‘Letra inválida.’ );
ERROR_BAD_NET_NAME : ShowMessage ( ‘Nome do servidor não é válido ou não pode ser localizado.’ );
ERROR_BAD_PROFILE : ShowMessage ( ‘Formato incorreto de parâmetros.’ );
ERROR_CANNOT_OPEN_PROFILE : ShowMessage ( ‘Conexão permanente não disponível.’ );
ERROR_DEVICE_ALREADY_REMEMBERED : ShowMessage ( ‘Uma entrada para o dispositivo especificado já está no perfil do usuário.’ );
ERROR_EXTENDED_ERROR : ShowMessage ( ‘Erro de rede.’ );
ERROR_INVALID_PASSWORD : ShowMessage ( ‘Senha especificada inválida.’ );
ERROR_NO_NET_OR_BAD_PATH : ShowMessage ( ‘A operação não foi concluída porque a rede não foi inicializada ou caminho é inválido.’ );
ERROR_NO_NETWORK : ShowMessage ( ‘A rede não está presente.’ );
else if Err > 0 then
ShowMessage (IntToStr(Err));
end;
end;

Consulte mais informação

Como converter decimal para romanos no Delphi

Function DecToRoman( Decimal: LongInt ): String;
{Converte um numero decimal em algarismos romanos}
const
Romans: Array[1..13] of String = ( ‘I’, ‘IV’, ‘V’, ‘IX’, ‘X’, ‘XL’, ‘L’, ‘XC’, ‘C’, ‘CD’, ‘D’, ‘CM’, ‘M’ );
Arabics: Array[1..13] of Integer =( 1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000);
var
i: Integer;
scratch: String;
begin
scratch := ”;
for i := 13 downto 1 do
while ( Decimal >= Arabics[i] ) do
begin
Decimal := Decimal – Arabics[i];
scratch := scratch + Romans[i];
end;
Result := scratch;
end;

Como desconectar unidade de rede no Delphi

Function DesconectaRede(Letra:Pchar;Forcada:boolean):String;
//
// Disconecta uma unidade mapeada via programação
//
// Letra = Letra atribuida a unidade
// Forcada = Força o cancelamento do mapeamento
//
begin
WNetCancelConnection2(Letra,0,Forcada);
Case GetLastError() of
1205: Result := ‘Não foi possível abrir o perfil’;
1206: Result := ‘Perfil do usuário não encontrado ou inválido’;
1208: Result := ‘Ocorreu um Erro específico na rede’;
2138: Result := ‘Rede não encontrada ou fora do ar’;
2250: Result := ‘Mapeamento inválido ou não encontrado’;
2401: Result := ‘Existem muitos arquivos abertos’;
else
Result := ‘Unidade disconectada com sucesso’;
end;
end;

Como enviar dados do delphi para o excel no Delphi

Procedure TFormCTEmbarque.SpeedButton1Click(Sender: TObject);
var
Excel : Variant;
Linha:Integer;
begin
Excel := CreateOleObject(‘Excel.Application’);
Excel.Visible :=True;
{Excel.Workbooks.Add;}
Excel.WorkBooks.Open(‘\SERVIDORCotacaoGerar.xls’);
Excel.WorkBooks[1].Sheets[1].Cells[2,7]:=Now;
Excel.WorkBooks[1].Sheets[1].Cells[3,2]:=DMCotacao.TBLiberaRemetente.Value;
Excel.WorkBooks[1].Sheets[1].Cells[3,5]:=DMCotacao.TBLiberaColeta.Value +
‘-‘ +DMCotacao.TBLiberaUF_Coleta.Value;
Excel.WorkBooks[1].Sheets[1].Cells[4,2]:=DMCotacao.TBLiberaDestinatario.Value;
Excel.WorkBooks[1].Sheets[1].Cells[4,5]:=DMCotacao.TBLiberaDestino.Value +
‘-‘ +DMCotacao.TBLiberaUF_Destino.Value;
Excel.WorkBooks[1].Sheets[1].Cells[5,2]:=DMCotacao.TBLiberaQuantidade.AsString;
Excel.WorkBooks[1].Sheets[1].Cells[5,5]:=DMCotacao.TBLiberaFreteEmpresa.AsString;
Excel.WorkBooks[1].Sheets[1].Cells[5,7]:=DMCotacao.TBLiberaContrato.AsString;
Excel.WorkBooks[1].Sheets[1].Cells[6,2]:=FormCTEmbarque.Edit2.Text;
Excel.WorkBooks[1].Sheets[1].Cells[6,5]:=FormCTEmbarque.Edit3.Text;
Excel.WorkBooks[1].Sheets[1].Cells[6,7]:=FormCTEmbarque.Edit4.Text;
Excel.WorkBooks[1].Sheets[1].Cells[7,2]:=DMCotacao.TBLiberaObservacao.Value;
DmCotacao.QCTEmbarque.Open;
Linha:=10;
While not DMCotacao.QCTEmbarque.Eof do
Begin
Excel.WorkBooks[1].Sheets[1].Cells[Linha,2]:=DMCotacao.QCTEmbarqueCTRC.Value;
Excel.WorkBooks[1].Sheets[1].Cells[Linha,3]:=DMCotacao.QCTEmbarqueNotaFiscal.Value;
Excel.WorkBooks[1].Sheets[1].Cells[Linha,4]:=DMCotacao.QCTEmbarquePeso.Value;
Excel.WorkBooks[1].Sheets[1].Cells[Linha,5]:=DMCotacao.QCTEmbarquePlaca.Value;
Excel.WorkBooks[1].Sheets[1].Cells[Linha,6]:=DMCotacao.QCTEmbarqueData.Value;
DmCotacao.QCTEmbarque.Next;
Linha:=Linha+1;
end;
Excel.WorkBooks[1].SaveAs(‘\SERVIDORCotacaoControle.xls’);
DMCotacao.TBCotacao.Refresh;
end;

Como evitar as mensagens de warning do compilador no Delphi

 

{$WARNINGS OFF}
function TfrmEdit.ProjectTypeToUse(const cPath: string): Integer; var
SR: TSearchRec;
begin
if not DirectoryExists(cPath) then begin
ErrMsg(‘Path não localizado!’);
Exit;
end;
try
if FindFirst(cPath + ‘*.VBP’,faDirectory,SR) = 0 then
Result := VBP_FILTER
else
Result := DPR_FILTER;
except
ErrMsg(‘Falha de sistema -‘ + cPath);
Result := 1
end;
end;
{$WARNINGS ON}

Como evitar efeito de maximização no Delphi

Se você já desenvolveu uma aplicação MDI com um formulário MDIChild que tem que ser exibido em estado Maximizado (WindowState=wsMaximized), provavelmente você já se deparou com aquele deselegante problema em que o usuário acompanha a maximização do seu formulário. Para evitar isto, faça o seguinte: Antes de criar o seu formulário para a exibição, utilize LockWindowUpdate(Handle);

Consulte mais informação