Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi aus der zwischenablage holen und editfenster wechseln? (https://www.delphipraxis.net/101414-aus-der-zwischenablage-holen-und-editfenster-wechseln.html)

Progman 12. Okt 2007 20:44

Re: aus der zwischenablage holen und editfenster wechseln?
 
Delphi-Quellcode:
procedure TForm1.Edit1Change(Sender: TObject);
begin
  if length(Edit1.Text)=3 then Edit2.SetFocus;
end;
Aber MaskEdit wäre die bessere Möglichkeit, finde ich.

PaddyMu 12. Okt 2007 20:53

Re: aus der zwischenablage holen und editfenster wechseln?
 
aah danke nu gehts
sorry für die mühe^^

PaddyMu 13. Okt 2007 13:29

Re: aus der zwischenablage holen und editfenster wechseln?
 
so nun habe ich mich eine ganze zeit der clipbrd gewidmet,bekomme aber immer einen Typemfehler...
Delphi-Quellcode:
type
   
function Copy(Zwischenablage1: string; Index, Count: integer): string;

var
Zwischenablage1:integer;
.
.
.

procedure TForm1.Btn4Click(Sender: TObject);
begin


Zwischenablage1:=StrToInt(Clipboard.AsText);


Text1:= Copy(Zwischenablage1, 1, 3);
Edit1.Text:=IntToStr(Text1);
end;
was ist denn falsch? ich komm nich drauf..
MfG

quendolineDD 13. Okt 2007 13:37

Re: aus der zwischenablage holen und editfenster wechseln?
 
Du bekommst bestimmt "Integer und String blabla" als Fehler. da du das ganze als ".asText" ausgibst, wird es wohl String sein.

Also deklarier dein Zwischenablage1 als string :o)

PaddyMu 13. Okt 2007 14:34

Re: aus der zwischenablage holen und editfenster wechseln?
 
ok nun habe ich nachdem ich zu deinem tipp dazu noch text1 als string deklariert habe zumindist das problem beseitigt.
nun springt er aber auf die function (copy blablubb siehe mein beitrag hier drüber)
und sagt:
Zitat:

Ungenügende Forward- oder External-Dekleration: 'TForm1.Copy'
Das heist ? :(

quendolineDD 13. Okt 2007 14:47

Re: aus der zwischenablage holen und editfenster wechseln?
 
Wie sieht denn die Funktion aus die du da geschrieben hast?

Der Fehler kommt wohl, weil du im type deine Funktion implementiert hast, aber dann nicht, was sie machen soll.

Wenn du die Funktion Copy nehmen wolltest, Dann musst du die nciht selber noch einbinden im type-Teil :)

Geb mal deinen gesamten Quelltext, wenn es dir nichts ausmacht, Die Bruchstücke sind da etwas irritierend.

PaddyMu 13. Okt 2007 15:07

Re: aus der zwischenablage holen und editfenster wechseln?
 
ah ok ich muss sie nich einbinden das wuste ich nicht^^
ich habe sie rausgenommen und siehe da: es geht danke!!!
mit dem quelltext.. joar für schwere problem würde ich das auch machen aber ich muss das programm für die schule schreiben und ich weis nich ob es abzüge gibt wenn ich in foren nachfrage und wenn der meinen quelltext hier sieht weis er das ja
also nix gegen euch reine sichereitsmasname ;)
MfG

dominikkv 13. Okt 2007 15:33

Re: aus der zwischenablage holen und editfenster wechseln?
 
hmm also nochmal:
mit ClipBoard.AsText bekommst du den Inhalt der Zwischenablage als String.
Delphi-Quellcode:
procedure TForm1.Button1Click;
var
  IPAdresse: String;
  IP1, IP2, IP3, IP4: String;
  P1, P2: Byte;
begin
  IPAdresse := Clipboard.AsText; // Jetzt steht in IPAdresse '192.168.178.1';
  P1 := Pos('.', IPAdresse);
  IP1 := copy(IPAdresse, 1, P1); // jetzt steht in IP1 '192'
  P2 := PosEx('.', IPAdresse, P1+1);
  IP2 := copy(IPAdresse, P1+1, P2-P1-1); // jetzt steht in IP2 '168'
  P1 := PosEx('.', IPAdresse, P2+1);
  IP3 := copy(IPAdresse, P2+1, P1-P2-1); // jetzt steht in IP3 '178'
  IP4 := copy(IPAdresse, P1+1, length(IPAdresse)-P1-1); // jetzt steht in IP4 '1'
  showmessage(Format('%s.%s.%s.%s', [IP1, IP2, IP3, IP4])); // 192.168.178.1
end;
Das Beispiel ist ungetestet und kann Fehler enthalten (zB zu viel/zu wenig kopiert).

Sharky 13. Okt 2007 16:14

Re: aus der zwischenablage holen und editfenster wechseln?
 
Hai,

ich würde die Aufteilung des Strings entweder mit der Explode Funktion, oder einfach mit der guten alten StringList machen.

Delphi-Quellcode:
procedure TDemo_Form.Button1Click(Sender: TObject);
var
  IPAdresse: string;
  sl: TStrings;
begin
  IPAdresse := Clipboard.AsText;
  sl := TStringList.Create;
  try
    sl.Delimiter := '.';
    sl.DelimitedText := IPAdresse;
    if sl.Count = 4 then
    begin
      edt_okt1.Text := sl.Strings[0];
      edt_okt2.Text := sl.Strings[1];
      edt_okt3.Text := sl.Strings[2];
      edt_okt4.Text := sl.Strings[3];
    end
    else
    begin
      ShowMessage('Da ist irgend ein Fehler');
    end;
  finally
    sl.Free;
  end;
end;

procedure TDemo_Form.Button2Click(Sender: TObject);
var
  IPAdresse: string;
  IPOktets: TStringDynArray;
begin
  IPAdresse := Clipboard.AsText;
  IPOktets := Explode('.', IPAdresse);
  if (High(IPOktets) = 3) then
  begin
    edt_okt1.Text := ipOktets[0];
    edt_okt2.Text := ipOktets[1];
    edt_okt3.Text := ipOktets[2];
    edt_okt4.Text := ipOktets[3];
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:49 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz