Articles of delphi

Por que não devo usar “with” no Delphi?

Eu ouvi muitos programadores, particularmente os programadores Delphi desprezam o uso de ‘with’. Achei que os programas rodavam mais rápido (apenas uma referência ao object pai) e que era mais fácil ler o código se usado de maneira sensata (menos de uma dúzia de linhas de código e nenhum aninhamento). Aqui está um exemplo: procedure […]

Delphi 2010: Como salvar um registro inteiro em um arquivo?

Eu defini um registro que tem muitos campos com tipos diferentes (integer, real, string, … além de arrays dynamics em termos de “array of …”). Eu quero salvá-lo como um todo em um arquivo e, em seguida, ser capaz de carregá-lo de volta ao meu programa. Eu não quero salvar individualmente o valor de cada […]

Quais variables ​​são inicializadas quando no Delphi?

Então eu sempre ouvi que os campos de class (baseados em heap) foram inicializados, mas as variables ​​baseadas em pilha não foram. Também ouvi dizer que os membros do registro (também baseados em pilha) também não foram inicializados. O compilador avisa que as variables ​​locais não foram inicializadas ([Aviso do DCC] A variável W1036 ‘x’ […]

Como direcionar a input da roda do mouse para controlar sob o cursor em vez de focalizado?

Eu uso um número de controles de rolagem: TTreeViews, TListViews, DevExpress cxGrids e cxTreeLists, etc. Quando a roda do mouse é girada, o controle com foco recebe a input, não importa o controle sobre o qual o cursor do mouse está. Como você direciona a input da roda do mouse para o controle do cursor […]

Delphi: violação de access no final do construtor Create ()

Eu tenho uma class muito básica e simples como esta: carregador de unidade; interface uses Vcl.Dialogs; type TLoader = Class(TObject) published constructor Create(); end; implementation { TLoader } constructor TLoader.Create; begin ShowMessage(‘ok’); end; end. E do Form1 eu chamo assim: procedure TForm1.Button1Click(Sender: TObject); var the : TLoader; begin the := the.Create; end; Agora, logo após […]

Como criar dinamicamente controles alinhados ao topo, mas depois de outros controles alinhados?

Neste caso específico, estou usando a biblioteca PowerPDF para criar dinamicamente um documento PDF, mas o mesmo se aplica ao conceito geral de alinhar controles dinamicamente sequencialmente dentro de um controle pai. Nesta biblioteca, TPRPage é o controle base para conter todos os controles de elemento, neste caso, instâncias sequenciais de TPRLayoutPanel . O que […]

Como obter o uso da CPU por thread no windows (win32)

Procurando por funções de API do Win32, código de exemplo C ++ ou Delphi que me informa o uso da CPU (porcentagem e / ou tempo total de CPU) de um thread (não o total de um processo). Eu tenho o ID do segmento. Eu sei que o Sysinternals Process Explorer pode exibir essas informações, […]

Obtendo a saída de um aplicativo shell / dos em um aplicativo Delphi

Eu tenho um aplicativo de linha de comando codificado em delphi que eu preciso chamar de um aplicativo de desktop normal (também codificado em delphi). Em suma, eu quero chamar o aplicativo de linha de comando e exibir o texto que sai “ao vivo” em uma checkbox de listview. Faz tempo desde que eu brinquei […]

Como faço com que minha GUI se comporte bem quando o tamanho de fonte do Windows é maior que 100%

Ao escolher tamanhos de fonte grandes no painel de controle do Windows (como 125% ou 150%), há problemas em um aplicativo VCL, sempre que algo foi definido como pixel. Pegue o TStatusBar.Panel . Eu configurei sua largura para que ela contenha exatamente um label, agora com fonts grandes o label “estourou”. O mesmo problema com […]

Por que recebo o erro “type has no typeinfo” com um tipo enum

Eu declarei o seguinte tipo de enumeração no qual eu quero que o primeiro membro tenha o valor ordinal de 1 (um) em vez do usual 0 (zero): type TMyEnum = ( meFirstValue = 1, meSecondValue, meThirdValue ); Se eu chamo TypeInfo () , por exemplo, como parte de uma chamada para GetEnumName () , […]