28-06-2018, Saat: 15:35
(28-06-2018, Saat: 13:55)mrmarman Adlı Kullanıcıdan Alıntı: Mümkündür.hocan ekteki component için sistem çalışmıyor
http://www.kluug.net/omultipanel.php
|
delphi içinden şablon çağırma
|
|
28-06-2018, Saat: 15:35
(28-06-2018, Saat: 13:55)mrmarman Adlı Kullanıcıdan Alıntı: Mümkündür.hocan ekteki component için sistem çalışmıyor http://www.kluug.net/omultipanel.php
28-06-2018, Saat: 16:38
Geçmiş olsun dileyeyim o zaman.
Kod: (Select All) Kars'ta bir yerel TV, halkla röportajlar yapıyor. Muhabir, yaşlı amcaya soruyor: Kendimi o Ruslar gibi hissettim...
Saygılarımla
Muharrem ARMAN ![]() (28-06-2018, Saat: 16:38)mrmarman Adlı Kullanıcıdan Alıntı: Geçmiş olsun dileyeyim o zaman.Şehri o haliyle bırakmamak lazım başkan... Günahtır yazıktır... ruslar sahip çıkmadı ... sizde kendinizi ruslar gibi hissettiniz.. ne yapacağız peki şimdi... :: şehrin tek umudu sizdiniz düzeltir şehrin yolları.. diye. ![]() var
Form9: TForm9;
PanelStr :TMemoryStream;
implementation
{$R *.dfm}
procedure Tform9.StreamConvert(aStream: TStream);
var
ConvStream: TStream;
begin
aStream.Position := 0;
ConvStream := TMemoryStream.Create;
try
ObjectBinaryToText(aStream, ConvStream);
ConvStream.Position := 0;
PanelStr.CopyFrom(ConvStream, ConvStream.Size);
// lblStreamSize.Caption := IntToStr(ConvStream.Size);
finally
ConvStream.Free;
end;
end;
procedure TForm9.Button1Click(Sender: TObject);
var
idx: Integer;
MemStr: TStream;
begin
MemStr := TMemoryStream.Create;
PanelStr := TMemoryStream.Create;
try
// transfer ownership of controls to the panel
for idx := 0 to OMultiPanel1.ControlCount - 1 do
OMultiPanel1.InsertComponent(OMultiPanel1.Controls[idx]);
// write the panel
MemStr.WriteComponent(OMultiPanel1);
StreamConvert(MemStr);
PanelStr.Position := 0;
memo1.Lines.LoadFromStream(PanelStr);
finally
MemStr.Free;
end;
end;
procedure TForm9.Button2Click(Sender: TObject);
var
iTemp, iTemp2 : TStringList;
MemStr: TStream;
i: Integer;
begin
// first read the destination panel an put it into a string list
OMultiPanel1.Free;
iTemp := TStringList.Create;
iTemp2 := TStringList.Create;
iTemp.Duplicates := TDuplicates.dupAccept;
iTemp2.Duplicates := TDuplicates.dupAccept;
MemStr := TMemoryStream.Create;
try
PanelStr.Position := 0;
iTemp2.LoadFromStream( PanelStr ); // our original source
PanelStr.Size := 0;
MemStr.Position := 0;
MemStr.WriteComponent(panel3);
StreamConvert(MemStr);
// PanelStr now has our destination poanel.
PanelStr.Position := 0;
iTemp.LoadFromStream( PanelStr );
for i := 0 to iTemp2.Count - 1 do
begin
iTemp.Insert( ITemp.Count - 1, iTemp2[ i ]);
end;
PanelStr.Size := 0;
iTemp.SaveToStream( PanelStr );
PanelStr.Position := 0;
memo1.Lines.LoadFromStream(PanelStr);
MemStr.Size := 0;
PanelStr.Position := 0;
ObjectTextToBinary( PanelStr, MemStr);
MemStr.Position := 0;
RegisterClass( TLabel );
RegisterClass( TPanel );
RegisterClass( TEdit );
RegisterClass( TCheckBox );
RegisterClass( TRadioButton );
RegisterClass( tOMultiPanel );
MemStr.ReadComponent( panel3 );
panel3.Controls[0].Align:=alclient;
finally
iTemp.Free;
iTemp2.Free;
MemStr.Free;
end;
-------------------bu kodlar çalıştı stream olarak ama dosya kaydet yükle ve component isimleri değiştir bölümünü halledemedik...
29-06-2018, Saat: 13:00
olay aşağıdaki kodlarla çözülmüştür..şimdilik
unit Unit9;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls, OMultiPanel,
Vcl.ComCtrls;
type
TForm9 = class(TForm)
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
OMultiPanel1: TOMultiPanel;
OMultiPanel2: TOMultiPanel;
OMultiPanel3: TOMultiPanel;
PageControl1: TPageControl;
procedure StreamConvert(aStream: TStream);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form9: TForm9;
PanelStr :TMemoryStream;
implementation
{$R *.dfm}
procedure Tform9.StreamConvert(aStream: TStream);
var
ConvStream: TStream;
begin
aStream.Position := 0;
ConvStream := TMemoryStream.Create;
try
ObjectBinaryToText(aStream, ConvStream);
ConvStream.Position := 0;
PanelStr.CopyFrom(ConvStream, ConvStream.Size);
// lblStreamSize.Caption := IntToStr(ConvStream.Size);
finally
ConvStream.Free;
end;
end;
procedure TForm9.Button1Click(Sender: TObject);
var
idx: Integer;
MemStr: TStream;
begin
MemStr := TMemoryStream.Create;
PanelStr := TMemoryStream.Create;
try
// transfer ownership of controls to the panel
for idx := 0 to OMultiPanel1.ControlCount - 1 do
OMultiPanel1.InsertComponent(OMultiPanel1.Controls[idx]);
// write the panel
MemStr.WriteComponent(OMultiPanel1);
StreamConvert(MemStr);
PanelStr.Position := 0;
memo1.Lines.LoadFromStream(PanelStr);
memo1.Lines.SaveToFile('d:\aaaa');
finally
MemStr.Free;
end;
end;
procedure LoadFromFileToMem(const filename:string; memStream:TMemoryStream);
var afileStream:TFileStream;
begin
afileStream:=TFileStream.Create(filename,fmOpenRead);
try
memStream.CopyFrom(afileStream,afileStream.Size);
finally
afileStream.Free;
end;
end;
procedure TForm9.Button2Click(Sender: TObject);
var
iTemp, iTemp2 : TStringList;
MemStr: TStream;
i: Integer;
begin
With TTabSheet.Create( PageControl1 ) do
begin
Name := Format('Sayfa_%.2d', [ PageControl1.PageCount ]);
Caption := Name;
PageControl := PageControl1;
end;
// first read the destination panel an put it into a string list
OMultiPanel1.Free;
iTemp := TStringList.Create;
iTemp2 := TStringList.Create;
iTemp.Duplicates := TDuplicates.dupAccept;
iTemp2.Duplicates := TDuplicates.dupAccept;
MemStr := TMemoryStream.Create;
PanelStr.Free;
try
PanelStr := TMemoryStream.Create;
LoadFromFileToMem('d:\aaaa',PanelStr);
PanelStr.Position := 0;
iTemp2.LoadFromStream( PanelStr ); // our original source
PanelStr.Size := 0;
MemStr.Position := 0;
MemStr.WriteComponent( PageControl1.Pages[PageControl1.PageCount-1]);
StreamConvert(MemStr);
// PanelStr now has our destination poanel.
PanelStr.Position := 0;
iTemp.LoadFromStream( PanelStr );
for i := 0 to iTemp2.Count - 1 do
begin
iTemp.Insert( ITemp.Count - 1, iTemp2[ i ]);
end;
PanelStr.Size := 0;
iTemp.SaveToStream( PanelStr );
PanelStr.Position := 0;
memo1.Lines.LoadFromStream(PanelStr);
MemStr.Size := 0;
PanelStr.Position := 0;
ObjectTextToBinary( PanelStr, MemStr);
MemStr.Position := 0;
RegisterClass( TLabel );
RegisterClass( TPanel );
RegisterClass( TEdit );
RegisterClass( TCheckBox );
RegisterClass( TRadioButton );
RegisterClass( tOMultiPanel );
MemStr.ReadComponent( PageControl1.Pages[PageControl1.PageCount-1] );
PageControl1.Pages[PageControl1.PageCount-1].Controls[0].Align:=alclient;
finally
iTemp.Free;
iTemp2.Free;
MemStr.Free;
end;
end;
|
|
« Önceki Konu | Sonraki Konu »
|
| Konu ile Alakalı Benzer Konular | |||||
| Konular | Yazar | Yorumlar | Okunma | Son Yorum | |
| yapay zeka delphi | kl007 | 9 | 623 |
26-02-2026, Saat: 09:12 Son Yorum: mrmarman |
|
| Win 11 ve Delphi 7 Minimize sorunu. | enigma | 7 | 495 |
11-02-2026, Saat: 10:27 Son Yorum: RAD Coder |
|
|
|
Delphi formunu nasıl otomatik tam ekran yapabilirim ? | erdemklt0 | 2 | 321 |
23-01-2026, Saat: 10:02 Son Yorum: csunguray |
| Delphi SLL kullanım sorunu | Bay_Y | 12 | 1.317 |
22-12-2025, Saat: 18:11 Son Yorum: Bay_Y |
|
| Delphi ile SQL server bağlantı hatası yakalama | Under | 20 | 1.972 |
21-11-2025, Saat: 15:24 Son Yorum: mrmarman |
|