AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Wie kann ich die Memo.Lines auf ein Cavas zeichnen?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie kann ich die Memo.Lines auf ein Cavas zeichnen?

Ein Thema von PeterKiers · begonnen am 13. Jan 2006 · letzter Beitrag vom 16. Jan 2006
Antwort Antwort
PeterKiers

Registriert seit: 15. Mär 2005
Ort: Wuppertal
42 Beiträge
 
#1

Wie kann ich die Memo.Lines auf ein Cavas zeichnen?

  Alt 13. Jan 2006, 11:49
Hi,

Wie kann ich die Memo.Lines auf ein Cavas zeichnen?


Code:

const
    CR = #13;
    LF = #10;
var
    Start, Stop : Integer;
begin
    if Memo.Lines.Count = 0 then
        Memo.Lines.Add('');

    Start := 1;
    Stop := Pos(CR, Msg);
    if Stop = 0 then
        Stop := Length(Msg) + 1;
    while Start <= Length(Msg) do begin
        Memo.Lines.Strings[Memo.Lines.Count - 1] :=
            Memo.Lines.Strings[Memo.Lines.Count - 1] +
            Copy(Msg, Start, Stop - Start);
        if Msg[Stop] = CR then begin
            Memo.Lines.Add('');
            SendMessage(Memo.Handle, WM_KEYDOWN, VK_UP, 1);
        end;
        Start := Stop + 1;
        if Start > Length(Msg) then
            Break;
        if Msg[Start] = LF then
           Start := Start + 1;
        Stop := Start;
        while (Msg[Stop] <> CR) and (Stop <= Length(Msg)) do
            Stop := Stop + 1;
    end;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TTnDemoForm.ConnectButtonClick(Sender: TObject);
begin
    TnCnx.Host     := HostEdit.Text;
    TnCnx.Port     := PortEdit.Text;
    TnCnx.TermType := 'VT100';
    TnCnx.LocalEcho := FALSE;
    TnCnx.Connect;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TTnDemoForm.DisconnectButtonClick(Sender: TObject);
begin
    TnCnx.Close;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TTnDemoForm.TnCnxSessionConnected(Sender: TTnCnx; Error: Word);
begin
    if Error <> 0 then begin
        DisplayMemo.Lines.Add('Unable to connect. Error #' + IntToStr(Error));
        Exit;
    end;

    DisplayMemo.Clear;
    InfoLabel.Caption       := 'Connected';
    DisplayMemo.Enabled     := TRUE;
    ConnectButton.Enabled   := FALSE;
    DisconnectButton.Enabled := TRUE;
    ActiveControl           := DisplayMemo;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TTnDemoForm.TnCnxSessionClosed(Sender: TTnCnx; Error: Word);
begin
    InfoLabel.Caption       := 'Disconnected';
    DisplayMemo.Enabled     := FALSE;
    ConnectButton.Enabled   := TRUE;
    DisconnectButton.Enabled := FALSE;
    ActiveControl           := ConnectButton;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TTnDemoForm.TnCnxDataAvailable(
    Sender: TTnCnx; Buffer : Pointer; Len: Integer);
begin
    MemoAddLines(DisplayMemo, StrPas(Buffer));
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TTnDemoForm.DisplayMemoKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    Key := 0;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TTnDemoForm.DisplayMemoKeyPress(Sender: TObject; var Key: Char);
begin
    TnCnx.Send(@Key, 1);
    if Key = #13 then begin
        { Send a LF after CR key }
        Key := #10;
        TnCnx.Send(@Key, 1);
    end;
    Key := #0;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure TTnDemoForm.SendButtonClick(Sender: TObject);
begin
    if TnCnx.State = wsConnected then
        TnCnx.SendStr(DataEdit.Text + #13#10)
    else
    DisplayMemo.Lines.Add('*** NOT CONNECTED ***');
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}

end.
Gruß

Peter Kiers
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.594 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Wie kann ich die Memo.Lines auf ein Cavas zeichnen?

  Alt 16. Jan 2006, 09:11
Dein langes Codestück hab ich mal aus Faulheit nicht durchgelesen.

Folgendes fällt mir aber spontan ein:

Ausgeben der ersten Zeile:

TargetCanvas.TextOut(x,y,Memo.Lines[0]); Oder auch das:

Memo.PaintTo(TargetCanvas.Handle, x,y);
Sven Harazim
--
  Mit Zitat antworten Zitat
PeterKiers

Registriert seit: 15. Mär 2005
Ort: Wuppertal
42 Beiträge
 
#3

Re: Wie kann ich die Memo.Lines auf ein Cavas zeichnen?

  Alt 16. Jan 2006, 09:47
Danke.

Peter
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz