em Delphi Eu quero substituir o "Tform3.ListBox" em "Tform3.Listbox.Clear" com um parâmetro. Que tipo de dados que eu tenho que colocar lá?

votos
0

Para o meu processo eu queria colocar o identificador como um parâmetro, mas eu não sei que tipo de dados para usar que conhece o método .clear ou é utilizável em um TListBox. Neste exemplo eu usei cordas, mas que, obviamente, não funciona.

procedure Reset(input, output: string);
begin
     input := '';
     output.Clear;

Input é o meu Edit.text, então eu só posso usar cordas para isso, mas output é o meu ListBox.

meu código inteiro é

unit UFunction;

interface
uses
  System.Classes,System.StrUtils,System.AnsiStrings,System.SysUtils;

 procedure CaseSensitiveSwitchFlip ;
 procedure CopyToClipboard;
 procedure Reset(Input: string; Output: string);
 procedure Sort(input: string);
implementation

uses
UInterface, Vcl.Clipbrd;

procedure CaseSensitiveSwitchFlip ;
begin
     IstCaseSensitiveActive := not IstCaseSensitiveActive
end;

procedure CopyToClipboard;
begin
     ClipBoard.AsText := Form3.ListeLb.Items.Text;
end;

procedure Reset(input: string; output: string);
begin
     input:='';
     output:= '';
end;

procedure Sort(input: string);
var
ArrayIndex, inputIndex, Count: integer;
Character: array[1..256] of string;
text: string;
begin
     if (input<>'') then begin
       if (input<>'') and (Form3.ListeLb.Items.Count <> 0)  then
         Form3.ListeLb.Clear;
       ArrayIndex:= 0;
         repeat
               if input<>'' then begin
                 ArrayIndex:= ArrayIndex +1;
                 if not IstCaseSensitiveActive then
                   input:= AnsiUpperCase(input);
                 Character[ArrayIndex]:= input[1];
                 Count:= 1;
                 inputIndex:= 0;
                 text:= (input);
                 delete(text, 1, 1);
                 input:= text;
                 if AnsiContainsStr(input, Character[ArrayIndex]) and (Character[ArrayIndex] <> ' ') then begin
                   repeat
                         inputIndex:= inputIndex +1;
                         if Character[ArrayIndex] = input[inputIndex] then begin
                           Count:= Count + 1;
                           text:= input;
                           delete(text, inputIndex, 1);
                           input:= text;
                           inputIndex:= inputIndex - 1;
                         end;
                   until not (AnsiContainsStr(input, Character[ArrayIndex])) or (Character[ArrayIndex] = ' ');
                   Form3.ListeLb.Items.Add(Character[ArrayIndex] + ': ' + IntToStr (Count))
                 end
                 else if (Character[ArrayIndex] <> ' ') then begin
                        Form3.ListeLb.Items.Add(Character[ArrayIndex] + ': ' + IntToStr (Count))
                 end;
               end;
         until (length(input) = 1) or (input = '');
         if input <> '' then begin
           ArrayIndex:= ArrayIndex + 1;
           Character[ArrayIndex]:= input[1];
           input := '';
           if Character[ArrayIndex] <> ' ' then
             Form3.ListeLb.Items.Add(Character[ArrayIndex] +': ' + IntToStr (1));
         end;
     end
end;

end.
Publicado 19/12/2018 em 14:19
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

Você tem que simplesmente mudar os tipos de entrada de parâmetro para a saída TEdit para TListBox

procedure reset(input:TEdit; output:TListBox)
begin
 input.Text:='';
 output.items.clear;
end;

Muito tempo passou quando vi pascal não objeto código sem classes;

Respondeu 19/12/2018 em 15:35
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more