Canvas Formy...

0

Czy ktos moze mi powiedziec dlaczego nie widac efektu danych linijek kodu?
Inaczej mowiac, czemu nic nie widac na formie!? {glowa}

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
with Form1.Canvas do begin
Pen.Color:=clBlack;
MoveTo(0, 0);
LineTo(ClientWidth, ClientHeight);
MoveTo(0, ClientHeight);
LineTo(ClientWidth, 0);
end;

end;

end.

Ehh...a jesli robie to zle...to jak cos narysowac na formie?--take care,

Wodzu

0

FormCreate() to chyba za szybko na rysowanie, spruboj umiescic ten kod w procedurze OnShow, albo OnPaint, ale raczej OnShow, powinno zadzialac :)

Pozdrawiam {hello} --LSD - Discover The New Way Of Thinking

0

No bo to jest w atku OnCreate a jakbyś dał do wątka TButton to by działało.

0

kurna chata wyprzedziles mnie!!! {browar} {brawo} {hello} :-)

0

No jeżeli chcesz żeby to co narysujesz było cały czas na formie to trzeba umieścić to w procedure OnPaint--Delphi 6; Pozdrawiam eSka :-)

0

Dzieki za pomoc...dziala to niestety tylko w OnPaint ale o tym wiedzialem juz wczesniej...problem w tym ze ja wlasnie chce uniknac stosowania tej procedury...--take care,

Wodzu

0

Wodzu napisał:
Dzieki za pomoc...dziala to niestety tylko w OnPaint ale o tym wiedzialem juz wczesniej...problem w tym ze ja wlasnie chce uniknac stosowania tej procedury...

Na OnShow nie dziala ?

Pozdrawiam {hello} --LSD - Discover The New Way Of Thinking

0

To nie musi byc caly czas na formie, znasz inny sposob?
Chce to narysowac raz, bez odrysowywania...--take care,

Wodzu

0

Wodzu napisał:
To nie musi byc caly czas na formie, znasz inny sposob?
&gtChce to narysowac raz, bez odrysowywania...

Napisz sobie procedure, w ktorej bedzie ci sie rysowalo to, co chcesz, a pozniej np w FormCreate() dodaj takie cos:
&ltdlephi&gt

Forma1.FormCreate(Sender: TObject)
begin
*wrzuc jakis timer na forme z walsciwoscie Enabled := False ;
*jakis kod a na koncu, albo gdzies tam (zreszta gdzie chcesz)
Timer1.Enabled := True
end ;

Forma1.Timer1Timer()
var
I := Integer ;
begin
I := 1 ;
Inc(I) ;
if I &gt 5 then
begin
Timer1.Enabled := False ;
PokazMojaProcedureKtoraRysujeText ; // :)) oczywiscie liczby w warunkach sa tylko przykladowe
end
end ;

Aaaaaha, pamietaj jeszcze zeby ustawic jakis rozsadny Interval dla Timer'a :)

Pomysl moze smieszny i jakis taki niepratkyczny, ale zawsze cos :)

Pozdrawiam {hello}
--LSD - Discover The New Way Of Thinking

0

moze ktos poprawic &ltdlephi&gt na delphi ? :)) Z gory dziekuje :)

Pozdrawiam {hello} --LSD - Discover The New Way Of Thinking

0

Sorki Romantiko, ale wydaje mi sie ze twoj kod jest lekko bez sensu :D :D :D. Po co tam jest zmienna I? Jets to zmienna tylko w tej procedurze i przy kazdym wywolaniu OnTimer, bedzie wynosci najpierw 1, a potem 2 i koneic, wiec warunek I &gt 5 nie bedzie nigdy spelniony, wiec owe rysowanie nigdy nie bedzie narysowane.
Jak juz stosowac do tego Timer do wystarczy wrucic go do formy, Enabled zostawic na True, Intervala mozna dac kolo 100ms w OnTimer

procedure TForm1.Timer1Timer(....);
begin
Timer1.Enabled:=False;
// i tu rysowanie
end;

Nieraz tak robilem i zawsze bylo OKej. {hello} --sys:> logout....

0

Sheitar:

No fakt, to bez sensu, pisalem to tylko tak z glowy i nie wiedzac czy Interval liczony jest od razu postanowilem zmienna I wstawic, no i zapomnialem ze takie zmienne 'wklada' sie np w private klasy formy i np w OnCreate() nadac jej wartosc, a pozniej tylko Inc(I) A tak w ogole Sheitar to chcialem pomoc i sobie mysle ze moglbys okazac wiecej szacunku: ":D :D :D"

PS. ten pomysl nie yest taki zly ze zmienna I wg mnie oczywiscie, ale chyba jestem inny bo przeciez nie kazdemu zdazaja sie pomylki, co Sheitar ??? :P :P :P

Pozdrawiam {hello} --LSD - Discover The New Way Of Thinking

0

Romantiko:

Jesli okazalem brak szacunku to z przepraszam, ale pomaganie wprowadzajac w blad jest troche na opak nie sadzisz?

poza tym pomysl z I w sekcji private, jest dobry i uzywam go do robnienia odliczania, wtedy zamiast Inc(I), daje Dec(I), a w OnCreate np. I:=10; w kodzie timera mozna wstawic np. [...] nie chce mi sie pisac chyba kazdy wie o co mi chodzi.--sys:> logout....

0

Spoko Sheitar dzieki ze byles na posterunku, bo rzeczywiscie popelnilem blad i sie przyznaje :) Nie gniewam sie na Ciebie :) Aaaaaaaa sadzilem ze okazales brak szacunku przez : D bo to tak wyglada jakbym mial ze mnie niezla nabite :)

Sorka {browar}

Pozdrawiam {hello} --LSD - Discover The New Way Of Thinking

0

Romantiko napisał:
Spoko Sheitar dzieki ze byles na posterunku, bo rzeczywiscie popelnilem blad i sie przyznaje :) Nie gniewam sie na Ciebie :) Aaaaaaaa sadzilem ze okazales brak szacunku przez : D bo to tak wygladalo jakbys mial ze mnie niezla nabite :)
&gt
&gtSorka {browar}
&gt
&gtPozdrawiam {hello}
&gt
&gt--
&gtLSD - Discover The New Way Of Thinking--LSD - Discover The New Way Of Thinking

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.