ekrandaki su kordinatlar panel varmı yokmu
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
ekrandaki su kordinatlar panel varmı yokmu
ekrandaki su kordinatlar panel varmı yokmu
nasıl anlarım
nasıl anlarım
Siz hayal edin...Biz yapalım TuannaSoft...
Bir TList Olustur, Create yaptigin Panellerin hepsini TList'te kaydet. TListte bulunan bütün Panellerle karsilastir.tuanna yazdı:ama panel varmı bilmyiorsunli yani sen bir kaç tane oluşturup siliyorsun ...veya kullanıcı silior..
Yada MouseEventlerde, mouse move. Sender TPanel mi diye kontrol et.
Yada panel cözümün yanlis olabilir. Gereclerdeki Paint gibi birsey mi yapmak istiyorsun?
Bir de sana cevap verenlerin, daha önceki yazdiklarini incelediginden yola cikamazsin, böyle bir beklenti olamaz. Ayni konuyu 4 bes Theared de degisik getiriyorsun. Forumu kullanmada zorlaniyorsan, Forum kurallarinin altindan yardim iste!
miskin
Ve Tanri, bütün kullarini davul edecek
Ve Tanri, bütün kullarini davul edecek

t-hex in önerisini niye hafife aliyorsun?
[/code]
function TWinControl.ControlAtPos(const Pos: TPoint; AllowDisabled,
AllowWinControls: Boolean): TControl;
var
I: Integer;
P: TPoint;
LControl: TControl;
function GetControlAtPos(AControl: TControl): Boolean;
begin
with AControl do
begin
P := Point(Pos.X - Left, Pos.Y - Top);
Result := PtInRect(ClientRect, P) and
((csDesigning in ComponentState) and (Visible or
not (csNoDesignVisible in ControlStyle)) or
(Visible and (Enabled or AllowDisabled) and
(Perform(CM_HITTEST, 0, Longint(PointToSmallPoint(P))) <> 0)));
if Result then
LControl := AControl;
end;
end;
begin
LControl := nil;
if AllowWinControls and
(FWinControls <> nil) then
for I := FWinControls.Count - 1 downto 0 do
if GetControlAtPos(FWinControls) then
Break;
if (FControls <> nil) and
(LControl = nil) then
for I := FControls.Count - 1 downto 0 do
if GetControlAtPos(FControls) then
Break;
Result := LControl;
end;
[/code]
function TWinControl.ControlAtPos(const Pos: TPoint; AllowDisabled,
AllowWinControls: Boolean): TControl;
var
I: Integer;
P: TPoint;
LControl: TControl;
function GetControlAtPos(AControl: TControl): Boolean;
begin
with AControl do
begin
P := Point(Pos.X - Left, Pos.Y - Top);
Result := PtInRect(ClientRect, P) and
((csDesigning in ComponentState) and (Visible or
not (csNoDesignVisible in ControlStyle)) or
(Visible and (Enabled or AllowDisabled) and
(Perform(CM_HITTEST, 0, Longint(PointToSmallPoint(P))) <> 0)));
if Result then
LControl := AControl;
end;
end;
begin
LControl := nil;
if AllowWinControls and
(FWinControls <> nil) then
for I := FWinControls.Count - 1 downto 0 do
if GetControlAtPos(FWinControls) then
Break;
if (FControls <> nil) and
(LControl = nil) then
for I := FControls.Count - 1 downto 0 do
if GetControlAtPos(FControls) then
Break;
Result := LControl;
end;
Kod: Tümünü seç
miskin
Ve Tanri, bütün kullarini davul edecek
Ve Tanri, bütün kullarini davul edecek

