Czy ktoś ma genialny pomysł na to żeby w Memo
nie można było edytować lini powyżej tej w której jest
kursor (coś jak w DOSie)
Męczę się za tymi OnKeyPress i Down ale zupełnie
nic mi z tego nie wychodzi :(
Może ktoś już coś takiego robił albo może jest taki komponent ?
(Aplikacja Konsolowa odpada bo nie wiem ja w takowej
pod dynamicznie stworzyn ClientSocket podpiąć procedurę
pod zdarzenie ClientSocket.OnRead)--__________________________________
Pozdrawiam...
piechnat
Moze to nie jest dokladnie to co chciales ale moze jakos ci pomoze :-) A wiec wrzucasz memo a pod nie edita. Ustawiasz odpowiednie ustawienia tak zeby wygladaly jednakowo no i komemdy by sie pisalo w edicie a pokazywalo by sie w memo :-) --pozdrawiam PEDROS {hello}
Encyklopedia was potrzebuje:
www.4programmers.net/delphi/help.php
Delphi 6 Personal.
Tak już mam, chciałem ulepszyć {glowa}
A nie wierz może tego jak w aplikacji konsolowej wsawić ClientSocket ? ;( --__________________________________
Pozdrawiam...
piechnat
piechnat napisał:
>A nie wierz może tego jak w aplikacji konsolowej wsawić ClientSocket ? ;(
Nie mam rozowo blekitnego pojecia :-)--pozdrawiam PEDROS {hello}
Encyklopedia was potrzebuje:
www.4programmers.net/delphi/help.php
Delphi 6 Personal.
piechnat napisał:
Czy ktoś ma genialny pomysł na to żeby w Memo
>nie można było edytować lini powyżej tej w której jest
>kursor (coś jak w DOSie)
wpadlem na cos takiego
zrob memo readonly i daj:
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_UP then key:=0;
if (key=VK_BACK) or (key=VK_Left) then
begin
key:=0;
if (Length(Memo1.Text)>0) and (Memo1.Text[Length(Memo1.Text)]<>#10) then
begin
Memo1.SelStart:=Pred(Length(Memo1.Text));
Memo1.SelLength:=1;
Memo1.SelText:='';
end;
end;
Memo1.Text:=Memo1.Text+Chr(Key);
if key=VK_Return then Memo1.Text:=Memo1.Text+#10;
memo1.SelStart:=Length(memo1.Text);
end;
procedure TForm1.Memo1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Memo1.SelStart:=Length(memo1.Text);
end;
o to chodzilo???
--
Pawel {Delphi 6 Personal}
Po pierwsze: naciśnij F1
>o to chodzilo???
właśnie o taki genialny pomysł mi chodziło {brawo}
(jeden problem, dodaje tylko duże litery
ale to już sobie coś pokombinuje)
Wielkie dzięki pq, jak zawsze przychodzisz z pomocną dłonią :)
--
Pozdrawiam...
piechnat
>Wielkie dzięki pq, jak zawsze przychodzisz z pomocną dłonią :)
cala przyjemnosc po mojej stronie. oczywsicie jeszcze troche trzeba dopracowac, np zeby shift i control nie zostawialy sladow, ale to juz pozostawiam Tobie.--Pawel {Delphi 6 Personal}
Po pierwsze: naciśnij F1
Mam jeszcze takie pytanko:
Jak przeScrollować memo na sam dół, jest jakieś
Memo.ScrollBy(x,y) ale jakieś dziwne rzeczy się
dzieją, a mi chodzi o taki efekt jak przy Memo.lines.add() :(--__________________________________
Pozdrawiam...
piechnat
>A nie wierz może tego jak w aplikacji konsolowej wsawić ClientSocket ? ;(
procedure read(tu parametry z procedury read normalnego socketa);
begin
..
end;
var
klient:TClientSocket;
klient:=TClientSocket.create;
...
klient.onread:=read;
Delphi 6
Pozdrówka
Zrobiłem tak:
program Project1;
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScktComp;
procedure read(Sender: TObject; Socket: TCustomWinSocket);
begin
// ble ble ble
end;
var
klient : TClientSocket;
begin
klient := TClientSocket.create(nil);
klient.onread := read;
end.
w lini klient.onread := read; pojawia się błąd:
Incompatible types: 'method pointer and regular procedure'
Co teraz ?--__________________________________
Pozdrawiam...
piechnat
piechnat napisał:
>w lini klient.onread := read; pojawia się błąd:
>Incompatible types: 'method pointer and regular procedure'
Zonk polega na tym, że w Delphi wskaźnik do procedury ma 4 bajty, a do metody 8. Są to różne typy. W związku tym należało by umieścić read w obiekcie:
type
TObsluga = class
procedure Read; // z parametrami of koz
end;
var
Obsluga:=TObsluga.Create;
Client.OnRead:=Obsluga.Read;
...
...
Obsluga.Free
end.--Vogel [Delphi 6 PE]
Life is just a dream, you know...
[Cowboy Bebop]
Wybacz mi ale jakoś nie umiem tego poskładać :(
teraz mam tak:
program Project1;
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScktComp;
type
TObsluga = class
procedure read(Sender: TObject; Socket: TCustomWinSocket);
end;
procedure read(Sender: TObject; Socket: TCustomWinSocket);
begin
// ble ble ble
end;
var
Obsluga : TObsluga;
Client : TClientSocket;
begin
Obsluga := TObsluga.Create;
Client := TClientSocket.create(nil);
Client.OnRead := Obsluga.read;
Obsluga.Free
end.
W linijce procedure read(Sender: TObject; Socket: TCustomWinSocket);
wyskakuje [Error] Project1.dpr(9): Unsatisfied forward or external declaration: 'TObsluga.read'--__________________________________
Pozdrawiam...
piechnat
procedure TObsluga.read(Sender: TObject; Socket: TCustomWinSocket);
begin
// ble ble ble
end;
Teraz powinno działać :D--Vogel [Delphi 6 PE]
Life is just a dream, you know...
[Cowboy Bebop]
>Teraz powinno działać :D
hura, zadziałało {brawo} --__________________________________
Pozdrawiam...
piechnat