As habilidades básicas de desenvolvimento do DELPHI de nossos ancestrais
Compilação: Inquilinos Fonte: Fórum de Monopólio
◇[DELPHI] Copie arquivos da vizinhança de rede
usa goma-lapi;
copyfile(pchar('newfile.txt'),pchar('//nome do computador/direção/targer.txt'),false);
◇[DELPHI] produz efeito de arrastar do mouse
Implementado através do evento MouseMove, evento DragOver, evento EndDrag, como LABEL no PANEL:
var xpanel,ypanel,xlabel,ylabel:inteiro;
Evento MouseMove do PANEL: xpanel:=x;ypanel:=y;
Evento DragOver do PANEL: xpanel:=x;ypanel:=y;
Evento MouseMove do LABEL: xlabel:=x;ylabel:=y;
Evento EndDrag do LABEL: label.left:=xpanel-xlabel;label.top:=ypanel-ylabel;
◇[DELPHI] Obtenha o diretório WINDOWS
usa goma-lapi;
var windir:array[0..255] de char;
getwindowsdirectory(windir,sizeof(windir));
Ou leia no registro, localização:
HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion
Chave SystemRoot, obtida como: C:/WINDOWS
◇[DELPHI] Desenhe linhas no FORM ou em outros contêineres
var x,y:array [0..50] de número inteiro;
canvas.pen.color:=clred;
canvas.pen.style:=PSDash;
form1.canvas.moveto(trunc(x[i]),trunc(y[i]));
form1.canvas.lineto(trunc(x[j]),trunc(y[j]));
◇[DELPHI] uso da lista de strings
var dicas:tstringlist;
dicas:=tstringlist.create;
dicas.loadfromfile('nomedoarquivo.txt');
edit1.text:=dicas[0];
dicas.add('string de adição da última linha');
dicas.insert(1,'inserir string na linha NO 2');
dicas.savetofile('novoarquivo.txt');
dicas.grátis;
◇[DELPHI]Operação simples da área de transferência
richedit1.selectall;
richedit1.copytoclipboard;
richedit1.cuttoclipboard;
edit1.pastefromclipboard;
◇[DELPHI] Sobre operações de arquivos e diretórios
Chdir('c:/abcdir');Vá para o diretório
Mkdir('dirname');Criar diretório
Rmdir('nomediretório');
GetCurrentDir;//Obtém o nome do diretório atual, sem '/'
Getdir(0,s);//Obtém o nome do diretório de trabalho s:='c:/abcdir';
Deletfile('abc.txt'); //Excluir arquivo
Renamefile('old.txt','new.txt');//Renomear arquivo
ExtractFilename(filelistbox1.filename); //Obtém o nome do arquivo
ExtractFileExt(filelistbox1.filename); //Obtém o sufixo do arquivo
◇[DELPHI] Atributos do arquivo de processo
attr:=filegetattr(filelistbox1.filename);
if (attr e faReadonly)=faReadonly then ... //somente leitura
if (attr e faSysfile)=faSysfile then ... //sistema
if (attr e faArchive)=faArchive então... //Arquivar
if (attr e faHidden)=faHidden then ... //Ocultar
◇[DELPHI]Executar arquivos fora do programa
WINEXEC // Chama arquivo executável
winexec('command.com /c copiar *.* c:/',SW_Normal);
winexec('iniciar abc.txt');
ShellExecute ou ShellExecuteEx // Inicia o programa de associação de arquivos
function executefile(const nome do arquivo,params,defaultDir:string;showCmd:integer):THandle;
ExecuteFile('C:/abc/a.txt','x.abc','c:/abc/',0);
ExecuteFile('http://tingweb.yeah.net','','',0);
ExecuteFile('mailto:[email protected]','','',0);
◇[DELPHI] Obtenha o nome do processo em execução no sistema
var hCurrentWindow:HWnd;szText:array[0..254] of char;
começar
hCurrentWindow:=Getwindow(handle,GW_HWndFrist);
enquanto hCurrentWindow <> 0 faça
começar
se Getwindowtext(hcurrnetwindow,@sztext,255)>0 então listbox1.items.add(strpas(@sztext));
hCurrentWindow:=Getwindow(hCurrentwindow,GW_HWndNext);
fim;
fim;
◇[DELPHI]Sobre incorporação de assembly
Fim do Asm;
EAX, ECX e EDX podem ser modificados à vontade; ESI, EDI, ESP, EBP e EBX não podem ser modificados.
◇[DELPHI]Sobre a função de conversão de tipo
FloatToStr // Ponto flutuante para string
FloatToStrF // Ponto flutuante formatado para string
IntToHex //Inteiro para hexadecimal
TimeToStr
DataToStr
DateTimeToStr
FmtStr // Gera uma string no formato especificado
FormatDateTime('AAAA-MM-DD,hh-mm-ss',DATA);
◇[DELPHI]Procedimentos e funções de string
Insert(obj,target,pos);//A string target é inserida na posição da pos. Se o resultado da inserção for maior que o comprimento máximo do destino, os caracteres em excesso serão truncados. Se Pos estiver fora de 255, ocorrerá um erro de tempo de execução. Por exemplo, st:='Brian', então Insert('OK',st,2) fará com que st se torne 'BrOKian'.
Delete(st,pos,Num);//Exclui uma substring de caracteres Num (inteiros) começando na posição pos (inteiro) na st string. Por exemplo, st:='Brian', então Delete(st,3,2) se tornará Brn.
Str(value,st);//Converte o valor numérico (tipo inteiro ou real) em uma string e coloca-o em st. Por exemplo, quando a=2.5E4, str(a:10,st) fará com que o valor de st seja '25000'.
Val(st,var,code);//Converte a expressão da string st no número inteiro ou valor real correspondente e armazena-o em var. St deve ser uma string representando um valor numérico e estar em conformidade com as regras para constantes numéricas. Durante o processo de conversão, se nenhum erro for detectado, o código da variável é colocado em 0, caso contrário, é colocado na posição do primeiro caractere de erro. Por exemplo, st:=25.4E3, x é uma variável real, então val(st,x,code) tornará o valor X 25400 e o valor do código 0.
Copy(st.pos.num);//Retorna uma substring começando na posição pos (inteiro) na st string e contendo caracteres num (inteiro). Se pos for maior que o comprimento da st string, uma string vazia será retornada. Se pos estiver fora de 255, ocorrerá um erro de tempo de execução. Por exemplo, st:='Brian', então Copy(st,2,2) retorna 'ri'.
Concat(st1,st2,st3...,stn);//Concatena as strings representadas por todas as variáveis independentes na ordem dada e retorna o valor concatenado. Se o comprimento do resultado for 255, ocorrerá um erro de tempo de execução. Por exemplo, st1:='Brian',st2:=' ',st3:='Wilfred', então Concat(st1,st2,st3) retorna 'Brian Wilfred'.
Length(st);//Retorna o comprimento da expressão de string st. Por exemplo, st:='Brian', o valor de retorno de Length(st) é 5.
Pos(obj,target);//Retorna a posição onde a string obj aparece pela primeira vez na string de destino target Se target não tiver uma string correspondente, o valor de retorno da função Pos é 0. Por exemplo, target:='Brian Wilfred', então o valor de retorno de Pos('Wil',target) é 7 e o valor de retorno de Pos('hurbet',target) é 0.
◇[DELPHI]Sobre como lidar com o registro
usa Registro;
var reg:Registro;
reg:=Tregistro.create;
reg.rootkey:='HKey_Current_User';
reg.openkey('Painel de Controle/Área de Trabalho',falso);
reg.WriteString('Papel de parede do título','0');
reg.writeString('Papel de parede',filelistbox1.filename);
reg.closereg;
reg.grátis;
◇[DELPHI]Sobre nomes constantes do teclado
VK_BACK/VK_TAB/VK_RETURN/VK_SHIFT/VK_CONTROL/VK_MENU/VK_PAUSE/VK_ESCAPE
/VK_SPACE/VK_LEFT/VK_RIGHT/VK_UP/VK_DOWN
F1--F12:$70(112)--$7B(123)
Az:$41(65)--$5A(90)
0-9:$30(48)--$39(57)
◇[DELPHI] Determinar preliminarmente o idioma nativo do programa
Prompt DOS do software DELPHI: Este programa deve ser executado no Win32.
Prompt do DOS para software VC++: Este programa não pode ser executado no modo DOS.
◇[DELPHI]Operação de cookies
resposta.cookies("nome").domain:='http://www.086net.com';
com response.cookies.add faça
começar
nome:='nome de usuário';
valor:='nome de usuário';
fim
◇[DELPHI] adicionado ao link do menu do documento
usa shellapi,shlOBJ;
shAddToRecentDocs(shArd_path,pchar(filepath));//Adiciona conexão
shAddToRecentDocs(shArd_path,nil);//Limpar
◇[Diversos] Dicionário de método de entrada ABC inteligente de backup
windows/sistema/usuário.rem
windows/sistema/tmmr.rem
◇[DELPHI] Determinar os botões do mouse
if GetAsyncKeyState(VK_LButton)<>0 then ... //Botão esquerdo
if GetAsyncKeyState(VK_MButton)<>0 then ... //chave do meio
if GetAsyncKeyState(VK_RButton)<>0 then ... //clique com o botão direito
◇[DELPHI]Defina a exibição máxima do formulário
evento onFormCreate
self.largura:=tela.largura;
self.height:=tela.height;
◇ Botão [DELPHI] para aceitar mensagens
Processado no evento OnCreate: application.OnMessage:=MyOnMessage;
procedimento TForm1.MyOnMessage(var MSG:TMSG;var Handle:Boolean);
começar
se msg.message=256 então... //QUALQUER chave
se msg.message=112 então... //F1
se msg.message=113 então... //F2
fim;
◇[Diversos]Ocultar pastas compartilhadas
Efeito de compartilhamento: acessível, mas invisível (em gerenciamento de recursos, Vizinhança de Rede)
Nomeie o compartilhamento: direção$
Visite: //computador/direção/
◇[java Script] Efeitos comumente usados em páginas da web Java Script
A página da web está programada para fechar em 60 segundos
<script linguagem="java script"><!--
settimeout('window.close();',60000)
--></script>
fechar janela
<a href="/" onclick="Javascript:window.close();return false;">Fechar</a>
Transferência de URL agendada
<meta http-equiv="refresh" content="40;url=http://www.086net.com">
Definir como página inicial
<a onclick="this.style.behavior='url(#default#homepage)';this.sethomepage('http://086net.com');"href="#">Definir como página inicial</a>
Marque este site como favorito
<a href="javascript:window.external.addfavorite('http://086net.com','[无名pier]')">Adicionar este site aos favoritos</a>
Junte-se ao canal
<a href="javascript:window.external.addchannel('http://086net.com')">Adicionar canal</a>
◇[DELPHI]Relacionado à edição de texto
checkbox1.checked:=não checkbox1.checked;
se checkbox1.checked então richedit1.font.style:=richedit1.font.style+[fsBold] else richedit1.font.style:=richedit1.font.style-[fsBold]//bold
se checkbox1.checked então richedit1.font.style:=richedit1.font.style+[fsItalic] else richedit1.font.style:=richedit1.font.style-[fsItalic]//italic
se checkbox1.checked então richedit1.font.style:=richedit1.font.style+[fsUnderline] else richedit1.font.style:=richedit1.font.style-[fsUnderline]//underline
memo1.alignment:=taLeftJustify;//Esquerda
memo1.alignment:=taRightJustify;//direita
memo1.alignment:=taCenter;//Centrado
◇[DELPHI] Gerar cor de texto aleatoriamente
randomize; //semente aleatória
memo1.font.color:=rgb(aleatório(255),aleatório(255),aleatório(255));
◇[DELPHI]Número de série do patch de atualização DELPHI5 UPDATE
1000003185
90X25fx0
◇[DELPHI]Filtragem ilegal de caracteres em nomes de arquivos
para i:=1 para comprimento(s) faça
se s[i] em ['/','/',':','*','?','<','>','|'] então
◇[DELPHI]Definição e descrição da função de conversão
datetimetofiledate (datetime:Tdatetime):longint Converte um valor de data e hora no formato Tdatetime em um valor de data e hora no formato DOS;
datetimetostr (datetime:Tdatetime):string; Converta a variável de formato Tdatatime em uma string Se o parâmetro datetime não contiver um valor de data, a data da string retornada será exibida como 00/00/00. o parâmetro datetime, a string retornada será A parte da hora é exibida como 00:00:00 AM
datetimetostring (var string de resultado;
formato const:string;
datetime:Tdatetime); Converta valores de hora e data de acordo com a string de formato fornecida, resultado é a string de resultado, formato é a string de formato de conversão, datetime é o valor de data e hora
datetostr (date:Tdatetime) usa a string de formato definida pela variável global shortdateformat para converter o parâmetro de data na string correspondente
floattodecimal (var resultado:Tfloatrec;valor:
estendido; precisão, decimais:
inteiro); Converter número de ponto flutuante em representação decimal
floattostr (value:extended):string Converte o valor de ponto flutuante em formato de string. Esta conversão usa formato de número comum e o número efetivo de dígitos convertidos é 15.
floattotext (buffer:pchar;valor:estendido;
formato:Tfloatformat;precisão,
digits:integer):integer; Use o formato, precisão e decimal fornecidos para converter o valor do ponto flutuante em representação decimal. O resultado da conversão é armazenado no parâmetro buffer. O buffer não é um buffer de string com 0 resultados.
floattotextfmt (buffer:pchar;valor:estendido;
format:pchar):integer Use o formato fornecido para converter o valor do ponto flutuante em representação decimal. O resultado da conversão é armazenado no parâmetro buffer.
intttohex (valor: inteiro longo; dígitos: inteiro):
string; Converte o valor numérico fornecido em uma string hexadecimal. O parâmetro digits fornece o número de dígitos contidos na string do resultado da conversão.
inttostr (valor: inteiro longo):string converte um número inteiro em uma string decimal
strtodate (const S:string):Tdatetime Converte uma string em um valor de data S deve conter uma string de data em formato legal.
strtodatetime (const S:string):Tdatetime Converte a string S no formato de data e hora, S deve ter o formato MM/DD/AA HH:MM:SS[AM|PM], onde os separadores de data e hora são iguais ao período do sistema constante de tempo Configuração relacionada. Se nenhuma informação AM ou PM for especificada, o relógio de 24 horas será usado.
strtofloat (const S:string):extended; Converte a string fornecida em um número de ponto flutuante.
[+|-]nnn…[.]nnn…[<+|-><E|e><+|->nnnn]
strtoint (const S:string):longint Converte uma string numérica em um número inteiro. A string pode estar no formato decimal ou hexadecimal. Se a string não for uma string numérica válida, o sistema gerará uma exceção ECONVERTERROR.
strtointdef (const S:string;padrão:
longint):longint; Converte a string S em um número Se S não puder ser convertido em um número, a função strtointdef retorna o valor do parâmetro padrão.
strtotime (const S:string):Tdatetime Converte a string S em um valor TDATETIME S tem o formato HH:MM:SS[AM|PM].
timetostr (time:Tdatetime):string; Converte o parâmetro TIME em uma string. O formato da sequência de resultados da conversão está relacionado à configuração das constantes relacionadas ao tempo do sistema.
◇Programa [DELPHI] não aparece em ALT+CTRL+DEL
Adicione declaração após a implementação:
função RegisterServiceProcess (dwProcessID, dwType: Integer): Integer; externo 'KERNEL32.DLL';
RegisterServiceProcess(GetCurrentProcessID, 1); //Ocultar
RegisterServiceProcess(GetCurrentProcessID, 0); //Exibir
Invisível com ALT+DEL+CTRL
◇O programa [DELPHI] não aparece na barra de tarefas
usa janelas
var
Estilo Estendido: Inteiro;
começar
Aplicativo.Inicializar;
//=============================================== ==============
ExtendedStyle := GetWindowLong (Application.Handle, GWL_EXSTYLE);
SetWindowLong (Application.Handle, GWL_EXSTYLE, ExtendedStyle OU WS_EX_TOOLWINDOW
E NÃO WS_EX_APPWINDOW);
//============================================== ===============
Application.CreateForm(TForm1, Form1);
Aplicativo.Executar;
fim.
◇[DELPHI]Como determinar se a rede dial-up está ativada ou desativada
se GetSystemMetrics(SM_NETWORK) AND $01 = $01 então
showmessage('Online!')
else showmessage('Não está online!');
◇[DELPHI]Converter IP em nome de domínio
function GetDomainName(Ip:string):string;
var
pH:PHostent;
dados:twsadata;
ii:dPalavra;
começar
WSAStartup($101, Dados);
ii:=inet_addr(pchar(ip));
pH:=gethostbyaddr(@ii,sizeof(ii),PF_INET);
se (ph<>nil) então
resultado:=pH.h_nome
outro
resultado:='';
Limpeza WSA;
fim;
◇[DELPHI] Como lidar com o "menu do botão direito"
var
reg: TRegistro;
começar
reg := TRegistry.Create;
reg.RootKey:=HKEY_CLASSES_ROOT;
reg.OpenKey('*/shell/verificação/comando', verdadeiro);
reg.WriteString('', '"' + application.ExeName + '" "%1"');
reg.CloseKey;
reg.OpenKey('*/shell/diary', falso);
reg.WriteString('', 'Operação(&C)');
reg.CloseKey;
reg.Grátis;
showmessage('CONCLUÍDO!');
fim;
◇[DELPHI]Enviar valor de chave virtual ctrl V
procedimento enviar pasta;
começar
keybd_event(VK_Control, MapVirtualKey(VK_Control, 0), 0, 0);
keybd_event(ord('V'), MapVirtualKey(ord('V'), 0), 0, 0);
keybd_event(ord('V'), MapVirtualKey(ord('V'), 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_Control, MapVirtualKey(VK_Control, 0), KEYEVENTF_KEYUP, 0);
fim;
◇[DELPHI]A letra da unidade óptica atual
procedimento getcdrom(var cd:char);
var
string:string;
motoristas: inteiro;
motorista:char;
eu,temp:inteiro;
começar
drivers: = obter unidades lógicas;
temp:=(1 e drivers);
para i:=0 a 26 faça
começar
se temperatura = 1 então
começar
motorista:=char(i+inteiro('a'));
str:=motorista+':';
se getdrivetype(pchar(str))=drive_cdrom então
começar
cd:=driver;
saída;
fim;
fim;
motoristas:=(drivers shr 1);
temp:=(1 e drivers);
fim;
fim;
◇[DELPHI]Criptografia e descriptografia de caracteres
função cryptstr(const s:string; tipo: dword):string;
var
eu: inteiro;
fkey: inteiro;
começar
resultado:='';
tipo de caso de
0: setpass;
começar
randomizar;
tecla f:= aleatório($ff);
para i:=1 para comprimento(s) faça
resultado := resultado+chr( ord(s[i]) xor i xor fkey);
resultado := resultado + char(fkey);
fim;
1: obter passe
começar
fkey := ord(s[comprimento(s)]);
para i:=1 para comprimento(s) - 1 faça
resultado := resultado+chr( ord(s[i]) xor i xor fkey);
fim;
fim;
□◇[DELPHI] Envie chaves simuladas para outros aplicativos
var
h:TAlça;
começar
h := FindWindow(nil, 'Título do aplicativo');
PostMessage(h, WM_KEYDOWN, VK_F9, 0); //Envia tecla F9
fim;
□◇[DELPHI] Formato de dados DAO suportado por DELPHI
td.Fields.Append(td.CreateField('dbBoolean',dbBoolean,0));
td.Fields.Append(td.CreateField('dbByte',dbByte,0));
td.Fields.Append(td.CreateField('dbInteger',dbInteger,0));
td.Fields.Append(td.CreateField('dbLong',dbLong,0));
td.Fields.Append(td.CreateField('dbCurrency',dbCurrency,0));
td.Fields.Append(td.CreateField('dbSingle',dbSingle,0));
td.Fields.Append(td.CreateField('dbDouble',dbDouble,0));
td.Fields.Append(td.CreateField('dbDate',dbDate,0));
td.Fields.Append(td.CreateField('dbBinary',dbBinary,0));
td.Fields.Append(td.CreateField('dbText',dbText,0));
td.Fields.Append(td.CreateField('dbLongBinary',dbLongBinary,0));
td.Fields.Append(td.CreateField('dbMemo',dbMemo,0));
td.Fields['ID'].Set_Attributes(dbAutoIncrField);//campo de incremento automático
□◇[DELPHI]DELPHI configura etapas do MS SQL 7 e BDE
O primeiro passo é configurar o ODBC:
Primeiro configure a fonte de dados no ODBC Após instalar o SQL Server7.0, deverá haver dois itens em "System DSN" no ODBC.
Fontes de dados, uma é MQIS e a outra é LocalSever Selecione qualquer uma e clique no botão configurar Não conheço seu SQL7.0.
Está instalado na máquina local. Em caso afirmativo, prossiga diretamente para a próxima etapa. Caso contrário, preencha a coluna do servidor.
Servidor, prossiga para a próxima etapa e preencha o ID de login e a senha (o ID de login e a senha são opções do usuário no SQL7.0
centralmente localizado).
A segunda etapa é configurar o BDE:
Abra o BDE do Delphi e clique em MQIS ou LocalServer. Você será solicitado a fornecer um nome de usuário e uma senha.
O nome de usuário e a senha do ODBC são iguais, basta preenchê-los.
A terceira etapa é configurar o programa:
Se você estiver usando TTable, selecione MQIS ou LocalServer no DatabaseName de TTable e, em seguida,
Basta selecionar Venda em TableName e alterar Ativo para Verdadeiro para abrir uma caixa de diálogo e preencher o usuário.
nome e senha.
Se você estiver usando TQuery, clique com o botão direito em TQuery e clique em "SQL Builder".
Instrução SQL ou preencha a instrução SQL no SQL do TQuery. Finalmente, não se esqueça de alterar Active para True.
Também é possível configurar o TQuery durante a operação, veja a ajuda do Delphi para detalhes.
□◇[DELPHI] Obtenha o valor RGB de um determinado ponto da imagem
procedimento TForm1.Image1MouseDown(Remetente: TObject; Botão: TMouseButton;
Shift: TShiftState; X, Y: Inteiro);
var
vermelho, verde, azul: byte;
eu: inteiro;
começar
eu:= imagem1.Canvas.Pixels[x,y];
Azul:= GetBValue(i);
Verde:= ObterGValue(i):
Vermelho:= GetRValue(i);
Label1.Caption:=inttostr(Vermelho);
Label2.Caption:=inttostr(Verde);
Label3.Caption:=inttostr(Azul);
fim;
□◇[DELPHI]Sobre decomposição e conversão de formato de data
var ano,mês,dia:palavra;agora2:Tdatatime;
agora2:=data();
decodificação(agora2,ano,mês,dia);
label1.Text :=inttostr(ano)+'ano'+inttostr(mês)+'mês'+inttostr(dia)+'dia';
◇[DELPHI]Como determinar o modo de conexão de rede atual
O resultado do julgamento é o modo MODEM, LAN ou servidor proxy.
usa wininet;
Função ConnectionKind :boolean;
var sinalizadores: dword;
começar
Resultado:=InternetGetConnectedState(@flags, 0);
se Resultado então
começar
if (sinalizadores e INTERNET_CONNECTION_MODEM) = INTERNET_CONNECTION_MODEM então
começar
showmessage('Modem');
fim;
if (sinalizadores e INTERNET_CONNECTION_LAN) = INTERNET_CONNECTION_LAN então
começar
showmessage('LAN');
fim;
if (sinalizadores e INTERNET_CONNECTION_PROXY) = INTERNET_CONNECTION_PROXY então
começar
showmessage('Proxy');
fim;
if (sinalizadores e INTERNET_CONNECTION_MODEM_BUSY)=INTERNET_CONNECTION_MODEM_BUSY então
começar
showmessage('Modem ocupado');
fim;
fim;
fim;
◇[DELPHI]Como determinar se uma string é um endereço de EMAIL válido
função IsEMail(EMail: String): Boolean;
var s: String;ETpos: Inteiro;
começar
ETpos:= pos('@', Email);
se ETpos > 1 então
começar
s:= copiar(E-mail,ETpos+1,Comprimento(E-mail));
if (pos('.', s) > 1) e (pos('.', s) < comprimento(s)) então
Resultado:= verdadeiro senão Resultado:= falso;
fim
outro
Resultado:= falso;
fim;
◇[DELPHI] Determine se o sistema está conectado à INTERNET
A função InetIsOffline em URL.DLL precisa ser introduzida.
A declaração da função é:
função InetIsOffline (Sinalizador: Inteiro): Boolean;
Então você pode chamar a função para determinar se o sistema está conectado à INTERNET
se InetIsOffline(0) então ShowMessage('não conectado!')
senão ShowMessage('conectado!');
Esta função retorna TRUE se o sistema local não estiver conectado à INTERNET.
Apegado:
A maioria dos sistemas com IE ou OFFICE97 possuem esta DLL disponível para chamada.
Inet está offline
BOOL InetIsOffline(
DWORD dwFlags,
);
◇[DELPHI]Reproduza e pause facilmente arquivos WAV
usa mmsystem;
função PlayWav (const Nome do arquivo: string): Boolean;
começar
Resultado: = PlaySound (PChar (Nome do arquivo), 0, SND_ASYNC);
fim;
procedimento StopWav;
var
buffer: array[0..2] de char;
começar
buffer[0] := #0;
PlaySound(Buffer, 0, SND_PURGE);
fim;
◇[DELPHI] Obtenha informações do BIOS da máquina
com Memo1.Lines fazer
começar
Add('MainBoardBiosName:'+^I+string(Pchar(Ptr($FE061))));
Add('MainBoardBiosCopyRight:'+^I+string(Pchar(Ptr($FE091))));
Add('MainBoardBiosDate:'+^I+string(Pchar(Ptr($FFFF5))));
Add('MainBoardBiosSerialNo:'+^I+string(Pchar(Ptr($FEC71))));
fim;
◇[DELPHI] Baixe arquivos da Internet
usa UrlMon;
function DownloadFile(Fonte, Destino: string): Boolean;
começar
tentar
Resultado:= UrlDownloadToFile(nil, PChar(fonte), PChar(Dest), 0, nil) = 0;
exceto
Resultado := Falso;
fim;
fim;
se DownloadFile('http://www.borland.com/delphi6.zip, 'c:/kylix.zip') então
ShowMessage('Download realizado com sucesso')
else ShowMessage('Download sem sucesso')
◇[DELPHI]Resolver endereço IP do servidor
usa Winsock
função IPAddrToName (IPAddr: String): String;
var
SockAddrIn: TSockAddrIn;
HostEnt: PHostEnt;
WSAData: TWSAData;
começar
WSAStartup($101, WSAData);
SockAddrIn.sin_addr.s_addr:= inet_addr(PChar(IPAddr));
HostEnt:= gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);
se HostEnt<>nil então resultado:=StrPas(Hostent^.h_name) senão resultado:='';
fim;
◇[DELPHI] Obtenha a conexão no atalho
função ExeFromLink (const linkname: string): string;
var
FDir,
Nome,
ExeName: PChar;
z: inteiro;
começar
NomeExe:= StrAlloc(MAX_PATH);
FNome:= StrAlloc(MAX_PATH);
FDir:= StrAlloc(MAX_PATH);
StrPCopy(FName, ExtractFileName(linkname));
StrPCopy(FDir, ExtractFilePath(nome do link));
z:= FindExecutable(FName, FDir, ExeName);
se z > 32 então
Resultado:= StrPas(NomeExe)
outro
Resultado:= '';
StrDispose(FDir);
StrDispose(FNome);
StrDispose(NomeExe);
fim;
◇[DELPHI]Controle o preenchimento automático do TCombobox
{Propriedade 'Classificada' do TCombobox para true }
var lastKey: Word; //variável global
//Evento OnChange do TCombobox
procedimento TForm1.AutoCompleteChange(Remetente: TObject);
var
PesquisaStr: string;
retVal: inteiro;
começar
SearchStr := (Remetente como TCombobox).Text;
se lastKey <> VK_BACK then // backspace: VK_BACK ou $08
começar
retVal := (Remetente como TCombobox).Perform(CB_FINDSTRING, -1, LongInt(PChar(SearchStr)));
se retVal > CB_Err então
começar
(Remetente como TCombobox).ItemIndex := retVal;
(Remetente como TCombobox).SelStart := Length(SearchStr);
(Remetente como TCombobox).SelLength :=
(Length((Sender as TCombobox).Text) - Length(SearchStr));
fim; // retVal > CB_Err
fim; //últimaChave <> VK_BACK
últimaChave := 0; //reset últimaChave
fim;
//Evento OnKeyDown do TCombobox
procedimento TForm1.AutoCompleteKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
começar
últimaChave := Chave;
fim;
◇[DELPHI]Como limpar um diretório
função EmptyDirectory (TheDirectory: String; Recursivo: Boolean):
Booleano;
var
SearchRec : TSearchRec;
Res: Inteiro;
começar
Resultado := Falso;
ODiretório := NormalDir(ODiretório);
Res := FindFirst(TheDirectory + '*.*', faAnyFile, SearchRec);
tentar
enquanto Res = 0 faça
começar
se (SearchRec.Name <> '.') e (SearchRec.Name <> '..') então
começar
if ((SearchRec.Attr e faDirectory)> 0) e recursivo
então comece
VazioDirectory(TheDirectory + SearchRec.Name, True);
RemoveDirectory(PChar(TheDirectory + SearchRec.Name));
fim
senão começar
DeleteFile(PChar(TheDirectory + SearchRec.Name))
fim;
fim;
Res := FindNext(SearchRec);
fim;
Resultado := Verdadeiro;
finalmente
FindClose(SearchRec.FindHandle);
fim;
fim;
◇[DELPHI]Como calcular o tamanho de um diretório
função GetDirectorySize (const ADirectory: string): Inteiro;
var
Dir: TSearchRec;
Ret: inteiro;
Caminho: sequência;
começar
Resultado:= 0;
Caminho := ExtractFilePath(ADirectory);
Ret := Sysutils.FindFirst(ADirectory, faAnyFile, Dir);
se Ret <> NO_ERROR então saia;
tentar
enquanto ret=NO_ERROR faça
começar
inc(Resultado, Dir.Size);
if (Dir.Attr em [faDirectory]) e (Dir.Name[1] <> '.') então
Inc(Resultado, GetDirectorySize(Caminho + Dir.Name + '/*.*'));
Ret := Sysutils.FindNext(Dir);
fim;
finalmente
Sysutils.FindClose(Dir);
fim;
fim;
◇[DELPHI]Como adicionar o instalador à lista de desinstalação
Opere o registro da seguinte maneira:
1. Crie uma chave primária na chave HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall com qualquer nome.
ExemploHKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/MyUninstall
2. Digite dois valores de string em HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/MyUnistall.
Os nomes desses dois valores de string são específicos: DisplayName e UninstallString.
3. Atribua o valor da string DisplayName ao nome exibido na “Lista de Exclusão de Aplicativos”, como por exemplo ‘Visando Desinstalar um’;
Atribua a string UninstallString ao comando de exclusão executado, como C:/WIN97/uninst.exe -f "C:/TestPro/aimTest.isu"
◇[DELPHI]Mensagem de encerramento de sessão WM_QUERYEND interceptada
tipo
TForm1 = classe(TForm)
procedimento WMQueryEndSession(var Mensagem: TWMQueryEndSession mensagem WM_QUERYENDSESSION);
procedimento CMEraseBkgnd(var Mensagem:TWMEraseBkgnd);Mensagem WM_ERASEBKGND;
privado
{Declarações privadas}
público
{Declarações públicas}
fim;
procedimento TForm1.WMQueryEndSession(var Mensagem: TWMQueryEndSession);
começar
Showmessage('computador prestes a desligar');
fim;
◇[DELPHI]Obtenha vizinhos on-line
procedimento getnethood(); //NT é usado como servidor e depuração passada no WIN98.
var
a,i:inteiro;
código de erro:inteiro;
netres:array[0..1023] do recurso de rede;
enumhandle:handle;
enumentos:dword;
tamanho do buffer:dword;
s:string;
meuslistitems:tlistitems;
meulistitem:tlistitem;
todosdomínio:tstrings;
Begin //listcomputer é um listview para listar todos os computadores;controlcenter é um formulário.
todosdomínio:=tstringlist.Create;
com netres[0] comece
dwscope :=RESOURCE_GLOBALNET;
dwtype :=RESOURCETYPE_ANY;
dwdisplaytype :=RESOURCEDISPLAYTYPE_DOMAIN;
dwusage :=RESOURCEUSAGE_CONTAINER;
lplocalname :=nil;
lpremotename :=nil;
lpcomment :=nil;
provedorlp :=nil;
fim; // Obtém todos os campos
código de erro:=wnetopenenum(RESOURCE_GLOBALNET,RESOURCETYPE_ANY,RESOURCEUSAGE_CONTAINER,@netres[0],enumhandle);
se errcode=NO_ERROR então comece
enumerações:=1024;
buffersize:=sizeof(netres);
código de erro:=wnetenumresource(enumhandle,enumentries,@netres[0],buffersize);
fim;
uma:=0;
meuslistitems :=controlcenter.lstcomputer.Items;
meuslistitems.Clear;
while (string(netres[a].lpprovider)<>'') e (errcode=NO_ERROR) faça
começar
alldomain.Add (netres[a].lpremotename);
uma:=uma+1;
fim;
wnetcloseenum(enumhandle);
// Pega todos os computadores
meuslistitems :=controlcenter.lstcomputer.Items;
meuslistitems.Clear;
para i:=0 para alldomain.Count-1 faça
começar
com netres[0] comece
dwscope :=RESOURCE_GLOBALNET;
dwtype :=RESOURCETYPE_ANY;
dwdisplaytype :=RESOURCEDISPLAYTYPE_SERVER;
dwusage :=RESOURCEUSAGE_CONTAINER;
lplocalname :=nil;
lpremotename :=pchar(alldomain[i]);
lpcomment :=nil;
provedorlp :=nil;
fim;
ErrCode:=WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_ANY,RESOURCEUSAGE_CONTAINER,@netres[0],EnumHandle);
se errcode = NO_ERROR então
começar
EnumEntries:=1024;
BufferSize:=SizeOf(NetRes);
ErrCode:=WNetEnumResource(EnumHandle,EnumEntries,@NetRes[0],BufferSize);
fim;
uma:=0;
while (string(netres[a].lpprovider)<>'') e (errcode=NO_ERROR) faça
começar
meulistitem :=mylistitems.Add;
meulistitem.ImageIndex :=0;
mylistitem.Caption :=maiúsculas(stringreplace(string(NetRes[a].lpremotename),'//','',[rfReplaceAll]));
uma:=uma+1;
fim;
wnetcloseenum(enumhandle);
fim;
fim;
◇[DELPHI] Obtenha o diretório compartilhado em um determinado computador
procedimento getsharefolder(const nomedocomputador:string);
var
código de erro,a:inteiro;
netres:array[0..1023] do recurso de rede;
enumhandle:handle;
enumerações,buffersize:dword;
s:string;
meuslistitems:tlistitems;
meulistitem:tlistitem;
minhasstrings:tstringlist;
começar
com netres[0] comece
dwscope :=RESOURCE_GLOBALNET;
dwtype :=RESOURCETYPE_DISK;
dwdisplaytype :=RESOURCEDISPLAYTYPE_SHARE;
dwusage :=RESOURCEUSAGE_CONTAINER;
lplocalname :=nil;
lpremotename :=pchar(nomedocomputador);
lpcomment :=nil;
provedorlp :=nil;
end; // Obtém o nó raiz
código de erro:=wnetopenenum(RESOURCE_GLOBALNET,RESOURCETYPE_DISK,RESOURCEUSAGE_CONTAINER,@netres[0],enumhandle);
se errcode=NO_ERROR então
começar
EnumEntries:=1024;
BufferSize:=SizeOf(NetRes);
ErrCode:=WNetEnumResource(EnumHandle,EnumEntries,@NetRes[0],BufferSize);
fim;
wnetcloseenum(enumhandle);
uma:=0;
meuslistitems:=controlcenter.lstfile.Items;
meuslistitems.Clear;
while (string(netres[a].lpprovider)<>'') e (errcode=NO_ERROR) faça
começar
com mylistitems faça
começar
meulistitem:=adicionar;
meulistitem.ImageIndex :=4;
mylistitem.Caption :=extractfilename(netres[a].lpremotename);
fim;
uma:=uma+1;
fim;
fim;
◇[DELPHI] Obtenha o número de série do disco rígido
var SerialNum: pdword; a, b: dword; buffer: matriz [0..255] de char;
começar
se GetVolumeInformation('c:/', Buffer, SizeOf(Buffer), SerialNum, a, b, nil, 0) então Label1.Caption := IntToStr(SerialNum^);
fim;
◇[DELPHI] Viragem automática de página do MEMO
Procedimento ScrollMemo(Memorando: TMemo; Direção: char);
começar
direção do caso de
'd': começar
SendMessage(Memo.Handle, { HWND do controle Memo }
WM_VSCROLL, {mensagem do Windows}
SB_PAGEDOWN, {comando de rolagem}
0) {Não usado}
fim;
'você': começar
SendMessage(Memo.Handle, { HWND do controle Memo }
WM_VSCROLL, {mensagem do Windows}
SB_PAGEUP, {comando de rolagem}
0); {Não usado}
fim;
fim;
fim;
procedimento TForm1.Button1Click(Remetente: TObject);
começar
ScrollMemo(Memo1,'d'); //página acima
fim;
procedimento TForm1.Button1Click(Remetente: TObject);
começar
ScrollMemo(Memo1,'u'); //Abaixa a página
fim;
◇[DELPHI]Pressione enter para a próxima posição no DBGrid (tecla Tab)
procedimento TForm1.DBGrid1KeyPress(Remetente: TObject; var Chave: Char);
começar
se Chave = #13 então
se DBGrid1.Columns.Grid.SelectedIndex <DBGrid1.Columns.Count - 1 então
DBGrid1.Columns[DBGrid1.Columns.grid.SelectedIndex + 1].Field.FocusControl
outro
começar
Tabela1.próximo;
DBGrid1.Columns[0].campo.FocusControl;
fim;
fim;
◇[DELPHI]Como instalar o controle
Método de instalação:
1. Para um único controle, Componente-->instalar componente..-->Arquivo PAS ou DCU-->instalar
2. Para pacotes de controle com arquivos *.dpk, Arquivo-->abrir (selecione *.dpk na caixa de listagem suspensa)-->instalar.
3. Para pacotes de controle com arquivos *.dpl, Instalar Pacotes-->Adicionar-->nome do arquivo dpl.
4. Se o botão Instalar acima for inválido, tente o botão Compilar.
5. Se for uma lib de tempo de execução, adicione-a a runtimepackes em pacotes na opção.
Se avisar que o arquivo não pode ser encontrado durante a compilação, geralmente é porque o diretório de instalação do controle não está no diretório Lib do Delphi. Existem duas maneiras de resolver o problema:
1. Copie os arquivos de instalação originais para o diretório Lib do delphi.
2. Ou adicione o caminho do código original do controle ao diretório Delphi Lib em Ferramentas-->Opções de Ambiente.
◇[DELPHI] Exclua completamente o diretório (deltree)
procedimento TForm1.DeleteDirectory(strDir:String);
var
sr: TSearchRec;
FileAttrs: Inteiro;
strnomedoarquivo:string;
strPth:string;
começar
strpth:=Getcurrentdir();
FileAttrs :=faAnyFile;
se FindFirst(strpth+'/'+strdir+'/*.*', FileAttrs, sr) = 0 então
começar
if (sr.Attr e FileAttrs) = sr.Attr então
começar
strnomedoarquivo:=sr.Nome;
se arquivoexistir(strpth+'/'+strdir+'/'+strfilename) então
deletefile(strpth+'/'+strdir+'/'+strfilename);
fim;
enquanto FindNext(sr) = 0 faça
começar
if (sr.Attr e FileAttrs) = sr.Attr então
começar
strnomedoarquivo:=sr.nome;
se arquivoexistir(strpth+'/'+strdir+'/'+strfilename) então
deletefile(strpth+'/'+strdir+'/'+strfilename);
fim;
fim;
EncontrarFechar(sr);
removidoir(strpth+'/'+strdir);
fim;
fim;
◇[DELPHI] Obtenha as informações de linha e coluna do cursor atual do controle TMemo em Tpoint
1.função ReadCursorPos(SourceMemo: TMemo): TPoint;
var Ponto: TPonto;
começar
ponto.y := SendMessage(SourceMemo.Handle,EM_LINEFROMCHAR,SourceMemo.SelStart,0);
point.x := SourceMemo.SelStart-SendMessage(SourceMemo.Handle,EM_LINEINDEX,point.y,0);
Resultado := Ponto;
fim;
2.LineLength:=SendMessage(memol.handle, EM—LINELENGTH, Cpos, 0);
◇[DELPHI]Ler o número de série do disco rígido
função GetDiskSerial (DiskChar: Char): string;
var
NumSerial: pdword;
a, b: dword;
Buffer: array [0..255] de char;
começar
resultado:= "";
Se getVolumeInformation (PChar (Diskchar+":/"), Buffer, Sizeof (Buffer), Serialnum,
a, b, nil, 0) então
Resultado: = inttostr (Serialnum^);
fim;
◇ [Internet] CSS comuns Habilidades abrangentes
1. P: Primeira letra {tamanho da fonte: 300%;
2. <Link rel = Stylesheet href = "basics.css" title = "contemporary"> // conectar uma folha de estilo externo
3. Incorporar uma folha de estilo
<Style type = "text/css" mídia = tela>
<!--
@import url (http://www.htmlhelp.com/style.css); // importe externamente uma folha de estilo
@import url (/stylesheets/punk.css); // o mesmo que acima
Corpo {background: url (foo.gif) vermelho;
.punk {color: cal;
#wdg97 {font-size: maior} // Consulte 6 para referências.
-->
</Style>
4. <P style = "cor: vermelho; font-família: 'novo livro escolar do século', serif"> // estilo embutido
<Span style = "font-family: Arial"> Arial </span> // span Aceita Atributos de estilo, classe e identificação
<Div class = nota> <p> div pode conter parágrafos, títulos, mesas e até outras partes </p> </div>
5. <H1 class = punk> atributo de classe </h1> // Consulte 3 para definição.
6. <P ID = WDG97> ID ATRIÇÃO </p> // Consulte 3 para definição.
7. Lista de propriedades
Estilo da fonte: estilo da fonte: [Normal |
Tamanho da fonte: FONTE: [XX-SMALL |
Decoração de texto: Decoração de texto: [Subline || Overline ||.
Transformação de texto: TRANSFORMAÇÃO DE TEXTO: NENHUM | Capitalize |
Cor de fundo: cor de fundo: [<Color> | transparente]
Imagem de fundo: Imagem de fundo: [<urls> | Nenhum]
Altura da linha: [Normal |
Border-estilo: [Nenhuma |
FLOAT: FLOAT: [esquerda |
8. unidade de comprimento
Unidades relativas:
Em (em, a altura da fonte do elemento)
Ex (H-Hight, a altura da letra "X")
PX (pixels, em relação à resolução da tela)
Comprimento absoluto:
em (polegada, 1 polegada = 2,54 centímetros)
cm (centímetro, 1 centímetro = 10 milímetros)
mm (medidor)
pt (ponto, 1 ponto = 1/72 polegada)
PC (PA, 1 PA = 12 pontos)
◇ [Delphi] Passos breves para fazer VCL
1. Crie eventos de método de atributo de componente
(Crie unidades de biblioteca, herdem como novos tipos, adicione propriedades, métodos, eventos, registre componentes e crie arquivos de pacotes)
2. Message Processamento
3. Manuseio da exceção
4. Peças visíveis
◇ [Delphi] Carregamento da biblioteca de links dinâmicos
Carregamento estático: nome do procedimento; 'lib.dll' externo;
Carregamento dinâmico: alça var: thandle;
identificador: = loadlibrary ('lib.dll');
Se alça <> 0 então
começar
{Dosomething}
Freelibrary (alça);
fim;
◇ [Delphi] Variáveis e endereços de ponteiro
var X, Y: Inteiro;
x: = 10;
P: =@x;
y: = p^;
@@ procedimento // o endereço de memória da variável da variável de processo
◇ [Delphi] Julgando o personagem é um personagem de caracteres chineses
ByteType ('hello haha ", 1) = mbleadbyte // é o primeiro personagem
ByteType ('hello haha', 2) = mbtrailbyte // é o segundo caractere
Bytetype ('hello haha ", 5) = mbsinglebyte // não é um personagem chinês
◇ [Delphi] Operação de posicionamento do memorando
Memo1.Lines.Delete (0) // Excluir linha 1
MEMO1.SELSTART: = 10 // Posicionando 10 bytes
◇ [Delphi] Obtenha código interno de caracteres duplo por byte
função getit (s: string): inteiro;
começar
Resultado: = byte (s [1]) * $ 100 + byte (s [2]);
fim;
Uso: getitit ('plano') // $ bcc6 é o decimal 48326
◇ [Delphi] Chame o procedimento de armazenamento de dados Add Data
O procedimento de armazenamento é o seguinte:
Crie procedimento AddRecord (
Registro1 varchar (10)
Record2 Varchar (20)
)
como
começar
Inserir no tableName (Field1, Field2) (: Record1 ,: Record2)
fim
Execute o procedimento de armazenamento:
Executar procedimento addRecord ("urrecord1", "urrecord2")
◇ [Delphi] Salve o arquivo no campo BLOB
Função BLOBCONTENTTRING (const FileName: String): String;
começar
Com tfilestream.create (nome do arquivo, fmopenrd)
tentar
setLength (resultado, tamanho);
Leia (ponteiro (resultado)^, tamanho);
finalmente
livre;
fim;
fim;
// salvar o campo
começar
If (opendialog1.execute) então
começar
sfilename: = opendialog1.filename;
ADOTABLE1.EDIT;
ADOTABLE1.FIELDBYNAME ('Visio').
ADOTABLE1.POST;
fim;
◇ [Delphi] Copie todos os arquivos para a área de transferência
Use shlobj, ActiveX, clipbrd;
Procedimento TForm1.CopyToclipBrd (Var FileName: String);
var
Fe: TFormatETC;
Médio: Tstgmedium;
Dropfiles: pdropfiles;
PFILE: PCHAR;
começar
Fe.cfformat: = cf_hdrop;
Fe.dwaspect: = dvaspect_content;
Fe.TyMed: = tymed_hglobal;
Medium.hglobal: = Globalloc (gmem_share ou gmem_zeroinit, sizeof (tdropfiles) +comprimento (nome do arquivo) +1);
se médio.hglobal <> 0, então comece
Médio.TyMed: = type_hglobal;
Dropfiles: = Globallock (Medium.hglobal);
tentar
drapfiles^.pfiles: = sizeof (tdropfiles);
drapfiles^.Fwide: = false;
longInt (pfile): = longint (piratões)+sizeof (tdropfiles);
StrpCopy (pfile, nome do arquivo);
Inc (PFILE, Length (nome do arquivo) +1);
pfile^: = #0;
finalmente
GlobalUnlock (Medium.hglobal);
fim;
Clipboard.setashandle (cf_hdrop, médio.hglobal);
fim;
fim;
◇ [Delphi] Liste o processo de operação atual do sistema
usa tlhelp32;
procedimento TForm1.Button1Click(Remetente: TObject);
var lppe: tprocessentry32;
Encontrado: booleano;
Mão: Thandle;
começar
Mão: = CreateToolHelp32Snapshot (th32cs_snapall, 0);
Encontrado: = Process32Firs (mão, lppe);
Enquanto encontrado do
começar
Listbox1.items.add (strpas (lppe.szexefile);
Encontrado: = process32Next (mão, lppe);
fim;
fim;
◇ [Delphi] Estabeleça uma nova tabela Tabela 2 com base no BDETABLE1
Tabela2: = ttable.create (nil);
tentar
Tabela2.databasename: = tabela1.databasename;
Tabela2.fielddefs.assign (Tabela1.FieldDefs);
Tabela2.Indexdefs.assign (Tabela1.Indexdefs);
Tabela2.TableEname: = 'newtable';
Tabela2.CreateTable ();
finalmente
Tabela2.Free ();
fim;
◇ [Delphi] O maior prato entende o estabelecimento e a referência da DLL
// Primeiro olhar para a fonte DLL (arquivo-> new-> dll)
Projeto da biblioteca1;
usa
Sysutils, classes;
Função Addit (F: Inteiro; S: Inteiro): Inteiro;
começar
Makeasum: = f+s;
fim;
exportações
addit;
fim.
// Ligue (no seu projeto)
implementação
Função Addit (F: Inteiro; S: Inteiro): Inteiro;
{Chamada é addit (2,4);
◇ [Delphi] Programa de leitura dinâmica
função gesselfSize: Inteiro;
var
F: arquivo de byte;
começar
Filemode: = 0;
Assfile (F, Application.Exename);
redefinir (f);
Resultado: = FileSize (f);
CloseFile (F);
fim;
◇ [Delphi] Leia as informações do BIOS
Com o Memo1. lines
começar
Addd ('mainboardbioSname:'+^i+string (pchar (ptr ($ fe061)));
Addd ('mainboardbioscopyright:'+^i+string (pchar (ptr ($ fe091)););););
Addd ('MaiorBoardBiOSDATE:'+^i+string (pchar (ptr ($ ffff5)));
Addd ('mainboardbioSserialno:'+^i+string (pchar (ptr ($ fec71))););
fim;
◇ [Delphi] estabelecimento dinâmico de alias mSSQL
procedimento TForm1.Button1Click(Remetente: TObject);
var mylist: tStringList;
começar
Mylist: = tStringList.create;
tentar
Com mylist fazer
começar
Add ('Nome do servidor = 210.242.86.2');
Addd ('nome do banco de dados = db');
Addd ('nome de usuário = sa');
fim;
Session1.addalias ('testsql', 'mssql', mylist);
Session1.SaveConfigFile;
finalmente
Mylist.free;
Session1.active: = true;
Database1.databasename: = 'db';
Database1.aliasName: = 'testsql';
Database1.LoginPrompt: = false;
Database1.params.add ('nome de usuário = sa');
Database1.params.add ('senha =');
Banco de dados1.connect: = true;
fim;
fim;
procedimento TForm1.Button2Click(Remetente: TObject);
começar
Banco de dados1.connect: = false;
Session1.deleteAlias ('testsql');
fim;
◇ [Delphi] tocar música de fundo
Use MMSystem
// Toque música
McisendsTring ('Open E: /1.mid Type Sequenceer Alias nn', '', 0, 0);
Mcisendstring ('Play nn de 0', '', 0, 0);
Mcisendstring ('estreita de animação', '', 0, 0);
fim;
// Pare de jogar
McisendsTring ('Open E: /1.mid Type Sequenceer Alias nn', '', 0, 0);
Mcisendstring ('Stop nn', '', 0, 0);
Mcisendstring ('estreita de animação', '', 0, 0);
Interface [Delphi] e um código de amostra da classe
TIPO {INTERFACE E CLASSE: A diferença é que o membro de dados, qualquer método não público e métodos públicos não podem ser exibidos na interface.
Isample = interface // interface isample
função getString: string;
fim;
Tsample = classe (TinterFacedObject, Isample)
público
função getString: string;
fim;
// Definição de fundação
função tsample.getString: string;
começar
Resultado: = 'O que o programa é';
fim;
// Ligue para o objeto de classe
amostra var: tsample;
começar
amostra: = tsample.create;
showMessage (Sample.getString+'Class Object!');
sample.free;
fim;
// Ligue para a interface
Var SampleInterface: Isample;
amostra: tsample;
começar
amostra: = tsample.create;
SampleInterface: = amostra; // A implementação da interface deve usar classe
{As duas linhas acima também podem ser feitas para atingir o SampleInterface: = tsample.create;}
showMessage (SampleInterface.GetString+'Interface!');
//sample.free;
SampleInterface: = nil;
fim;
◇ [Delphi] A barra de tarefas não é o programa
var
ExtendedStyle: Inteiro;
começar
Aplicativo.Inicializar;
ExtendedStyle: = getWindowlong (Application.Handle, GWL_Exstyle);
SetWindowlong (Application.Handle, GWL_EXSSSSTYLE, EXTENDSTYLE ou WS_EX_TOOLWIW E NÃO WS_EX_APPWindow);
Application.CreatEform (TForm1, Form1);
Aplicativo.Executar;
fim.
◇ [delphi] alt+ctrl+del não consegue ver o programa
Adicione uma declaração após a implementação:
Função RegisterServiceProcess (DWProcessID, DWTYPE: Inteiro): Inteiro;
RegiseServiceProcess (getCurrentProcessId, 1);
RegisterServiceProcess (getCurrentProcessId, 0);
◇ [Delphi] Detecte o símbolo da unidade óptica
Var Drive: char;
Cdromid: inteiro;
começar
para unidade: = 'd' para 'z' do
começar
cdromid: = getDriveType (pchar (drive+':/'));
Se cdromid = 5 o showMessage ('sua unidade óptica é:'+unidade+'disco!');
fim;
fim;
◇ [Delphi] Cartão de detecção
Se auxGetNumDevs () <= 0, então ShowMessage ('Nenhum Sondcard encontrado!') Else ShowMessage ('Qualquer cartão de som encontrado!');
◇ [Delphi] desenhando na grade de cordas
StringGrid.ondrawcell Evento
Com StringGrid1.Canvas faça
Desenhar (ret.left, ret.top, image1.picture.graphic);
◇ [SQL Server] Outra maneira de, em vez da instrução semelhante no SQL
Por exemplo, encontrar o nome de usuário contém todos os usuários "C", você pode usá -lo
Use mydatabase
Selecione * da Tabela1 onde o nome de usuário como '%C%"
A seguir, outra maneira de completar a função acima:
Use mydatabase
Selecione * da Tabela1 onde CharingEx ('C', nome de usuário)> 0
Esse método é teoricamente mais uma declaração de julgamento do que o método anterior, ou seja,> 0, mas esse processo de julgamento é o mais rápido.
A string e outras operações, por isso não é grande coisa usar a função Charindex.
Os caracteres encontrados podem ser usados diretamente no Charindex, como segue:
Use mydatabase
Selecione * da Tabela1 onde CharingEx ('%', nome de usuário)> 0
Também pode ser escrito:
Use mydatabase
Selecione * da Tabela1 onde CharingEx (CHAR (37), nome de usuário)> 0
Os personagens do ASCII são %%
◇ [Delphi] SQL Exibir dados/tabelas
Selecione Distância A.Bianhao, A.Xingming, B.Gongzi de "Jianjie.dbf" A, "Gongzi.dbf" B
Onde a.bianhao = b.bianhao
◇ [Delphi] RFC (solicitação de comentário) relacionado
IETF (Força -Tarefa de Engenharia da Internet) Manutenção do documento RFC http://www.ietf.cnri.reston.va.us
RFC882: a estrutura padrão da cabeça da mensagem
RFC1521: MIME PARTE 1, Método de transmissão Merchants
RFC1945: Documento de transmissão de documentos multimídia
◇ [Delphi] O uso de tnmuprocesor
Var utream, superam: tfilestream;
começar
Instruam: = tfilestream.create (infile.txt, fmopenReam);
Superam: = tfilestream (outfile.txt, fMcreate);
Nmuue.method: = uucode;
//Nmuue.method:=uumime;
Nmuue.InputStream: = Instream;
Nmuue.OutputStream: = Outream;
Nmuue.encode;
//Nmuue.decode;
Instruam.Free;
superam.free;
fim;
◇ [Delphi] Operação de TfileStream
// Leia o byte da contagem da posição atual do fluxo de arquivo para o buffer de buffer
Função Leia (Var Buffer; contagem: Longint): Longint;
// Leia o buffer de buffer no fluxo de arquivo
Função Escreva (Buffer const; contagem: Longint): Longint;
// Defina o fluxo de arquivo.
Função Busca (Office: Longint; Origem: Word): Longint;
Origem = {SofRombeginning, SofromCurrent, Sofromend}
// Copiar contagem da posição atual da posição atual em outro fluxo de arquivo para a posição atual do fluxo de arquivo atual
Função copyfrom (fonte: tStream; count: longint): longint;
// Leia o arquivo especificado para o fluxo de arquivo
var myfstream: tfilestream;
começar
myfstream: = tfilestream.create (opendialog1.filename, fmopenRead);
fim;
[JavaScript] Detecte se a instalação do IE -Inin Shockwave e QuickTime
<Script Language = "JavaScript">
var myplugin = navegator.plugins ["Shockwave"];
se (myplugin)
Document.Writeln ("Você instalou Shockware!")
outro
Document.Writeln ("Você não instalou Shockwave!")
</script> <br>
<Script Language = "JavaScript">
var myplugin = navegator.plugins ["Quicktime"];
se (myplugin)
document.writeln ("Você instalou o QuickTime!")
outro
document.writeln ("Você não instalou o QuickTime!")
</script>
[Internet] Referências de tabela IFRAME EFEITO
<tabela CellPadding = "0" CellSpacing = "0">
<tr>
<Td> <iElay id = "ad1" visibilidade = "hidden"> </layer> <nolayer> <ifray src = "i: /jinhtml/zj/h21.htm" marginwidth = "0" margnheight = "110" e = "10" vspace = "20" frameBerder = "0" scrolling = "1"> </frame> </nolay> </td>
</tr>
</tabela>
◇ [Delphi] Habilidades de controle do Web -Browser
1. Implementar a função de impressão
var vain, Vaout: Olevariant;
Webbrowser.controlinterface.execwb (olecmdid_print, olecmdexecot_dontpromptuser, vaid, vaout);
2. Webbrowser leia a página do fluxo
função tform1.loadFromStream (constish: tStream): hResult;
começar
Astream.Seek (0, 0);
Resultado: = (webbrowser1.document como iPersisttreaminit) .load (tStreamadapter.create (Astream));
fim;
3. "Sobre:" Protocolo permitirá que você navegue para uma string html:
Procedimento tform1.loadMlString (shtml: string);
sinalizadores var, TargetFramename, PostData, cabeçalhos: Olevariant;
Webbrowser1.navigate ('Sobre:' + shtml, sinalizadores, TargetFrameName, PostData, cabeçalhos)
4. "Res:" Protocolo permitirá que você navegue para uma pedra de arquivo HTML como um recurso.
Procedimento TForm1.LoadMlResource;
sinalizadores var, TargetFramename, PostData, cabeçalhos: Olevariant;
Webbrowser1.navigate ('res: //' + Application.exename + '/myhtml', sinalizadores, TargetFrameName, PostData, cabeçalhos)
Use BRCC32.exe para criar arquivos de recursos (*.rc)
Myhtml 23 "./html/myhtml.htm"
Morehtml 23 "./html/morehtml.htm"
{$ R html.res} //html.rc é compilado em html.res
5. Salve o arquivo HTML completo
var
Htmldocument: ihtmldocument2;
PersistFile: iPersistFile;
começar
Htmldocument: = webbrowser1.document como ihtmldocument2;
Persistfile: = htmldocument como iPersistFile;
Persistfile.save (stringtoolest ('test.htm'), verdadeiro);
Enquanto htmldocument.readystate <> 'completo' do
Application.processMessages;
fim;
◇ [Delphi] Instale o controle WebBrowser (controle incorporado do IE)
Você deve determinar primeiro que o sistema foi instalado com o Internet Explorer4 ou versões posteriores. Painel de controle ctivex.
◇ [Delphi] Implementando Windows2000 Translúcidos Windows
Função SetLayeredWindowAttributes (HWND: HWND; CRKY: LONGINT; BALPHA: BYTE; DWFLAGS: LONGINT): Longint;
procedimento TForm1.FormCreate(Remetente: TObject);
var longint;
começar
L: = getwindowlong (alça, gwl_exstyle);
L: = L ou $ 80000;
SetWindowlong (alça, gwl_exstyle, l);
SetLayedwindowattributes (alça, 0, 180, 2);
fim;
◇ [Delphi] Exibir publicidade Webbrowser Carregando imagens
Var Flag, Frame, Pdata, cabeçalho: Olevariant;
começar
Webbrowser1.navigate ('http://www.chineseall.com/images/logo.jpg', bandeira, quadro, pdata, cabeçalho)
fim;
◇ [Delphi] Calcule o tamanho de um diretório
Função getDirectorySize (const adirectory: string): Integer;
var
Dir: tSearchRec;
Ret: número inteiro;
Caminho: string;
começar
Resultado:= 0;
Caminho: = ExtractFilePath (adirectory);
Ret: = sysutils.findfirs (adirectory, faanyfile, dir);
se ret <> no_error então
saída;
tentar
Enquanto ret = no_error faz
começar
Inc (resultado, Dir.Size);
// Se for um diretório, e não '.'
If (dir.attr in [Fadirectory]) e (dir.name [1] <> <>. ')
Inc (resultado, getDirectorySize (Path + Dir.name + '/*.*'));
Ret: = sysutils.findNext (dir);
fim;
finalmente
Sysutils.findclose (dir);
fim;
fim;
◇ [Delphi] Limpe um diretório
Função emptyDirectory (thedirectory: string; recursive: boolean):
Booleano;
var
Pesquise ótima: TSearchold;
Res: Inteiro;
começar
Resultado: = false;
Thedirectory: = Normaldir (thedirectory);
Res: = findfirs (thedirectory + '*.*', Faanyfile, SearchRec);
tentar
Enquanto res = 0 do
começar
if (searchrec.name <> '.') e (pesquise ótimo <> '..') então
começar
If (searchrec.attr e fadirectory)> 0) e recursivo
então comece
Vazio Directory (THRERCTORY + SearchRec.name, true);
Removedirectory (PCHO (thedirectory + Searchrc.name));
fim
senão começar
DeleteFile (PCHO (thedirectory + Searchrec.name)))
fim;
fim;
Res: = findNext (pesquisa);
fim;
Resultado := Verdadeiro;
finalmente
FindClose (SearchRec.FindHandle);
fim;
fim;
◇ [Delphi] Libere a instalação do programa ADO ADO
Execute uma vez mdac_typ.exe, disponível no Windows, IE, Office, Visual Studio da Microsoft.
O diretório após a instalação do programa de instalação é o mesmo que o caminho do diretório definido no programa Remova o gancho de construção com a biblioteca de tempo de execução na caixa de diálogo Project-> Option-> Pacotes.
◇ [Delphi] Interceptando o Sistema do Windows Mensagem: Mensagem WM_CLOSE
Procedimento wmclose (var msg: tmessage);
Procedimento tmainform.wmclose (var msg: tmessage);
começar
M_BCLOSENOQUERY: = false;
herdado;
fim;