arkadaşlar kimsenin önerisni hafife almadım...bana gelen önerileri hafife almak değil önerileri değerlendirmek ve denemek düşer...bende deniyorum...
miskin kardeş burada verdiğin örneği nasıl kullanacağız..
miskin kardeş burada verdiğin örneği nasıl kullanacağız..
En son tuanna tarafından 10 Ağu 2005 12:50 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Siz hayal edin...Biz yapalım TuannaSoft...
Windows funktionu her control'un var. Panelin.owner i olarak verdigin komponentten cagir.
birde kesit almak icin sectigin yolu anlamiyorum. Bir Tane kesit nesnesi yaz, Form acildiginda create yap, Form kapandiginda destroy.
birde kesit almak icin sectigin yolu anlamiyorum. Bir Tane kesit nesnesi yaz, Form acildiginda create yap, Form kapandiginda destroy.
tuanna yazdı:arkadaşlar kimsenin önerisni hafife almadım gelen önerileri hafife almak değerlendirmek ve denemek düşer...bende deniyorum...
miskin kardeş burada verdiğin örneği nasıl kullanacağız..
miskin
Ve Tanri, bütün kullarini davul edecek
Ve Tanri, bütün kullarini davul edecek

Kesitleri ard ardina alabilirsin
Asagida Paint programinda oldugu gibi calisan birseyler buldum.
Bence Windowsun gereclerindeki gibi calisabilirsin. Panel kullandigin zaman ilerde daha degisik zorluklar yasayabilirsin.
Bu sekilde Islem yapilacak yeri göstermis olursun.
Kesitislemleri procedurunda kulalnici ile diyaloga gecersin. degisik alternatifler sunarsin.
Pointinrect funktionu ilerde isine yarayacak funktionlardan biri
Asagida Paint programinda oldugu gibi calisan birseyler buldum.
Bence Windowsun gereclerindeki gibi calisabilirsin. Panel kullandigin zaman ilerde daha degisik zorluklar yasayabilirsin.
Kod: Tümünü seç
.....
Resim : TPaint;
procedure Kesitislemleri(X,Y,StartposX,StartPosY:integer);
...
implementation
uses
var
EskiKesit : TPoint;
StartPos :Tpoint;
{$R *.DFM}
procedure TForm1.KesitCiz(Canvas: TCanvas; X,Y : Integer);
begin
if (X > 0) and (Y > 0) and (StartPos.X > 0) and (StartPos.Y > 0)then begin
Canvas.Pen.Mode := pmNot;
Canvas.Pen.Width := 1;
Canvas.Brush.Style := bsClear;
Canvas.Rectangle(StartPos.X,StartPos.Y,X,Y);
Canvas.Pen.Mode := pmCopy;
end;
procedure TForm1.ResimMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
//Paint Üzerinde Sol kulak cekilirse
if (ssLeft in Shift) then begin
StartPos.X := X; StartPos.Y := Y;
KesitCiz(Resim.Canvas,X,Y);
EskiKesit.X := X; EskiKesit.Y := Y;
end;
end;
procedure TForm1.BildMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
//Hala sol kulak cekiliyorsa
if (ssLeft in Shift) then begin
KesitCiz(Resim.Canvas,EskiKesit.X,EskiKEsit.Y); // Eski Kesiti Siler
KesitCiz(Bild.Canvas,X,Y); // Yeni kesit Cizer
EskiKesit.X := X; EskiKesit.Y := Y;
end;
end;
procedure TForm1.BildMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
KesitCiz(Bild.Canvas,OldMark.X,OldMark.Y); // Eski Kesiti sil
if (ssShift in Shift) then
Kesitislemleri(X,Y,Startpos.X,StartPos.Y);
StartPos.X := 0; StartPos.Y := 0; OldMark.X := 0; OldMark.Y := 0;
end;
end;
Kesitislemleri procedurunda kulalnici ile diyaloga gecersin. degisik alternatifler sunarsin.
Pointinrect funktionu ilerde isine yarayacak funktionlardan biri
miskin
Ve Tanri, bütün kullarini davul edecek
Ve Tanri, bütün kullarini davul edecek
