w Delphi Chcę zastąpić „Tform3.ListBox” w „Tform3.Listbox.Clear” z parametrem. Jaki typ danych mam tam umieścić?

głosy
0

Dla mojego postępowania chciałem umieścić identyfikator jako parametr, ale nie wiem, co typ danych w obsłudze, że zna metody .clear lub nadaje na TListBox. W tym przykładzie użyłem ciąg ale oczywiście nie działa.

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

„Wejście” to mój Edit.text, więc mogę po prostu użyć ciąg za to, ale „moc” jest moim ListBox.

cały mój kod jest

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.
Utwórz 19/12/2018 o 14:19
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
1

Trzeba po prostu zmienić rodzaje wejścia paramter do wyjścia TEdit do TListBox

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

Dużo czasu minęło, kiedy zobaczyłem Pascal nie kodu wynikowego bez klasach;

Odpowiedział 19/12/2018 o 15:35
źródło użytkownik

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