ДО ЕМИЛ СПЕШНО
3 отговора
189 прегледа
ДО ЕМИЛ СПЕШНО
Една компонента TMEMO се мести така:
procedure TForm1.Memo1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
memo1.perform(WM_SYSCOMMAND,$F012,0);
end;
когато се премести TMEMO при следващо пускане на програмата как да помни там където е преместена. Предполагам че процедурата трябва да връща папраметри x и у .........
procedure TForm1.Memo1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
memo1.perform(WM_SYSCOMMAND,$F012,0);
end;
когато се премести TMEMO при следващо пускане на програмата как да помни там където е преместена. Предполагам че процедурата трябва да връща папраметри x и у .........
Re: ДО ЕМИЛ СПЕШНО
procedure TForm1.FormDragDrop(Sender, Source: TObject; X, Y: Integer);
begin
if Source is TMemo then
begin
TMemo(Source).Left := X;
TMemo(Source).Top := Y;
end;
end;
procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
begin
Accept := (Source is TMemo);
end;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Memo1.BeginDrag(True);
end;
Tova + izpolzvane na INI File za Save na Left i Top na Memo1
begin
if Source is TMemo then
begin
TMemo(Source).Left := X;
TMemo(Source).Top := Y;
end;
end;
procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
begin
Accept := (Source is TMemo);
end;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Memo1.BeginDrag(True);
end;
Tova + izpolzvane na INI File za Save na Left i Top na Memo1
Редактирано от Wacker_1987 на
Re: ДО ЕМИЛ СПЕШНО
Aми мемото си има пропертита Top и Left.
Когато се стартира програмата компонента(мемото) ще се
появи там където е бил в дизайн тайм.
Ако трябва при след всяко стартиране да си помни
позицията то програмата трябва да записва някъде
Top и Left във файл (INI файл например) или в регистъра
и при следващо стартиране да ги чете от там.
Четенето и записа еможе да стават при събития на
формата където е мемото. Например на
FormShow - четене от файла,
На FormClose - запис за позицията
уффф.... хайде...
не знам колко е спешно - дано съм помогнал
Когато се стартира програмата компонента(мемото) ще се
появи там където е бил в дизайн тайм.
Ако трябва при след всяко стартиране да си помни
позицията то програмата трябва да записва някъде
Top и Left във файл (INI файл например) или в регистъра
и при следващо стартиране да ги чете от там.
Четенето и записа еможе да стават при събития на
формата където е мемото. Например на
FormShow - четене от файла,
На FormClose - запис за позицията
уффф.... хайде...
uses IniFiles;
....
procedure TForm1.FormShow(Sender: TObject);
var
MyIniFile: TIniFile;
begin
MyIniFile := TIniFile.Create(ExtractFilePath(ParamStr(0))+'myapp.ini');
memo1.Top:=MyIniFile.ReadInteger('MEMO1','TOP',0);
memo1.LEFT:=MyIniFile.ReadInteger('MEMO1','LEFT',0);
MyIniFile.Free;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
MyIniFile: TIniFile;
begin
MyIniFile := TIniFile.Create(ExtractFilePath(ParamStr(0))+'myapp.ini');
MyIniFile.WriteInteger('MEMO1','TOP',memo1.Top);
MyIniFile.WriteInteger('MEMO1','LEFT',memo1.LEFT);
MyIniFile.Free;
end;
не знам колко е спешно - дано съм помогнал
Re: ДО ЕМИЛ СПЕШНО
OK! Много благодаря. Задължен съм ти! Аз съм нов във форума и никога не съм вярвял че хора помагат на други хора без да ги познават и то без заплащане!!!
ЧАО засега
ЧАО засега