Konuyu Oyla:
  • Derecelendirme: 4/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Değer döndüren panel
#11
Merhaba,

Kodu biraz toparlamak gerekirse son durum şöyle bir şey olur sanırım, siz bu örneğin üzerinden devam edebilirsiniz bence,

ZODBQZ.gif

unit Unit1_;

interface

uses
 Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
 Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;

type
 TForm1 = class(TForm)
   Panel_Menu: TPanel;
   Label1: TLabel;
   BT_Olustur: TButton;
   ID: TEdit;
   BT_Sorgula: TButton;
   BT_Yoket: TButton;
   KARTADI: TPanel;
   XXXX: TPanel;
   Flow1: TFlowPanel;
   YYYY: TPanel;
   Flow2: TFlowPanel;
   Splitter1: TSplitter;
   procedure BT_Klik(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
   function BirPanelEkle(aOwner: TComponent; SiraNo: Integer; DefaultWidth: Integer = 30; DefaultHeight: Integer = 30): TPanel;
   procedure BirBaslikEkle(aOwner: TComponent; aMetin: String);
   procedure ButunPanelleriSil(HedefPanel: TComponent);
   procedure PaneliArastir(aAranan: String; HedefPanel: TComponent);
 end;

var
 Form1: TForm1;

const
 PanelAdedi = 50;

implementation

{$R *.dfm}

function TForm1.BirPanelEkle(aOwner: TComponent; SiraNo: Integer; DefaultWidth: Integer = 30; DefaultHeight: Integer = 30): TPanel;
begin
Result := TPanel.Create(aOwner);
with  Result do begin
      Parent            := TWinControl(aOwner);
      Caption           := IntToStr(SiraNo);
      Width             := DefaultWidth;
      Height            := DefaultHeight;
      ParentBackground  := FALSE;
      Color             := clBtnFace;
      AlignWithMargins  := True;
      Margins.Top       := 2;
      Margins.Left      := 2;
      Margins.Bottom    := 2;
      Margins.Right     := 2;
end;
end;

procedure TForm1.BirBaslikEkle(aOwner: TComponent; aMetin: String);
var
 aLabel: TLabel;
begin
 aLabel := TLabel.Create(aOwner);
 with  aLabel  do begin
       Parent    := TWinControl(aOwner);
       AutoSize  := FALSE;
       Top       := 0;
       Left      := 0;
       Align     := alTop;
       Caption   := aMetin;
       Height    := 24;
 end;
end;

procedure TForm1.ButunPanelleriSil(HedefPanel: TComponent);
var
 aComponent: TComponent;
begin
while (HedefPanel.ComponentCount > 0) do begin
       aComponent := HedefPanel.Components[HedefPanel.ComponentCount-1];
       if  (aComponent is TPanel)
       or  (aComponent is TLabel) then aComponent.Destroy;
end;
end;

procedure TForm1.PaneliArastir(aAranan: String; HedefPanel: TComponent);
var
 I       : Integer;
 Kutucuk : TPanel;
begin
KARTADI.Caption := '(Boş)';
for I := 0 to HedefPanel.ComponentCount - 1 do begin
    if (HedefPanel.Components[I] is TPanel) then begin
        Kutucuk := TPanel(HedefPanel.Components[I]);
        if (Kutucuk.Caption = aAranan) then begin
            Kutucuk.Color := clRed;
            KARTADI.Caption := 'KART ADI = ' + Kutucuk.Caption;
        end else begin
            Kutucuk.Color := clBtnFace;
        end;
    end;
end;
end;

procedure TForm1.BT_Klik(Sender: TObject);
var
 I: Integer;
begin
if (Sender = BT_Olustur) then begin
    BirBaslikEkle(XXXX, '1. PANEL BAŞLIĞI');
    BirBaslikEkle(YYYY, '2. PANEL BAŞLIĞI');
    for I := 0 to PanelAdedi - 1 do BirPanelEkle(Flow1, I);    // burada    "PanelAdedi" kadar alt kutucuk ekleniyor "Flow1" adlı TFlowPanel nesnesine...
    for I := 0 to PanelAdedi - 1 do BirPanelEkle(Flow2, I);    // burada da "PanelAdedi" kadar alt kutucuk ekleniyor "Flow2" adlı TFlowPanel nesnesine...
end else
if (Sender = BT_Yoket) then begin
    ButunPanelleriSil(Flow1); // kutucukları siler
    ButunPanelleriSil(Flow2);

    ButunPanelleriSil(XXXX); // labelleri siler
    ButunPanelleriSil(YYYY);

end else
if (Sender = BT_Sorgula) then begin
    PaneliArastir(ID.Text, Flow1);
    PaneliArastir(ID.Text, Flow2);
end else
begin
  { Standart else sonu }
end;
end;

end.

DFM dosyası da şöyledir;

object Form1: TForm1
 Left = 0
 Top = 0
 Caption = 'Form1'
 ClientHeight = 481
 ClientWidth = 530
 Color = clBtnFace
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -11
 Font.Name = 'Tahoma'
 Font.Style = []
 Padding.Left = 10
 Padding.Top = 10
 Padding.Right = 10
 Padding.Bottom = 10
 OldCreateOrder = False
 PixelsPerInch = 96
 TextHeight = 13
 object Splitter1: TSplitter
   Left = 246
   Top = 40
   Width = 10
   Height = 431
 end
 object Panel_Menu: TPanel
   Left = 10
   Top = 10
   Width = 510
   Height = 30
   Align = alTop
   Padding.Left = 2
   Padding.Top = 2
   Padding.Right = 2
   Padding.Bottom = 2
   TabOrder = 0
   ExplicitLeft = 0
   ExplicitTop = 0
   ExplicitWidth = 640
   object Label1: TLabel
     Left = 282
     Top = 3
     Width = 63
     Height = 24
     Align = alLeft
     Caption = '   Kart Ad'#305' :   '
     Color = clBtnFace
     ParentColor = False
     Layout = tlCenter
     ExplicitLeft = 280
     ExplicitTop = 1
     ExplicitHeight = 13
   end
   object BT_Olustur: TButton
     Left = 3
     Top = 3
     Width = 75
     Height = 24
     Align = alLeft
     Caption = 'Olu'#351'tur'
     TabOrder = 0
     OnClick = BT_Klik
     ExplicitLeft = 1
     ExplicitTop = 1
     ExplicitHeight = 28
   end
   object ID: TEdit
     Left = 78
     Top = 3
     Width = 54
     Height = 24
     Align = alLeft
     TabOrder = 1
     Text = '12'
     ExplicitLeft = 76
     ExplicitTop = 1
     ExplicitHeight = 21
   end
   object BT_Sorgula: TButton
     Left = 132
     Top = 3
     Width = 75
     Height = 24
     Align = alLeft
     Caption = 'Sorgula'
     TabOrder = 2
     OnClick = BT_Klik
     ExplicitLeft = 130
     ExplicitTop = 1
     ExplicitHeight = 28
   end
   object BT_Yoket: TButton
     Left = 207
     Top = 3
     Width = 75
     Height = 24
     Align = alLeft
     Caption = 'Yoket'
     TabOrder = 3
     OnClick = BT_Klik
     ExplicitLeft = 205
     ExplicitTop = 1
     ExplicitHeight = 28
   end
   object KARTADI: TPanel
     Left = 345
     Top = 3
     Width = 96
     Height = 24
     Align = alLeft
     BevelOuter = bvLowered
     Caption = '(Bo'#351')'
     TabOrder = 4
     ExplicitLeft = 332
     ExplicitTop = 1
     ExplicitHeight = 28
   end
 end
 object XXXX: TPanel
   Left = 10
   Top = 40
   Width = 236
   Height = 431
   Align = alLeft
   Caption = 'XXXX'
   Padding.Left = 5
   Padding.Top = 5
   Padding.Right = 5
   Padding.Bottom = 5
   TabOrder = 1
   ExplicitLeft = 3
   ExplicitTop = 33
   ExplicitHeight = 445
   object Flow1: TFlowPanel
     Left = 6
     Top = 6
     Width = 224
     Height = 419
     Align = alClient
     BevelOuter = bvLowered
     ParentBackground = False
     TabOrder = 0
     ExplicitLeft = 40
     ExplicitTop = 68
     ExplicitWidth = 305
     ExplicitHeight = 381
   end
 end
 object YYYY: TPanel
   Left = 256
   Top = 40
   Width = 264
   Height = 431
   Align = alClient
   Caption = 'YYYY'
   Padding.Left = 5
   Padding.Top = 5
   Padding.Right = 5
   Padding.Bottom = 5
   TabOrder = 2
   ExplicitLeft = 249
   ExplicitTop = 33
   ExplicitWidth = 236
   ExplicitHeight = 445
   object Flow2: TFlowPanel
     Left = 6
     Top = 6
     Width = 252
     Height = 419
     Align = alClient
     BevelOuter = bvLowered
     ParentBackground = False
     TabOrder = 0
     ExplicitLeft = 10
     ExplicitTop = 3
     ExplicitWidth = 238
     ExplicitHeight = 433
   end
 end
end
P.Safa:Yaşlanarak değil, yaşayarak tecrübe kazanılır.Zaman insanları değil,armutları olgunlaştırır
C.Yücel:Toprak gibi olmalısın! Ezildikçe sertleşmelisin!Seni ezenler sana muhtaç kalmalı! Hayatı sende bulmalı
S.Canan:Bildiğini zannettiğin an hiç bir şey öğrenemezsin
Bilgi uçar
WWW
Cevapla
#12
Çok teşekkürler harika eğitici bir örnek olmuş emeğinize sağlık
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  inputquery ile sayisal değer kontrolu serdar 4 170 20-09-2019, Saat: 10:28
Son Yorum: serdar
  fonksiyon içinde parametreye default değer atama sorunu adelphiforumz 6 517 24-05-2019, Saat: 11:20
Son Yorum: adelphiforumz
  Veritabanında hangi parasal değer olmalı Lord_Ares 4 736 13-02-2019, Saat: 00:18
Son Yorum: Bay_Y
  Panel ve çözünürlük Lord_Ares 9 1.922 01-01-2019, Saat: 22:15
Son Yorum: Invasion
  panel sürükleme murtishow76 4 740 12-10-2018, Saat: 17:24
Son Yorum: murtishow76



Konuyu Okuyanlar: 1 Ziyaretçi