Форум: "Основная";
Текущий архив: 2003.11.24;
Скачать: [xml.tar.bz2];
ВнизСоздание метода RUN-TIME Найти похожие ветки
← →
Катерина (2003-11-12 15:30) [0]В run-time я создаю окно с меню, в котором единственный пункт - "сохранить" и изображение, которое сохранить и требуется. Как мне описать вот это самое событие: Item_save.onClick в программе.
procedure TForm_RGBmethod.Item_viewClick(Sender: TObject);
var ...
ChForm : TForm;
Image : TImage; BitMap : TBitMap;
MainMenu : TMainMenu; Item_save : TMenuItem;
begin
...
ChForm := TForm.Create(Owner);
//ChForm.Name := "View";
ChForm.Position := poScreenCenter;
ChForm.Caption := "Просмотр "+Ch+"-композита";
MainMenu := TMainMenu.Create(Owner);
ChForm.Menu := MainMenu;
Item_save := TMenuItem.Create(Owner);
Item_save.Caption := "Сохранить";
Item_save.OnClick := Action_save.OnExecute;
MainMenu.Items.Add(Item_save);
Bitmap := TBitmap.Create;
BitMap.PixelFormat := pf24bit;
Image := TImage.Create(Owner);
Image.Parent := ChForm;
Image.Name := "Image";
Image.Align := alTop;
Image.Height := nrow;
Image.Width := ncol;
Image.ShowHint := TRUE;
Image.Hint := CH+" : "+IntToStr(cVar1)+" - "+IntToStr(cVar2)+", PUST = "+IntToStr(push);
if (nrow < 460) then ChForm.Height := nrow+60 else ChForm.Height := 500;
if (ncol < 630) then ChForm.Width := ncol+10 else ChForm.Width := 640;
...
ChForm.Show;
Image.Picture.Bitmap.PixelFormat := pf24bit;
...
end;
procedure TForm_RGBmethod.Action_saveExecute(Sender: TObject);
var ChForm : TForm; SaveDialog : TSavePictureDialog; Image : TImage;
begin
ChForm := Application.FindComponent("View") as TForm;
SaveDialog := TSavePictureDialog.Create(ChForm);
Image := ChForm.FindComponent("Image") as TImage;
if SaveDialog.Execute then
Image.Picture.Bitmap.SaveToFile(SaveDialog.FileName);
end;
Приведенный кусок кода не работает (Image - nil), да и меня не устраивает, поскольку таких окон может быть несколько, и определять, какое именно изображение д.б. распечатано нужно не по имени формы.
Я пыталась также использовать GetActiveWindow, но не смогла потом перейти в компонентам формы. Помогите, пожалуйста.
← →
TUser (2003-11-12 16:07) [1]События назначают так
var ne:TNotifyEvent;
begin
@ne:=@yourprocedure;
yourclass.yourEvent:=ne;
end;
← →
TUser (2003-11-12 16:07) [2]События назначают так
var ne:TNotifyEvent;
begin
@ne:=@yourprocedure;
yourclass.yourEvent:=ne;
end;
← →
yo (2003-11-12 19:36) [3]TChForm = class(TForm) // Просто руками набить класс, без визуальностей
private
FImage: TImage;
procedure SaveItemClick(Sender: TObject);
public
property Image: TImage read FImage write FImage;
conctructor Create(AOwner: TComponent); override;
end;
conctructor TChForm.Create(AOwner: TComponent);
begin
CreateNew(AOwner);
...
Menu := TMainMenu.Create(Self);
Item_Save := ...;
...
Item_save.OnClick := {Self.}SaveItemClick
...
FImage := TImage.Create(Self);
...
FImage.Picture.Bitmap.PixelFormat := pf24bit;
// В общем, сюда запихнуть практически всё, что было в
// TForm_RGBmethod.Item_viewClick,
// с небольшими переработками
end;
procedure TChForm.SaveItemClick(Sender: TObject);
begin
with TSaveDialog.Create(nil) do
try
if Execute then
Image.Picture.Graphic.SaveToFile(SaveDialog.FileName);
finally
Free;
end;
end;
procedure TForm_RGBmethod.Item_viewClick(Sender: TObject);
var ...
begin
ChForm := TChForm.Create(Owner);
ChForm.Show;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.11.24;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.017 c